question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

MariaDB Connector 3.x results in "class [B cannot be cast to class java.lang.String"

See original GitHub issue

Environment

Liquibase Version: 4.7.1

Liquibase Integration & Version: maven

Liquibase Extension(s) & Version: liquibase-percona 4.8.1-SNAPSHOT

Database Vendor & Version: MariaDB 10 + MariaDB Connector < 3.0.4

Operating System Type & Version: Linux

Description

In the liquibase-percona extension I use the snapshot feature (SnapshotGeneratorFactory.getInstance().createSnapshot(...)) to determine existing foreign keys of a table.

With MariaDB Connector 3.0.3 this results in an “java.lang.IllegalArgumentException: Unexpected datatype NULL”. The same problem is also described at https://forum.liquibase.org/t/fresh-install-giving-unusual-unexpected-datatype-null/6170

Here's the full stacktrace
       liquibase.exception.MigrationFailedException: Migration failed for change set test-changelog.xml::9::Alice:
            Reason: java.lang.IllegalArgumentException: Unexpected datatype NULL
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
           at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
           at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
           at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
           at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
           at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
           at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
           at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
           at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
           at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
           at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
           at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
           at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
           at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke (Method.java:566)
           at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
           at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
           at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
           at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
       Caused by: org.apache.maven.plugin.MojoExecutionException: 
       Error setting up or running Liquibase:
       liquibase.exception.MigrationFailedException: Migration failed for change set test-changelog.xml::9::Alice:
            Reason: java.lang.IllegalArgumentException: Unexpected datatype NULL
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.execute (AbstractLiquibaseMojo.java:491)
           at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
           at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
           at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
           at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
           at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
           at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
           at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
           at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
           at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
           at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
           at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
           at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
           at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
           at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke (Method.java:566)
           at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
           at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
           at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
           at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
       Caused by: org.apache.maven.plugin.MojoExecutionException: 
       Error setting up or running Liquibase:
       liquibase.exception.MigrationFailedException: Migration failed for change set test-changelog.xml::9::Alice:
            Reason: java.lang.IllegalArgumentException: Unexpected datatype NULL
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$null$0 (AbstractLiquibaseMojo.java:482)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$execute$1 (AbstractLiquibaseMojo.java:410)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Scope.child (Scope.java:243)
           at liquibase.Scope.child (Scope.java:247)
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.execute (AbstractLiquibaseMojo.java:347)
           at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
           at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
           at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
           at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
           at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
           at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
           at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
           at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
           at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
           at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
           at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
           at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
           at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
           at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke (Method.java:566)
           at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
           at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
           at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
           at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
       Caused by: liquibase.exception.LiquibaseException: liquibase.exception.MigrationFailedException: Migration failed for change set test-changelog.xml::9::Alice:
            Reason: java.lang.IllegalArgumentException: Unexpected datatype NULL
           at liquibase.changelog.ChangeLogIterator.run (ChangeLogIterator.java:124)
           at liquibase.Liquibase.lambda$null$0 (Liquibase.java:265)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Scope.child (Scope.java:243)
           at liquibase.Liquibase.lambda$update$1 (Liquibase.java:264)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Liquibase.runInScope (Liquibase.java:2405)
           at liquibase.Liquibase.update (Liquibase.java:211)
           at liquibase.Liquibase.update (Liquibase.java:197)
           at liquibase.Liquibase.update (Liquibase.java:584)
           at org.liquibase.maven.plugins.LiquibaseUpdate.doUpdate (LiquibaseUpdate.java:35)
           at org.liquibase.maven.plugins.AbstractLiquibaseUpdateMojo.performLiquibaseTask (AbstractLiquibaseUpdateMojo.java:32)
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$null$0 (AbstractLiquibaseMojo.java:479)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$execute$1 (AbstractLiquibaseMojo.java:410)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Scope.child (Scope.java:243)
           at liquibase.Scope.child (Scope.java:247)
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.execute (AbstractLiquibaseMojo.java:347)
           at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
           at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
           at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
           at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
           at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
           at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
           at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
           at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
           at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
           at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
           at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
           at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
           at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
           at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke (Method.java:566)
           at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
           at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
           at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
           at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
       Caused by: liquibase.exception.MigrationFailedException: Migration failed for change set test-changelog.xml::9::Alice:
            Reason: java.lang.IllegalArgumentException: Unexpected datatype NULL
           at liquibase.changelog.ChangeSet.execute (ChangeSet.java:695)
           at liquibase.changelog.visitor.UpdateVisitor.visit (UpdateVisitor.java:56)
           at liquibase.changelog.ChangeLogIterator$2.lambda$null$0 (ChangeLogIterator.java:111)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.changelog.ChangeLogIterator$2.lambda$run$1 (ChangeLogIterator.java:110)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Scope.child (Scope.java:243)
           at liquibase.changelog.ChangeLogIterator$2.run (ChangeLogIterator.java:94)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Scope.child (Scope.java:243)
           at liquibase.Scope.child (Scope.java:247)
           at liquibase.changelog.ChangeLogIterator.run (ChangeLogIterator.java:66)
           at liquibase.Liquibase.lambda$null$0 (Liquibase.java:265)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Scope.child (Scope.java:243)
           at liquibase.Liquibase.lambda$update$1 (Liquibase.java:264)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Liquibase.runInScope (Liquibase.java:2405)
           at liquibase.Liquibase.update (Liquibase.java:211)
           at liquibase.Liquibase.update (Liquibase.java:197)
           at liquibase.Liquibase.update (Liquibase.java:584)
           at org.liquibase.maven.plugins.LiquibaseUpdate.doUpdate (LiquibaseUpdate.java:35)
           at org.liquibase.maven.plugins.AbstractLiquibaseUpdateMojo.performLiquibaseTask (AbstractLiquibaseUpdateMojo.java:32)
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$null$0 (AbstractLiquibaseMojo.java:479)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$execute$1 (AbstractLiquibaseMojo.java:410)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Scope.child (Scope.java:243)
           at liquibase.Scope.child (Scope.java:247)
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.execute (AbstractLiquibaseMojo.java:347)
           at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
           at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
           at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
           at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
           at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
           at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
           at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
           at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
           at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
           at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
           at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
           at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
           at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
           at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke (Method.java:566)
           at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
           at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
           at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
           at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
       Caused by: java.lang.IllegalArgumentException: Unexpected datatype NULL
           at org.mariadb.jdbc.message.server.ColumnDefinitionPacket.getDefaultCodec (ColumnDefinitionPacket.java:396)
           at org.mariadb.jdbc.client.result.Result.getObject (Result.java:601)
           at liquibase.util.JdbcUtil.getResultSetValue (JdbcUtil.java:80)
           at liquibase.executor.jvm.ColumnMapRowMapper.getColumnValue (ColumnMapRowMapper.java:72)
           at liquibase.snapshot.ResultSetCache$ResultSetExtractor$1.getColumnValue (ResultSetCache.java:320)
           at liquibase.executor.jvm.ColumnMapRowMapper.mapRow (ColumnMapRowMapper.java:34)
           at liquibase.executor.jvm.RowMapperResultSetExtractor.extractData (RowMapperResultSetExtractor.java:72)
           at liquibase.snapshot.ResultSetCache$ResultSetExtractor.extract (ResultSetCache.java:343)
           at liquibase.snapshot.ResultSetCache$ResultSetExtractor.extract (ResultSetCache.java:308)
           at liquibase.snapshot.JdbcDatabaseSnapshot$CachingDatabaseMetaData$2.fastFetchQuery (JdbcDatabaseSnapshot.java:1032)
           at liquibase.snapshot.ResultSetCache$SingleResultSetExtractor.fastFetch (ResultSetCache.java:367)
           at liquibase.snapshot.ResultSetCache.get (ResultSetCache.java:72)
           at liquibase.snapshot.JdbcDatabaseSnapshot$CachingDatabaseMetaData.getTables (JdbcDatabaseSnapshot.java:989)
           at liquibase.snapshot.jvm.TableSnapshotGenerator.snapshotObject (TableSnapshotGenerator.java:34)
           at liquibase.snapshot.jvm.JdbcSnapshotGenerator.snapshot (JdbcSnapshotGenerator.java:66)
           at liquibase.snapshot.SnapshotGeneratorChain.snapshot (SnapshotGeneratorChain.java:49)
           at liquibase.snapshot.jvm.JdbcSnapshotGenerator.snapshot (JdbcSnapshotGenerator.java:69)
           at liquibase.snapshot.SnapshotGeneratorChain.snapshot (SnapshotGeneratorChain.java:49)
           at liquibase.snapshot.jvm.JdbcSnapshotGenerator.snapshot (JdbcSnapshotGenerator.java:69)
           at liquibase.snapshot.SnapshotGeneratorChain.snapshot (SnapshotGeneratorChain.java:49)
           at liquibase.snapshot.jvm.JdbcSnapshotGenerator.snapshot (JdbcSnapshotGenerator.java:69)
           at liquibase.snapshot.SnapshotGeneratorChain.snapshot (SnapshotGeneratorChain.java:49)
           at liquibase.snapshot.jvm.JdbcSnapshotGenerator.snapshot (JdbcSnapshotGenerator.java:69)
           at liquibase.snapshot.SnapshotGeneratorChain.snapshot (SnapshotGeneratorChain.java:49)
           at liquibase.snapshot.jvm.JdbcSnapshotGenerator.snapshot (JdbcSnapshotGenerator.java:69)
           at liquibase.snapshot.SnapshotGeneratorChain.snapshot (SnapshotGeneratorChain.java:49)
           at liquibase.snapshot.jvm.JdbcSnapshotGenerator.snapshot (JdbcSnapshotGenerator.java:69)
           at liquibase.snapshot.SnapshotGeneratorChain.snapshot (SnapshotGeneratorChain.java:49)
           at liquibase.snapshot.DatabaseSnapshot.include (DatabaseSnapshot.java:312)
           at liquibase.snapshot.DatabaseSnapshot.init (DatabaseSnapshot.java:105)
           at liquibase.snapshot.DatabaseSnapshot.<init> (DatabaseSnapshot.java:58)
           at liquibase.snapshot.JdbcDatabaseSnapshot.<init> (JdbcDatabaseSnapshot.java:34)
           at liquibase.snapshot.SnapshotGeneratorFactory.createSnapshot (SnapshotGeneratorFactory.java:215)
           at liquibase.snapshot.SnapshotGeneratorFactory.createSnapshot (SnapshotGeneratorFactory.java:244)
           at liquibase.snapshot.SnapshotGeneratorFactory.createSnapshot (SnapshotGeneratorFactory.java:228)
           at liquibase.ext.percona.PerconaConstraintsService.findForeignKey (PerconaConstraintsService.java:79)
           at liquibase.ext.percona.PerconaConstraintsService.determineCurrentConstraintName (PerconaConstraintsService.java:66)
           at liquibase.ext.percona.PerconaDropForeignKeyConstraintChange.generateAlterStatement (PerconaDropForeignKeyConstraintChange.java:59)
           at liquibase.ext.percona.PerconaChangeUtil.generateStatements (PerconaChangeUtil.java:99)
           at liquibase.ext.percona.PerconaDropForeignKeyConstraintChange.generateStatements (PerconaDropForeignKeyConstraintChange.java:50)
           at liquibase.change.AbstractChange.generateStatementsVolatile (AbstractChange.java:297)
           at liquibase.changelog.ChangeSet.execute (ChangeSet.java:655)
           at liquibase.changelog.visitor.UpdateVisitor.visit (UpdateVisitor.java:56)
           at liquibase.changelog.ChangeLogIterator$2.lambda$null$0 (ChangeLogIterator.java:111)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.changelog.ChangeLogIterator$2.lambda$run$1 (ChangeLogIterator.java:110)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Scope.child (Scope.java:243)
           at liquibase.changelog.ChangeLogIterator$2.run (ChangeLogIterator.java:94)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Scope.child (Scope.java:243)
           at liquibase.Scope.child (Scope.java:247)
           at liquibase.changelog.ChangeLogIterator.run (ChangeLogIterator.java:66)
           at liquibase.Liquibase.lambda$null$0 (Liquibase.java:265)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Scope.child (Scope.java:243)
           at liquibase.Liquibase.lambda$update$1 (Liquibase.java:264)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Liquibase.runInScope (Liquibase.java:2405)
           at liquibase.Liquibase.update (Liquibase.java:211)
           at liquibase.Liquibase.update (Liquibase.java:197)
           at liquibase.Liquibase.update (Liquibase.java:584)
           at org.liquibase.maven.plugins.LiquibaseUpdate.doUpdate (LiquibaseUpdate.java:35)
           at org.liquibase.maven.plugins.AbstractLiquibaseUpdateMojo.performLiquibaseTask (AbstractLiquibaseUpdateMojo.java:32)
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$null$0 (AbstractLiquibaseMojo.java:479)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.lambda$execute$1 (AbstractLiquibaseMojo.java:410)
           at liquibase.Scope.lambda$child$0 (Scope.java:180)
           at liquibase.Scope.child (Scope.java:189)
           at liquibase.Scope.child (Scope.java:179)
           at liquibase.Scope.child (Scope.java:158)
           at liquibase.Scope.child (Scope.java:243)
           at liquibase.Scope.child (Scope.java:247)
           at org.liquibase.maven.plugins.AbstractLiquibaseMojo.execute (AbstractLiquibaseMojo.java:347)
           at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
           at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
           at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
           at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
           at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
           at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
           at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
           at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
           at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
           at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
           at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
           at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
           at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
           at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
           at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke (Method.java:566)
           at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
           at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
           at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
           at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

This is the query, that is being executed by liquibase:

SELECT TABLE_SCHEMA TABLE_CAT, NULL  TABLE_SCHEM,  TABLE_NAME, IF(TABLE_TYPE='BASE TABLE' or TABLE_TYPE='SYSTEM VERSIONED', 'TABLE', TABLE_TYPE) as TABLE_TYPE, TABLE_COMMENT REMARKS, NULL TYPE_CAT, NULL TYPE_SCHEM, NULL TYPE_NAME, NULL SELF_REFERENCING_COL_NAME,  NULL REF_GENERATION

FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='testdb' AND TABLE_NAME='address' AND TABLE_TYPE IN ('BASE TABLE','SYSTEM VERSIONED') ORDER BY TABLE_TYPE, TABLE_SCHEMA, TABLE_NAME

Steps To Reproduce

This shows up an an integration test that uses the “dropForeignKeyConstraint” change together with liquibase-percona. See https://github.com/liquibase/liquibase-percona/pull/180 and the build logs there. The integration test is this: https://github.com/liquibase/liquibase-percona/tree/main/src/it/allChangesLiquibaseMariaDB just run with MariaDB Connecto 3.0.3 instead of 2.7.5.

Actual Behavior

  • java.lang.IllegalArgumentException: Unexpected datatype NULL

Expected/Desired Behavior

  • no exception

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Reactions:3
  • Comments:11 (6 by maintainers)

github_iconTop GitHub Comments

3reactions
famodcommented, Feb 3, 2022

Issue created over at MariaDB Jira: https://jira.mariadb.org/browse/CONJ-924

1reaction
adangelcommented, Mar 28, 2022

@kataggart The new release of mariadb connector/j is available now: https://github.com/mariadb-corporation/mariadb-connector-j/releases/tag/3.0.4

The problems with liquibase appear to be fixed now, so I’m closing this issue.

Read more comments on GitHub >

github_iconTop Results From Across the Web

[CONJ-935] Connection.getMetaData() returns MariaDbClob ...
Connection.getMetaData().getColumns() returned in 2.7.5 a ResultSet, where the column type of "TYPE_NAME" was a java.lang.String. But 3.0.4 ...
Read more >
About MariaDB Connector/J
mariadb.jdbc.MariaDbDataSource class can be used when the pool datasource configuration only permits the java.sql.Datasource implementation. Connection Strings.
Read more >
Unable to connect with MariaDB using Java - Stack Overflow
I am trying to connect with My company's database which is 'MariaDB', using Java, I am using following code: package co.companyname.helpers; ...
Read more >
12. Data access with JDBC - Spring
The MapSqlParameterSource class is a very simple implementation that is simply an adapter around a java.util.Map , where the keys are the parameter...
Read more >
MyBatis 3 | Configuration
Using such a TypeHandler would override the existing type handler for Java String properties and VARCHAR parameters and results. Note that ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found