[ https://jira.codehaus.org/browse/MNG-5349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=319818#comment-319818 ]
Robert Scholte commented on MNG-5349: ------------------------------------- AFAIK, if you have 2 or more components, the <id> is required, so Plexus can uniquely idententify every component. Since you didn't follow the requirements, you got the NPE. > NullPointerException if missing id in org.apache.maven.lifecycle.Lifecycle > -------------------------------------------------------------------------- > > Key: MNG-5349 > URL: https://jira.codehaus.org/browse/MNG-5349 > Project: Maven 2 & 3 > Issue Type: Bug > Components: Plugins and Lifecycle > Affects Versions: 3.0.4 > Environment: Ubuntu Precise, Maven 3.0.4 > Reporter: John Riedl > Priority: Minor > Attachments: components.xml, lifecycles.xml, phase-test.tar, pom.xml > > > I've been working with custom lifecycles, and accidentally left the "id" out > of one of them. You can see it in this example where I commented out the key > line (everything works fine if this line is uncommented): > {code:xml} > <component-set> > <components> > <component> > <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role> > <role-hint>phase-test</role-hint> > <implementation> > org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping > </implementation> > </component> > <component> > <role>org.apache.maven.lifecycle.Lifecycle</role> > <role-hint>phase-test</role-hint> > <implementation>org.apache.maven.lifecycle.Lifecycle</implementation> > <configuration> > <!-- <id>phase-test</id> --> > <phases> > <phase>tp-pre-new-phase</phase> > <phase>tp-new-phase</phase> > <phase>tp-post-new-phase</phase> > </phases> > <default-phases> > > <tp-new-phase>org.riedl:phase-test-maven-plugin:greet</tp-new-phase> > </default-phases> > </configuration> > </component> > </components> > </component-set> > ~ > {code} > Here's most of the stack trace: > {noformat} > (macro: ~/Src/lenskit-projects/tryout-phase-test-plugin) mvn tp-post-new-phase > [INFO] Scanning for projects... > [ERROR] Internal error: java.lang.NullPointerException -> [Help 1] > org.apache.maven.InternalErrorException: Internal error: > java.lang.NullPointerException > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:168) > at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) > at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) > at > org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) > at > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) > at > org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) > Caused by: java.lang.NullPointerException > at java.lang.String.compareTo(String.java:1167) > at > org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer$1.compare(DefaultLifecyclePluginAnalyzer.java:144) > at > org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer$1.compare(DefaultLifecyclePluginAnalyzer.java:140) > at java.util.Arrays.mergeSort(Arrays.java:1270) > at java.util.Arrays.sort(Arrays.java:1210) > at java.util.Collections.sort(Collections.java:159) > at > org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer.getOrderedLifecycles(DefaultLifecyclePluginAnalyzer.java:139) > at > org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer.getPluginsBoundByDefaultToAllLifecycles(DefaultLifecyclePluginAnalyzer.java:96) > at > org.apache.maven.model.plugin.DefaultLifecycleBindingsInjector.injectLifecycleBindings(DefaultLifecycleBindingsInjector.java:63) > at > org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:397) > at > org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:371) > at > org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:560) > {noformat} > The NullPointerException happens with most attempts to run the project, such > as "mvn foo". I've attached the pom.xml, lifecycles.xml, components.xml, and > the Java for the plugin. I think only components.xml is relevant. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira