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(); } }