Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
avoid synchronization for Jenkinsget/setJDKs, use a volatile field in…
…stead

[FIXES JENKINS-31932]
  • Loading branch information
daspilker committed Jan 7, 2016
1 parent 86ec658 commit 9a23908
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions core/src/main/java/jenkins/model/Jenkins.java
Expand Up @@ -431,7 +431,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
private transient volatile boolean isQuietingDown;
private transient volatile boolean terminating;

private List<JDK> jdks = new ArrayList<JDK>();
private volatile List<JDK> jdks = new ArrayList<JDK>();

private transient volatile DependencyGraph dependencyGraph;
private final transient AtomicBoolean dependencyGraphDirty = new AtomicBoolean();
Expand Down Expand Up @@ -1663,7 +1663,7 @@ public String getDisplayName() {
return Messages.Hudson_DisplayName();
}

public synchronized List<JDK> getJDKs() {
public List<JDK> getJDKs() {
if(jdks==null)
jdks = new ArrayList<JDK>();
return jdks;
Expand All @@ -1676,7 +1676,7 @@ public synchronized List<JDK> getJDKs() {
* set JDK installations from external code.
*/
@Restricted(NoExternalUse.class)
public synchronized void setJDKs(Collection<? extends JDK> jdks) {
public void setJDKs(Collection<? extends JDK> jdks) {
this.jdks = new ArrayList<JDK>(jdks);
}

Expand Down

0 comments on commit 9a23908

Please sign in to comment.