You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Robert Scholte (Jira)" <ji...@apache.org> on 2021/09/07 21:26:00 UTC

[jira] [Closed] (MCOMPILER-432) Unclear error message (NPE) in case of corrupt dependency

     [ https://issues.apache.org/jira/browse/MCOMPILER-432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Scholte closed MCOMPILER-432.
------------------------------------
      Assignee: Robert Scholte
    Resolution: Duplicate

> Unclear error message (NPE) in case of corrupt dependency
> ---------------------------------------------------------
>
>                 Key: MCOMPILER-432
>                 URL: https://issues.apache.org/jira/browse/MCOMPILER-432
>             Project: Maven Compiler Plugin
>          Issue Type: Improvement
>    Affects Versions: 3.8.1
>            Reporter: Guy Veraghtert
>            Assignee: Robert Scholte
>            Priority: Major
>
> When something goes awry when downloading a dependency, resulting in an empty jar (in our case cucumber-core). Following exception occurred during the build with option -e, without that option, you only see "NullPointerException"
> {noformat}
> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-testCompile of goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile failed.
>     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148)
>     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:957)
>     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
>     at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
>     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.NullPointerException
>     at org.apache.maven.plugin.compiler.TestCompilerMojo.preparePaths (TestCompilerMojo.java:254)
>     at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:792)
>     at org.apache.maven.plugin.compiler.TestCompilerMojo.execute (TestCompilerMojo.java:180)
>     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)
> {noformat}
> By debugging we found the real cause:
> {noformat}
> java.util.zip.ZipException: zip file is empty
>         at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1567)
>         at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1375)
>         at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1469)
>         at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1274)
>         at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1237)
>         at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:727)
>         at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:844)
>         at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:247)
>         at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:177)
>         at java.base/java.util.jar.JarFile.<init>(JarFile.java:348)
>         at java.base/java.util.jar.JarFile.<init>(JarFile.java:319)
>         at java.base/java.util.jar.JarFile.<init>(JarFile.java:285)
>         at org.codehaus.plexus.languages.java.jpms.AbstractBinaryModuleInfoParser.getModuleDescriptor(AbstractBinaryModuleInfoParser.java:50)
>         at org.codehaus.plexus.languages.java.jpms.LocationManager.resolvePaths(LocationManager.java:127)
>         at org.apache.maven.plugin.compiler.TestCompilerMojo.preparePaths(TestCompilerMojo.java:249)
>         at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:792)
>         at org.apache.maven.plugin.compiler.TestCompilerMojo.execute(TestCompilerMojo.java:180)
>         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:957)
>         at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
>         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: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)
> {noformat}
> Note that this exception has no cause. This causes a NullPointerException in org.apache.maven.plugin.compiler.TestCompilerMojo:
> {noformat}
> for ( Entry<String, Exception> pathException : result.getPathExceptions().entrySet() )
> {
>     Throwable cause = pathException.getValue().getCause();
>     while ( cause.getCause() != null )
>     {
>         cause = cause.getCause();
>     }{noformat}
> At initialization time, the variable cause is already null, causing a NPE in the while clause. This exception hides the real underlying exception.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)