[ 
http://jira.codehaus.org/browse/MNG-4137?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=174496#action_174496
 ] 

John Casey commented on MNG-4137:
---------------------------------

The problem seems to be that Hudson provides its own version of the 
LifecycleExecutor, component descriptor; when the component descriptor or the 
class itself changes, there may be NPE's or CompositionExceptions that result, 
since the class and component descriptor may not match up anymore.

This happened in the previous issue when we added a new field to the 
DefaultLifecycleExecutor. Since Hudson's version of the component descriptor 
hadn't changed accordingly, the new field was never populated, and a NPE was 
generated. The "solution" was to warn the user that the new part of the build 
couldn't be executed:

>From DefaultLifecycleExecutor.java, line 1962:

{code}
    private void warnOfIncompleteComponentConfiguration( String role )
    {
        StringBuffer buffer = new StringBuffer();
        buffer.append( "\n************ WARNING ************" );
        buffer.append( "\n\nThis Maven runtime contains a LifecycleExecutor 
component with an incomplete configuration." );
        buffer.append( "\n\nLifecycleExecutor class: " ).append( 
getClass().getName() );
        buffer.append( "\nMissing component requirement: " ).append( role );
        buffer.append( "\n" );
        buffer.append( "\nNOTE: This seems to be a third-party Maven derivative 
you are using. If so, please" );
        buffer.append( "\nnotify the developers for this derivative project of 
the problem. The Apache Maven team is not" );
        buffer.append( "\nresponsible for maintaining the integrity of 
third-party component overrides." );
        buffer.append( "\n\n" );
        
        getLogger().warn( buffer.toString() );
    }
{code}


> NPE in DefaultLIfecycleExecutor when run from within Hudson builds
> ------------------------------------------------------------------
>
>                 Key: MNG-4137
>                 URL: http://jira.codehaus.org/browse/MNG-4137
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Plugins and Lifecycle
>    Affects Versions: 2.1.0
>         Environment: Hudson ver. 1.299
> Apache Maven 2.1.0 (r755702; 2009-03-18 15:10:27-0400)
> Java version: 1.6.0_12
> Java home: /usr/java/jdk1.6.0_12/jre
> Default locale: en_US, platform encoding: UTF-8
> OS name: "linux" version: "2.6.18-92.1.18.el5" arch: "i386" Family: "unix"
>            Reporter: Jonathan Johnson
>
> Since upgrading from Maven 2.0.10 to 2.1.0 my Hudson midnight job that runs 
> "clean site" fails with a NullPointerException at 
> DefaultLifecycleExecutor.java:747 exception.  See below.
> This is related, if not the same bug that was claimed fixed in 2.1.0 M1 - 
> http://jira.codehaus.org/browse/MNG-3704
> I though its was an issue with the Cobertura plugin - See 
> https://hudson.dev.java.net/issues/show_bug.cgi?id=3468 but once I remove 
> Cobertura I now get the same stack trace after "[INFO] Preparing 
> surefire-report:report":
> [INFO] Preparing surefire-report:report
> [HUDSON] Archiving [...omittted for this posting...]
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] FATAL ERROR
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] null
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Trace
> java.lang.NullPointerException
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.calculateConcreteConfiguration(DefaultLifecycleExecutor.java:747)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:578)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:540)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkProjectLifecycle(DefaultLifecycleExecutor.java:1168)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkLifecycle(DefaultLifecycleExecutor.java:1009)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:647)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:540)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:519)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:332)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:181)
>       at 
> org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65)
>       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356)
>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
>       at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
>       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.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>       at hudson.maven.agent.Main.launch(Main.java:158)
>       at hudson.maven.MavenBuilder.call(MavenBuilder.java:162)
>       at 
> hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:578)
>       at 
> hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:524)
>       at hudson.remoting.UserRequest.perform(UserRequest.java:97)
>       at hudson.remoting.UserRequest.perform(UserRequest.java:46)
>       at hudson.remoting.Request$2.run(Request.java:236)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>       at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>       at java.lang.Thread.run(Thread.java:619)
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 6 minutes 45 seconds
> [INFO] Finished at: Fri Apr 17 14:58:47 EDT 2009
> [INFO] Final Memory: 76M/271M
> [INFO] 
> ------------------------------------------------------------------------

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to