diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java b/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java index 2f371ba0d386aa07cd88fdd0c8ec8415d1635fb9..096fd098ba637e79e4a381cd7420a2655547feba 100644 --- a/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java +++ b/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java @@ -278,7 +278,10 @@ public final class DirectoryScanningTimerTask extends TimerTask } try { - handler.handle(item); + if (handler.mayHandle(item)) + { + handler.handle(item); + } } finally { // If the item still exists, we assume that it has not been handled. So it should be diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/IStoreHandler.java b/common/source/java/ch/systemsx/cisd/common/utilities/IStoreHandler.java index f22cfa374a0ab4223a6b921e3e97bedb4dd06dfc..7a9dacf81c8c09b60e0309bd844fae3a8c1ea91a 100644 --- a/common/source/java/ch/systemsx/cisd/common/utilities/IStoreHandler.java +++ b/common/source/java/ch/systemsx/cisd/common/utilities/IStoreHandler.java @@ -25,4 +25,6 @@ package ch.systemsx.cisd.common.utilities; public interface IStoreHandler { void handle(StoreItem item); + + boolean mayHandle(StoreItem item); } diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/PathHandlerAdapter.java b/common/source/java/ch/systemsx/cisd/common/utilities/PathHandlerAdapter.java index 0a1c143f886ecdd5c3ca6ac6017355997a1a4275..1d3e9b23be17f46331dc24ce98d6dd8b787c1308 100644 --- a/common/source/java/ch/systemsx/cisd/common/utilities/PathHandlerAdapter.java +++ b/common/source/java/ch/systemsx/cisd/common/utilities/PathHandlerAdapter.java @@ -40,17 +40,23 @@ public class PathHandlerAdapter implements IStoreHandler return new PathHandlerAdapter(handler, directory); } + private final File asFile(final StoreItem item) + { + return StoreItem.asFile(directory, item); + } + // // IStoreHandler // - public void handle(final StoreItem item) + public final boolean mayHandle(final StoreItem item) + { + return pathHandler.mayHandle(asFile(item)); + } + + public final void handle(final StoreItem item) { - final File path = StoreItem.asFile(directory, item); - if (pathHandler.mayHandle(path)) - { - pathHandler.handle(path); - } + pathHandler.handle(asFile(item)); } }