Skip to content

Commit e7077c6

Browse files
kriegaexrmannibucau
andcommitted
[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 <rmannibucau@gmail.com>
1 parent ae907a8 commit e7077c6

File tree

1 file changed

+1
-9
lines changed

1 file changed

+1
-9
lines changed

src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java

+1-9
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@
3535
import java.util.List;
3636
import java.util.Map;
3737
import java.util.Set;
38-
import java.util.concurrent.locks.Lock;
39-
import java.util.concurrent.locks.ReentrantLock;
4038

4139
import org.apache.maven.RepositoryUtils;
4240
import org.apache.maven.artifact.Artifact;
@@ -1050,8 +1048,6 @@ private void createDependencyReducedPom(Set<String> artifactsToRemove)
10501048
rewriteDependencyReducedPomIfWeHaveReduction(dependencies, modified, transitiveDeps, model);
10511049
}
10521050

1053-
private static final Lock LOCK = new ReentrantLock();
1054-
10551051
private void rewriteDependencyReducedPomIfWeHaveReduction(
10561052
List<Dependency> dependencies, boolean modified, List<Dependency> transitiveDeps, Model model)
10571053
throws IOException, ProjectBuildingException, DependencyGraphBuilderException {
@@ -1116,9 +1112,7 @@ private void rewriteDependencyReducedPomIfWeHaveReduction(
11161112
w.close();
11171113
}
11181114

1119-
// Lock critical section to fix MSHADE-467
1120-
try {
1121-
LOCK.lock();
1115+
synchronized (session.getProjectBuildingRequest()) { // Lock critical section to fix MSHADE-467
11221116
ProjectBuildingRequest projectBuildingRequest =
11231117
new DefaultProjectBuildingRequest(session.getProjectBuildingRequest());
11241118
projectBuildingRequest.setLocalRepository(session.getLocalRepository());
@@ -1128,8 +1122,6 @@ private void rewriteDependencyReducedPomIfWeHaveReduction(
11281122

11291123
getLog().debug("updateExcludesInDeps()");
11301124
modified = updateExcludesInDeps(result.getProject(), dependencies, transitiveDeps);
1131-
} finally {
1132-
LOCK.unlock();
11331125
}
11341126
}
11351127

0 commit comments

Comments
 (0)