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

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

commit e7077c628c2cbb059c829ffb124690f211ba36b0
Author: Alexander Kriegisch <alexan...@kriegisch.name>
AuthorDate: Sun Jan 21 03:44:15 2024 +0700

    [MSHADE-467] Improved concurrency problem fix
    
    Code review: Synchronising on session.getProjectBuildingRequest() is
    less invasive than a global reentrant lock and therefore preferable to
    the reviewer.
    
    Co-authored-by: Romain Manni-Bucau <rmannibu...@gmail.com>
---
 .../java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java    | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java 
b/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
index 3a7eaaa..a8475d9 100644
--- a/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
+++ b/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
@@ -35,8 +35,6 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
 
 import org.apache.maven.RepositoryUtils;
 import org.apache.maven.artifact.Artifact;
@@ -1050,8 +1048,6 @@ public class ShadeMojo extends AbstractMojo {
         rewriteDependencyReducedPomIfWeHaveReduction(dependencies, modified, 
transitiveDeps, model);
     }
 
-    private static final Lock LOCK = new ReentrantLock();
-
     private void rewriteDependencyReducedPomIfWeHaveReduction(
             List<Dependency> dependencies, boolean modified, List<Dependency> 
transitiveDeps, Model model)
             throws IOException, ProjectBuildingException, 
DependencyGraphBuilderException {
@@ -1116,9 +1112,7 @@ public class ShadeMojo extends AbstractMojo {
                     w.close();
                 }
 
-                // Lock critical section to fix MSHADE-467
-                try {
-                    LOCK.lock();
+                synchronized (session.getProjectBuildingRequest()) { // Lock 
critical section to fix MSHADE-467
                     ProjectBuildingRequest projectBuildingRequest =
                             new 
DefaultProjectBuildingRequest(session.getProjectBuildingRequest());
                     
projectBuildingRequest.setLocalRepository(session.getLocalRepository());
@@ -1128,8 +1122,6 @@ public class ShadeMojo extends AbstractMojo {
 
                     getLog().debug("updateExcludesInDeps()");
                     modified = updateExcludesInDeps(result.getProject(), 
dependencies, transitiveDeps);
-                } finally {
-                    LOCK.unlock();
                 }
             }
 

Reply via email to