[
http://jira.codehaus.org/browse/MNG-3221?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
John Casey updated MNG-3221:
----------------------------
This patch looks like it will prevent any @execute phase="xxx" from running,
since the check is a truism...targetPhase is set to
mojoDescriptor.getExecutePhase(), then later, the forked execution won't run if
( mojoDescriptor.getExecutionPhase().equals( targetPhase) )...in other words,
nothing modifies targetPhase, and the only way the forked phase will run is if
targetPhase is modified...
Can you provide some tests that display this problem broken, then fixed with
the patch?
> Infinite loop in DefaultLifecycleExecutor
> -----------------------------------------
>
> Key: MNG-3221
> URL: http://jira.codehaus.org/browse/MNG-3221
> Project: Maven 2
> Issue Type: Bug
> Components: Plugins and Lifecycle
> Affects Versions: 2.0.7
> Reporter: Vincent Siveton
> Fix For: 2.0.9
>
> Attachments: infinite-loop.diff
>
>
> Defining this following report:
> {code:title=MyReport.java|borderStyle=solid}
> /**
> * @goal mygoal
> * @execute phase="site"
> */
> public class MyReport
> extends AbstractMavenReport{}
> {code}
> I got this following loop:
> {noformat}
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 530
> DefaultLifecycleExecutor.executeGoalWithLifecycle(String, Stack,
> MavenSession, Map, MavenProject, Lifecycle) line: 480
> DefaultLifecycleExecutor.forkProjectLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 896
> DefaultLifecycleExecutor.forkLifecycle(MojoDescriptor, Stack,
> MavenSession, MavenProject) line: 739
> DefaultLifecycleExecutor.executeGoals(List, Stack, MavenSession,
> MavenProject) line: 510
> DefaultLifecycleExecutor.executeStandaloneGoal(String, Stack,
> MavenSession, MavenProject) line: 493
> DefaultLifecycleExecutor.executeGoal(String, MavenSession,
> MavenProject) line: 463
> DefaultLifecycleExecutor.executeGoalAndHandleFailures(String,
> MavenSession, MavenProject, EventDispatcher, String, ReactorManager, long,
> String) line: 311
> DefaultLifecycleExecutor.executeTaskSegments(List, ReactorManager,
> MavenSession, MavenProject, EventDispatcher) line: 278
> DefaultLifecycleExecutor.execute(MavenSession, ReactorManager,
> EventDispatcher) line: 143
> DefaultMaven.doExecute(MavenExecutionRequest, EventDispatcher) line:
> 333
> DefaultMaven.execute(MavenExecutionRequest) line: 126
> MavenCli.main(String[], ClassWorld) line: 280
> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
> available [native method]
> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
> Method.invoke(Object, Object[]) line: 324
> Launcher.launchEnhanced(String[]) line: 315
> Launcher.launch(String[]) line: 255
> Launcher.mainWithExitCode(String[]) line: 430
> Launcher.main(String[]) line: 375
> {noformat}
> I put a small patch to break this, but I am not confident of potential side
> effects. Thanks to review it.
--
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