From 3966482d0272f2226b76767a62ede3266c2cf655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20Gond=C5=BEa?= Date: Tue, 3 Oct 2017 12:03:02 +0200 Subject: [PATCH] Do not unlock what might not be locked --- src/main/java/hudson/matrix/MatrixProject.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/hudson/matrix/MatrixProject.java b/src/main/java/hudson/matrix/MatrixProject.java index a48f149b..3be40b41 100644 --- a/src/main/java/hudson/matrix/MatrixProject.java +++ b/src/main/java/hudson/matrix/MatrixProject.java @@ -204,7 +204,7 @@ public class MatrixProject extends AbstractProject im /** * Lock to prevent project changes on different build at the same time */ - private transient Lock buildLock = new ReentrantLock(); + private transient @Nonnull ReentrantLock buildLock = new ReentrantLock(); public MatrixProject(String name) { this(Jenkins.getInstance(), name); @@ -676,8 +676,8 @@ public Combination apply(@Nullable List strings) { * Configuration for matrix build */ /*package*/ static class RunConfiguration { - public Set config; - public AxisList axisList; + Set config; + AxisList axisList; } /** @@ -685,15 +685,13 @@ public Combination apply(@Nullable List strings) { */ /*package*/ RunConfiguration getRunConfiguration(MatrixBuildExecution context) throws IOException { RunConfiguration runConfig = new RunConfiguration(); + buildLock.lock(); try { - buildLock.lock(); - // give axes a chance to rebuild themselves runConfig.config = rebuildConfigurations(context); // deep copy the axes runConfig.axisList = (AxisList) Jenkins.XSTREAM.fromXML(Jenkins.XSTREAM.toXML(axes)); - } finally { buildLock.unlock(); }