MNG-5578 fixed guice OutOfScopeException during multithreaded build
This was a regression since 3.2.1 introduced by my commit 48fec944
Signed-off-by: Igor Fedorenko <ifedorenko@apache.org>
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
index 2b4ba0e..a332c36 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
@@ -22,6 +22,7 @@
import java.util.HashSet;
import java.util.List;
+import org.apache.maven.SessionScope;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.execution.BuildSuccess;
import org.apache.maven.execution.ExecutionEvent;
@@ -64,6 +65,9 @@ public class LifecycleModuleBuilder
@Requirement
private List<ProjectExecutionListener> projectExecutionListeners;
+ @Requirement
+ private SessionScope sessionScope;
+
public void setProjectExecutionListeners( final List<ProjectExecutionListener> listeners )
{
this.projectExecutionListeners = listeners;
@@ -83,6 +87,10 @@ public void buildProject( MavenSession session, MavenSession rootSession, Reacto
long buildStartTime = System.currentTimeMillis();
+ // session may be different from rootSession seeded in DefaultMaven
+ // explicitly seed the right session here to make sure it is used by Guice
+ sessionScope.enter();
+ sessionScope.seed( MavenSession.class, session );
try
{
@@ -125,6 +133,8 @@ public void buildProject( MavenSession session, MavenSession rootSession, Reacto
}
finally
{
+ sessionScope.exit();
+
session.setCurrentProject( null );
Thread.currentThread().setContextClassLoader( reactorContext.getOriginalContextClassLoader() );