diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/stage/StagingManager.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/stage/StagingManager.java index 3ede9ebdf9..3ffedae65e 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/stage/StagingManager.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/stage/StagingManager.java @@ -182,10 +182,15 @@ public IStagedResource find(String path) { if (resource == null) { boolean foundResourcePath = resourcePaths.contains(path); if (!foundResourcePath && clusterEnabled) { - refreshResourceList(); - foundResourcePath = resourcePaths.contains(path); - } - if (foundResourcePath) { + synchronized (this) { + StagedResource staged = new StagedResource(directory, path, this); + if (staged.exists() && staged.getState() == State.DONE) { + resourcePaths.add(path); + resource = staged; + foundResourcePath = true; + } + } + } else if (foundResourcePath) { resource = new StagedResource(directory, path, this); } }