diff --git a/src/main/java/org/jenkins/plugins/lockableresources/LockableResourcesManager.java b/src/main/java/org/jenkins/plugins/lockableresources/LockableResourcesManager.java index 29ee75fac..9d16e36af 100644 --- a/src/main/java/org/jenkins/plugins/lockableresources/LockableResourcesManager.java +++ b/src/main/java/org/jenkins/plugins/lockableresources/LockableResourcesManager.java @@ -161,13 +161,15 @@ public List getReadOnlyResources() { /** Get declared resources, means only defined in config file (xml or JCaC yaml). */ @Restricted(NoExternalUse.class) public List getDeclaredResources() { - ArrayList declaredResources = new ArrayList<>(); - for (LockableResource r : this.getResources()) { - if (!r.isEphemeral() && !r.isNodeResource()) { - declaredResources.add(r); + synchronized (syncResources) { + ArrayList declaredResources = new ArrayList<>(); + for (LockableResource r : this.resources) { + if (!r.isEphemeral() && !r.isNodeResource()) { + declaredResources.add(r); + } } + return declaredResources; } - return declaredResources; } // --------------------------------------------------------------------------- @@ -231,14 +233,16 @@ public void setDeclaredResources(List declaredResources) { /** Get all resources used by project. */ @Restricted(NoExternalUse.class) public List getResourcesFromProject(String fullName) { - List matching = new ArrayList<>(); - for (LockableResource r : this.getResources()) { - String rName = r.getQueueItemProject(); - if (rName != null && rName.equals(fullName)) { - matching.add(r); + synchronized (syncResources) { + List matching = new ArrayList<>(); + for (LockableResource r : this.resources) { + String rName = r.getQueueItemProject(); + if (rName != null && rName.equals(fullName)) { + matching.add(r); + } } + return matching; } - return matching; } // ---------------------------------------------------------------------------