[ 
https://issues.apache.org/jira/browse/MCOMPILER-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16185718#comment-16185718
 ] 

Robert Scholte commented on MCOMPILER-309:
------------------------------------------

First try to upgrade asm by adding the following dependency to the 
maven-compiler-plugin:
{code:xml}
<dependency>
    <groupId>org.ow2.asm</groupId>
    <artifactId>asm</artifactId>
    <version>6.0</version>
</dependency>
{code}

If this doesn't work, it is probably better to get the module-info.class and to 
send it to [ASM|http://asm.ow2.org/]
The reason why it probably works with 3.6.2 is because is falls back to QDox, 
which means the sourcecode is parsed again.
This is actually quite tricky, because there can be multiple source 
directories, but only one output directory. In the end the module-info.class is 
used, so better make it work with the class file.


> testCompile fails in 3.7.0 against Java 9 module 
> -------------------------------------------------
>
>                 Key: MCOMPILER-309
>                 URL: https://issues.apache.org/jira/browse/MCOMPILER-309
>             Project: Maven Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 3.7.0
>         Environment: Mac OS X, Maven 3.5.0, Java 9+181 
>            Reporter: Aleksandar Seovic
>         Attachments: module-info.java
>
>
> When compiling Java 9 module, I get the following exception:
> {code}
> ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile 
> (default-testCompile) on project oracle.coherence.grpc.server: Execution 
> default-testCompile of goal 
> org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile failed: 29 
> -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute 
> goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile 
> (default-testCompile) on project oracle.coherence.grpc.server: Execution 
> default-testCompile of goal 
> org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile failed: 29
>         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 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:564)
>         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.PluginExecutionException: Execution 
> default-testCompile of goal 
> org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile failed: 29
>         at 
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
>         at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
>         ... 20 more
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 29
>         at org.objectweb.asm.ClassReader.readUTF8(Unknown Source)
>         at org.objectweb.asm.ClassReader.a(Unknown Source)
>         at org.objectweb.asm.ClassReader.readModule(Unknown Source)
>         at org.objectweb.asm.ClassReader.a(Unknown Source)
>         at org.objectweb.asm.ClassReader.accept(Unknown Source)
>         at org.objectweb.asm.ClassReader.accept(Unknown Source)
>         at 
> org.codehaus.plexus.languages.java.jpms.AsmModuleInfoParser.parse(AsmModuleInfoParser.java:81)
>         at 
> org.codehaus.plexus.languages.java.jpms.AsmModuleInfoParser.getModuleDescriptor(AsmModuleInfoParser.java:65)
>         at 
> org.codehaus.plexus.languages.java.jpms.LocationManager.resolvePaths(LocationManager.java:113)
>         at 
> org.apache.maven.plugin.compiler.TestCompilerMojo.preparePaths(TestCompilerMojo.java:281)
>         at 
> org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:762)
>         at 
> org.apache.maven.plugin.compiler.TestCompilerMojo.execute(TestCompilerMojo.java:176)
>         at 
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
>         ... 21 more
> {code}
> Switching to 3.6.2 allowed me to compile, so it seems like this was a 
> regression in 3.7.0.
> Based on the stack trace it looks like the failure is related to module info 
> parsing, so I'm attaching my module_info.java as well. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to