This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-help-plugin.git


The following commit(s) were added to refs/heads/master by this push:
     new 1cd7e02  MavenSession should be not changed
1cd7e02 is described below

commit 1cd7e02b38b22c4e8e1fddb09a924d8457bae0bd
Author: Slawomir Jaranowski <[email protected]>
AuthorDate: Fri Oct 31 12:30:16 2025 +0100

    MavenSession should be not changed
---
 .../java/org/apache/maven/plugins/help/EvaluateMojo.java   | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/apache/maven/plugins/help/EvaluateMojo.java 
b/src/main/java/org/apache/maven/plugins/help/EvaluateMojo.java
index 84dd67d..8f6a173 100644
--- a/src/main/java/org/apache/maven/plugins/help/EvaluateMojo.java
+++ b/src/main/java/org/apache/maven/plugins/help/EvaluateMojo.java
@@ -37,6 +37,7 @@ import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.converters.MarshallingContext;
 import com.thoughtworks.xstream.converters.collections.PropertiesConverter;
 import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.lifecycle.internal.MojoDescriptorCreator;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Model;
@@ -140,7 +141,7 @@ public class EvaluateMojo extends AbstractHelpMojo {
     /**
      * Input handler, needed for command line handling.
      */
-    private InputHandler inputHandler;
+    private final InputHandler inputHandler;
 
     /**
      * Component used to get mojo descriptors.
@@ -231,14 +232,11 @@ public class EvaluateMojo extends AbstractHelpMojo {
             }
             MojoExecution mojoExecution = new MojoExecution(mojoDescriptor);
 
-            MavenProject currentProject = session.getCurrentProject();
             // Maven 3: PluginParameterExpressionEvaluator gets the current 
project from the session:
-            // synchronize in case another thread wants to fetch the real 
current project in between
-            synchronized (session) {
-                session.setCurrentProject(project);
-                evaluator = new PluginParameterExpressionEvaluator(session, 
mojoExecution);
-                session.setCurrentProject(currentProject);
-            }
+            // so we need to clone the session to set the right project
+            MavenSession clonedSession = session.clone();
+            clonedSession.setCurrentProject(project);
+            evaluator = new PluginParameterExpressionEvaluator(clonedSession, 
mojoExecution);
         }
 
         return evaluator;

Reply via email to