From 3fa8a446dc9a5fb3f014cbfc2e58e2ac4dddba6a Mon Sep 17 00:00:00 2001 From: Thomas Reinhardt Date: Fri, 28 Jan 2022 17:23:54 +0100 Subject: [PATCH 1/2] [MTOOLCHAINS-31] - Not threadsafe for parallel execution --- .../java/org/apache/maven/plugins/toolchain/ToolchainMojo.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/maven/plugins/toolchain/ToolchainMojo.java b/src/main/java/org/apache/maven/plugins/toolchain/ToolchainMojo.java index 7cef3d7..7a2f7e0 100644 --- a/src/main/java/org/apache/maven/plugins/toolchain/ToolchainMojo.java +++ b/src/main/java/org/apache/maven/plugins/toolchain/ToolchainMojo.java @@ -42,7 +42,8 @@ * @author mkleint */ @Mojo( name = "toolchain", defaultPhase = LifecyclePhase.VALIDATE, - configurator = "toolchains-requirement-configurator" ) + configurator = "toolchains-requirement-configurator", + threadSafe = true ) public class ToolchainMojo extends AbstractMojo { From fb6ced911a9c48780dc0f1d5472ea3b5d257d743 Mon Sep 17 00:00:00 2001 From: Thomas Reinhardt Date: Tue, 1 Mar 2022 10:52:21 +0100 Subject: [PATCH 2/2] [MTOOLCHAINS-31] - Not threadsafe for parallel execution --- .../org/apache/maven/plugins/toolchain/ToolchainMojo.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/maven/plugins/toolchain/ToolchainMojo.java b/src/main/java/org/apache/maven/plugins/toolchain/ToolchainMojo.java index 7a2f7e0..37ab11a 100644 --- a/src/main/java/org/apache/maven/plugins/toolchain/ToolchainMojo.java +++ b/src/main/java/org/apache/maven/plugins/toolchain/ToolchainMojo.java @@ -47,6 +47,7 @@ public class ToolchainMojo extends AbstractMojo { + private static final Object LOCK = new Object(); /** */ @@ -161,7 +162,10 @@ protected boolean selectToolchain( String type, Map params ) getLog().info( "Found matching toolchain for type " + type + ": " + tc ); // store matching toolchain to build context - toolchainManagerPrivate.storeToolchainToBuildContext( tc, session ); + synchronized ( LOCK ) + { + toolchainManagerPrivate.storeToolchainToBuildContext( tc, session ); + } return true; }