Stuart McCulloch created MNG-5981:
-------------------------------------

             Summary: Plexus lifecycle could be activated too late during 
overlapping parallel requests
                 Key: MNG-5981
                 URL: https://issues.apache.org/jira/browse/MNG-5981
             Project: Maven
          Issue Type: Bug
          Components: Plugins and Lifecycle
    Affects Versions: 3.3.9, 3.3.3, 3.3.1
            Reporter: Stuart McCulloch


A user reported seeing NPEs when running a particular project in parallel: 
http://www.mail-archive.com/users%40felix.apache.org/msg17072.html

This was tracked down to the way we defer lifecycle activation for components 
(potentially) involved in dependency injection cycles (A->B->A). This bug is 
only triggered by specific lookup sequences when running parallel builds.

The key fix was to move when we start cycle detection to the first scoped 
component in the lookup: https://bugs.eclipse.org/bugs/show_bug.cgi?id=487090 
(since a cycle can only ever involve scoped components - unscoped/per-lookup 
components can never repeat)

The accuracy was also improved by using {{Scopes.isCircularProxy}} to spot when 
we inject a circular dependency proxy (which is when when we need to defer 
activation until the end of the cycle to allow that proxy to be populated). 
Previously the code was overly pessimistic when considering what might end up 
as a cycle.

Sisu 0.3.3 contains both these fixes: 
https://wiki.eclipse.org/Sisu/Changelog#Release_0.3.3

Previous releases can be patched by replacing the old org.eclipse.sisu.inject 
and org.eclipse.sisu.plexus jars with the ones from the 0.3.3 release.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to