juian nunez
juian nunez

Reputation: 35

Error generating code for schema, upgrade jooq 3.11

I am testing out the upgrade of JOOQ from 3.9 to 3.11.2. It is failing in compilation time throwing the following error trace in maven:

Error running jOOQ code generation tool: Error generating code for catalog: Error generating code for schema XXX: NullPointerException 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.jooq.pro:jooq-codegen-maven:3.11.2:generate (default) on project xxx_xxx: Error running jOOQ code generation tool
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
        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:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error running jOOQ code generation tool
        at org.jooq.codegen.maven.Plugin.execute(Plugin.java:198)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
        ... 20 more
Caused by: org.jooq.codegen.GeneratorException: Error generating code for catalog
        at org.jooq.codegen.JavaGenerator.generate(JavaGenerator.java:385)
        at org.jooq.codegen.GenerationTool.run(GenerationTool.java:750)
        at org.jooq.codegen.GenerationTool.generate(GenerationTool.java:220)
        at org.jooq.codegen.maven.Plugin.execute(Plugin.java:195)
        ... 22 more
Caused by: org.jooq.codegen.GeneratorException: Error generating code for schema XXX
        at org.jooq.codegen.JavaGenerator.generate(JavaGenerator.java:463)
        at org.jooq.codegen.JavaGenerator.generate(JavaGenerator.java:380)
        ... 25 more
Caused by: java.lang.NullPointerException
        at org.jooq.meta.DefaultIndexColumnDefinition.<init>(DefaultIndexColumnDefinition.java:54)
        at org.jooq.meta.oracle.OracleIndexDefinition.getIndexColumns0(OracleIndexDefinition.java:85)
        at org.jooq.meta.AbstractIndexDefinition.getIndexColumns(AbstractIndexDefinition.java:91)
        at org.jooq.codegen.JavaGenerator.printIndex(JavaGenerator.java:965)
        at org.jooq.codegen.JavaGenerator.generateIndexes(JavaGenerator.java:930)
        at org.jooq.codegen.JavaGenerator.generate(JavaGenerator.java:524)
        at org.jooq.codegen.JavaGenerator.generate(JavaGenerator.java:458)
        ... 26 more  

I changed the package name for some of the elements in maven configuration. The name of schema (XXX) is in upper case, this is the configuration:

<generator>
    <name>org.jooq.codegen.JavaGenerator</name>
    <strategy>
        <name>org.jooq.codegen.DefaultGeneratorStrategy</name>
    </strategy>
    <database>
        <name>org.jooq.meta.oracle.OracleDatabase</name>
        <includes>
           Tables and procedures...
        </includes>
        <includeExcludeColumns>true</includeExcludeColumns>
        <inputSchema>XXX</inputSchema>
        <forcedTypes>
            <forcedType>
                <name>VARCHAR2</name>
                <types>NUMBER</types>
            </forcedType>
            <forcedType>
                <name>VARCHAR2</name>
                <types>DATE</types>
            </forcedType>
        </forcedTypes>
    </database>
    <generate>
        <relations>true</relations>
        <daos>false</daos>
        <pojos>true</pojos>
        <records>true</records>
        <globalObjectReferences>true</globalObjectReferences>
        <fluentSetters>false</fluentSetters>
    </generate>
    <target>
        <packageName>com.model</packageName>
        <directory>src/main/java</directory>
    </target>
</generator>

Can someone help me out on this?

Thanks in advance

Upvotes: 2

Views: 1206

Answers (1)

Lukas Eder
Lukas Eder

Reputation: 221145

This is definitely a bug: https://github.com/jOOQ/jOOQ/issues/7824

It is similar to a previous bug when indexes were introduced to jOOQ: https://github.com/jOOQ/jOOQ/issues/6620

It seems that the Oracle integration is still affected. You can safely ignore the stack trace as it should not have any effect on the code generation, or you could turn off the generation of index information using:

<generator>
    ...
    <database>
        ...
        <includeIndexes>false</includeIndexes>
    </database>
    ...
</generator>

Upvotes: 1

Related Questions