[ https://issues.apache.org/jira/browse/MTOOLCHAINS-53?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17945105#comment-17945105 ]
ASF GitHub Bot commented on MTOOLCHAINS-53: ------------------------------------------- gnodet opened a new pull request, #54: URL: https://github.com/apache/maven-toolchains-plugin/pull/54 (no comment) > NPE during display-discovered-jdk-toolchains goal > ------------------------------------------------- > > Key: MTOOLCHAINS-53 > URL: https://issues.apache.org/jira/browse/MTOOLCHAINS-53 > Project: Maven Toolchains Plugin > Issue Type: Bug > Affects Versions: 3.2.0 > Environment: Xubuntu 22.10 amd64 > 5.19.0-46-generic > Apache Maven 3.9.4 > Reporter: Greg Chabala > Priority: Major > > I should have tested sooner, been looking forward to MTOOLCHAINS-49 automatic > JDK discovery for toolchains without toolchains.xml. > Testing the display-discovered-jdk-toolchains goal, no toolchains discovered, > but there's a warning with a NPE: > {noformat} > $ mvn > org.apache.maven.plugins:maven-toolchains-plugin:3.2.0:display-discovered-jdk-toolchains > [INFO] Scanning for projects... > [INFO] > [INFO] -----------------< org.chabala.example:example-blank > >------------------ > [INFO] Building example-blank 1.0.0-SNAPSHOT > [INFO] from pom.xml > [INFO] --------------------------------[ jar > ]--------------------------------- > [INFO] > [INFO] --- toolchains:3.2.0:display-discovered-jdk-toolchains (default-cli) @ > example-blank --- > [INFO] Found 3 possible jdks: [/usr/lib/jvm/adoptopenjdk-11-hotspot-amd64, > /usr/lib/jvm/jdk1.5.0_22, /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64] > [WARNING] Error discovering toolchains (enable debug level for more > information): java.lang.NullPointerException > [INFO] Discovered 0 JDK toolchains: > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD SUCCESS > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 0.382 s > [INFO] Finished at: 2024-04-21T22:41:22-05:00 > [INFO] > ------------------------------------------------------------------------ > {noformat} > This is a nearly empty example project. Running with debug, some interesting > stacktrace: > {noformat} > $ mvn -X > org.apache.maven.plugins:maven-toolchains-plugin:3.2.0:display-discovered-jdk-toolchains > Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9) > Maven home: /usr/local/apache-maven/apache-maven-3.9.4 > Java version: 1.8.0_292, vendor: AdoptOpenJDK, runtime: > /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/jre > Default locale: en_US, platform encoding: UTF-8 > OS name: "linux", version: "5.19.0-46-generic", arch: "amd64", family: "unix" > [DEBUG] Created new class realm maven.api > [DEBUG] Importing foreign packages into class realm maven.api > [DEBUG] Imported: javax.annotation.* < plexus.core > [DEBUG] Imported: javax.annotation.security.* < plexus.core > [DEBUG] Imported: javax.inject.* < plexus.core > [DEBUG] Imported: org.apache.maven.* < plexus.core > [DEBUG] Imported: org.apache.maven.artifact < plexus.core > [DEBUG] Imported: org.apache.maven.classrealm < plexus.core > [DEBUG] Imported: org.apache.maven.cli < plexus.core > [DEBUG] Imported: org.apache.maven.configuration < plexus.core > [DEBUG] Imported: org.apache.maven.exception < plexus.core > [DEBUG] Imported: org.apache.maven.execution < plexus.core > [DEBUG] Imported: org.apache.maven.execution.scope < plexus.core > [DEBUG] Imported: org.apache.maven.graph < plexus.core > [DEBUG] Imported: org.apache.maven.lifecycle < plexus.core > [DEBUG] Imported: org.apache.maven.model < plexus.core > [DEBUG] Imported: org.apache.maven.monitor < plexus.core > [DEBUG] Imported: org.apache.maven.plugin < plexus.core > [DEBUG] Imported: org.apache.maven.profiles < plexus.core > [DEBUG] Imported: org.apache.maven.project < plexus.core > [DEBUG] Imported: org.apache.maven.reporting < plexus.core > [DEBUG] Imported: org.apache.maven.repository < plexus.core > [DEBUG] Imported: org.apache.maven.rtinfo < plexus.core > [DEBUG] Imported: org.apache.maven.settings < plexus.core > [DEBUG] Imported: org.apache.maven.toolchain < plexus.core > [DEBUG] Imported: org.apache.maven.usability < plexus.core > [DEBUG] Imported: org.apache.maven.wagon.* < plexus.core > [DEBUG] Imported: org.apache.maven.wagon.authentication < plexus.core > [DEBUG] Imported: org.apache.maven.wagon.authorization < plexus.core > [DEBUG] Imported: org.apache.maven.wagon.events < plexus.core > [DEBUG] Imported: org.apache.maven.wagon.observers < plexus.core > [DEBUG] Imported: org.apache.maven.wagon.proxy < plexus.core > [DEBUG] Imported: org.apache.maven.wagon.repository < plexus.core > [DEBUG] Imported: org.apache.maven.wagon.resource < plexus.core > [DEBUG] Imported: org.codehaus.classworlds < plexus.core > [DEBUG] Imported: org.codehaus.plexus.* < plexus.core > [DEBUG] Imported: org.codehaus.plexus.classworlds < plexus.core > [DEBUG] Imported: org.codehaus.plexus.component < plexus.core > [DEBUG] Imported: org.codehaus.plexus.configuration < plexus.core > [DEBUG] Imported: org.codehaus.plexus.container < plexus.core > [DEBUG] Imported: org.codehaus.plexus.context < plexus.core > [DEBUG] Imported: org.codehaus.plexus.lifecycle < plexus.core > [DEBUG] Imported: org.codehaus.plexus.logging < plexus.core > [DEBUG] Imported: org.codehaus.plexus.personality < plexus.core > [DEBUG] Imported: org.codehaus.plexus.util.xml.Xpp3Dom < plexus.core > [DEBUG] Imported: org.codehaus.plexus.util.xml.pull.XmlPullParser < > plexus.core > [DEBUG] Imported: org.codehaus.plexus.util.xml.pull.XmlPullParserException > < plexus.core > [DEBUG] Imported: org.codehaus.plexus.util.xml.pull.XmlSerializer < > plexus.core > [DEBUG] Imported: org.eclipse.aether.* < plexus.core > [DEBUG] Imported: org.eclipse.aether.artifact < plexus.core > [DEBUG] Imported: org.eclipse.aether.collection < plexus.core > [DEBUG] Imported: org.eclipse.aether.deployment < plexus.core > [DEBUG] Imported: org.eclipse.aether.graph < plexus.core > [DEBUG] Imported: org.eclipse.aether.impl < plexus.core > [DEBUG] Imported: org.eclipse.aether.installation < plexus.core > [DEBUG] Imported: org.eclipse.aether.internal.impl < plexus.core > [DEBUG] Imported: org.eclipse.aether.metadata < plexus.core > [DEBUG] Imported: org.eclipse.aether.repository < plexus.core > [DEBUG] Imported: org.eclipse.aether.resolution < plexus.core > [DEBUG] Imported: org.eclipse.aether.spi < plexus.core > [DEBUG] Imported: org.eclipse.aether.transfer < plexus.core > [DEBUG] Imported: org.eclipse.aether.util < plexus.core > [DEBUG] Imported: org.eclipse.aether.version < plexus.core > [DEBUG] Imported: org.fusesource.jansi.* < plexus.core > [DEBUG] Imported: org.slf4j.* < plexus.core > [DEBUG] Imported: org.slf4j.event.* < plexus.core > [DEBUG] Imported: org.slf4j.helpers.* < plexus.core > [DEBUG] Imported: org.slf4j.spi.* < plexus.core > [DEBUG] Populating class realm maven.api > [DEBUG] Created adapter factory; available factories [file-lock, > rwlock-local, semaphore-local, noop]; available name mappers [discriminating, > file-gav, file-hgav, file-static, gav, static] > [INFO] Error stacktraces are turned on. > [DEBUG] Message scheme: color > [DEBUG] Message styles: debug info warning error success failure strong mojo > project > [DEBUG] Reading global settings from > /usr/local/apache-maven/apache-maven-3.9.4/conf/settings.xml > [DEBUG] Reading user settings from /home/gchabala/.m2/settings.xml > [DEBUG] Reading global toolchains from > /usr/local/apache-maven/apache-maven-3.9.4/conf/toolchains.xml > [DEBUG] Reading user toolchains from /home/gchabala/.m2/toolchains.xml > [DEBUG] Using local repository at /home/gchabala/.m2/repository > [DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for > /home/gchabala/.m2/repository > [INFO] Scanning for projects... > [DEBUG] Extension realms for project > org.chabala.example:example-blank:jar:1.0.0-SNAPSHOT: (none) > [DEBUG] Looking up lifecycle mappings for packaging jar from > ClassRealm[plexus.core, parent: null] > [DEBUG] Creating adapter using nameMapper 'gav' and factory 'rwlock-local' > [DEBUG] === REACTOR BUILD PLAN > ================================================ > [DEBUG] Project: org.chabala.example:example-blank:jar:1.0.0-SNAPSHOT > [DEBUG] Tasks: > [org.apache.maven.plugins:maven-toolchains-plugin:3.2.0:display-discovered-jdk-toolchains] > [DEBUG] Style: Aggregating > [DEBUG] > ======================================================================= > [INFO] > [INFO] -----------------< org.chabala.example:example-blank > >------------------ > [INFO] Building example-blank 1.0.0-SNAPSHOT > [INFO] from pom.xml > [INFO] --------------------------------[ jar > ]--------------------------------- > [DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean] > [DEBUG] Lifecycle default -> [validate, initialize, generate-sources, > process-sources, generate-resources, process-resources, compile, > process-classes, generate-test-sources, process-test-sources, > generate-test-resources, process-test-resources, test-compile, > process-test-classes, test, prepare-package, package, pre-integration-test, > integration-test, post-integration-test, verify, install, deploy] > [DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy] > [DEBUG] === PROJECT BUILD PLAN > ================================================ > [DEBUG] Project: org.chabala.example:example-blank:1.0.0-SNAPSHOT > [DEBUG] Dependencies (collect): [] > [DEBUG] Dependencies (resolve): [] > [DEBUG] Repositories (dependencies): [central > (https://repo.maven.apache.org/maven2, default, releases)] > [DEBUG] Repositories (plugins) : [central > (https://repo.maven.apache.org/maven2, default, releases)] > [DEBUG] > ----------------------------------------------------------------------- > [DEBUG] Goal: > org.apache.maven.plugins:maven-toolchains-plugin:3.2.0:display-discovered-jdk-toolchains > (default-cli) > [DEBUG] Style: Regular > [DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?> > <configuration> > <comparator > default-value="lts,current,env,version,vendor">${toolchain.jdk.comparator}</comparator> > </configuration> > [DEBUG] > ======================================================================= > [INFO] > [INFO] --- toolchains:3.2.0:display-discovered-jdk-toolchains (default-cli) @ > example-blank --- > [DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=607546, > ConflictMarker.markTime=420980, ConflictMarker.nodeCount=4, > ConflictIdSorter.graphTime=438409, ConflictIdSorter.topsortTime=322845, > ConflictIdSorter.conflictIdCount=4, ConflictIdSorter.conflictIdCycleCount=0, > ConflictResolver.totalTime=3050735, ConflictResolver.conflictItemCount=4, > DfDependencyCollector.collectTime=32679714, > DfDependencyCollector.transformTime=6608861} > [DEBUG] org.apache.maven.plugins:maven-toolchains-plugin:jar:3.2.0 > [DEBUG] org.codehaus.plexus:plexus-xml:jar:3.0.0:compile > [DEBUG] org.slf4j:slf4j-api:jar:1.7.36:compile > [DEBUG] javax.inject:javax.inject:jar:1:compile > [DEBUG] Created new class realm > plugin>org.apache.maven.plugins:maven-toolchains-plugin:3.2.0 > [DEBUG] Importing foreign packages into class realm > plugin>org.apache.maven.plugins:maven-toolchains-plugin:3.2.0 > [DEBUG] Imported: < maven.api > [DEBUG] Populating class realm > plugin>org.apache.maven.plugins:maven-toolchains-plugin:3.2.0 > [DEBUG] Included: org.apache.maven.plugins:maven-toolchains-plugin:jar:3.2.0 > [DEBUG] Included: org.codehaus.plexus:plexus-xml:jar:3.0.0 > [DEBUG] Loading mojo > org.apache.maven.plugins:maven-toolchains-plugin:3.2.0:display-discovered-jdk-toolchains > from plugin realm > ClassRealm[plugin>org.apache.maven.plugins:maven-toolchains-plugin:3.2.0, > parent: sun.misc.Launcher$AppClassLoader@7852e922] > [DEBUG] Configuring mojo execution > 'org.apache.maven.plugins:maven-toolchains-plugin:3.2.0:display-discovered-jdk-toolchains:default-cli' > with basic configurator --> > [DEBUG] (f) comparator = lts,current,env,version,vendor > [DEBUG] -- end configuration -- > [INFO] Found 3 possible jdks: [/usr/lib/jvm/adoptopenjdk-11-hotspot-amd64, > /usr/lib/jvm/jdk1.5.0_22, /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64] > [DEBUG] JDK toolchain discovered at /usr/lib/jvm/jdk1.5.0_22 will be ignored: > could not obtain java.version > [WARNING] Error discovering toolchains: java.lang.NullPointerException > java.lang.NullPointerException > at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method) > at sun.reflect.NativeConstructorAccessorImpl.newInstance > (NativeConstructorAccessorImpl.java:62) > at sun.reflect.DelegatingConstructorAccessorImpl.newInstance > (DelegatingConstructorAccessorImpl.java:45) > at java.lang.reflect.Constructor.newInstance (Constructor.java:423) > at java.util.concurrent.ForkJoinTask.getThrowableException > (ForkJoinTask.java:598) > at java.util.concurrent.ForkJoinTask.reportException > (ForkJoinTask.java:677) > at java.util.concurrent.ForkJoinTask.invoke (ForkJoinTask.java:735) > at java.util.stream.Nodes.collect (Nodes.java:328) > at java.util.stream.ReferencePipeline.evaluateToNode > (ReferencePipeline.java:109) > at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:541) > at java.util.stream.SortedOps$OfRef.opEvaluateParallel > (SortedOps.java:157) > at java.util.stream.AbstractPipeline.opEvaluateParallelLazy > (AbstractPipeline.java:705) > at java.util.stream.AbstractPipeline.sourceSpliterator > (AbstractPipeline.java:432) > at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:233) > at java.util.stream.ReferencePipeline.collect (ReferencePipeline.java:566) > at > org.apache.maven.plugins.toolchain.jdk.ToolchainDiscoverer.discoverToolchains > (ToolchainDiscoverer.java:162) > at > org.apache.maven.plugins.toolchain.jdk.DisplayDiscoveredJdkToolchainsMojo.execute > (DisplayDiscoveredJdkToolchainsMojo.java:65) > at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > (DefaultBuildPluginManager.java:126) > at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 > (MojoExecutor.java:328) > at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute > (MojoExecutor.java:316) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:212) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:174) > at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 > (MojoExecutor.java:75) > at org.apache.maven.lifecycle.internal.MojoExecutor$1.run > (MojoExecutor.java:162) > at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute > (DefaultMojosExecutionStrategy.java:39) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:159) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:105) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:73) > at > org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build > (SingleThreadedBuilder.java:53) > at org.apache.maven.lifecycle.internal.LifecycleStarter.execute > (LifecycleStarter.java:118) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173) > at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101) > at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906) > at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283) > at org.apache.maven.cli.MavenCli.main (MavenCli.java:206) > 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:283) > at org.codehaus.plexus.classworlds.launcher.Launcher.launch > (Launcher.java:226) > at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode > (Launcher.java:407) > at org.codehaus.plexus.classworlds.launcher.Launcher.main > (Launcher.java:348) > Caused by: java.lang.NullPointerException > at java.util.concurrent.ConcurrentHashMap.putVal > (ConcurrentHashMap.java:1011) > at java.util.concurrent.ConcurrentHashMap.put > (ConcurrentHashMap.java:1006) > at > org.apache.maven.plugins.toolchain.jdk.ToolchainDiscoverer.getToolchainModel > (ToolchainDiscoverer.java:241) > at > org.apache.maven.plugins.toolchain.jdk.ToolchainDiscoverer.lambda$discoverToolchains$6 > (ToolchainDiscoverer.java:152) > at java.util.stream.ReferencePipeline$3$1.accept > (ReferencePipeline.java:193) > at java.util.HashMap$KeySpliterator.forEachRemaining (HashMap.java:1556) > at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:482) > at java.util.stream.AbstractPipeline.wrapAndCopyInto > (AbstractPipeline.java:472) > at java.util.stream.Nodes$CollectorTask.doLeaf (Nodes.java:2183) > at java.util.stream.Nodes$CollectorTask.doLeaf (Nodes.java:2149) > at java.util.stream.AbstractTask.compute (AbstractTask.java:327) > at java.util.concurrent.CountedCompleter.exec (CountedCompleter.java:731) > at java.util.concurrent.ForkJoinTask.doExec (ForkJoinTask.java:289) > at java.util.concurrent.ForkJoinPool$WorkQueue.runTask > (ForkJoinPool.java:1056) > at java.util.concurrent.ForkJoinPool.runWorker (ForkJoinPool.java:1692) > at java.util.concurrent.ForkJoinWorkerThread.run > (ForkJoinWorkerThread.java:175) > [INFO] Discovered 0 JDK toolchains: > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD SUCCESS > [INFO] > ------------------------------------------------------------------------ > {noformat} > So, trying to put a null jdk reference into a HashMap? > https://github.com/apache/maven-toolchains-plugin/blob/c5edd013b6d7180c8f0712e02abc61b50993f44a/src/main/java/org/apache/maven/plugins/toolchain/jdk/ToolchainDiscoverer.java#L237-L241 -- This message was sent by Atlassian Jira (v8.20.10#820010)