]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/DetachedExecutionServerImpl.java
Ignore target
[gpl/argeo-slc.git] / org.argeo.slc.detached / src / main / java / org / argeo / slc / detached / DetachedExecutionServerImpl.java
index 1a601310b309fdf99e22e979158671245f6874e3..4d9abc59827a52e774873c5b68b0511d536d4663 100644 (file)
@@ -17,7 +17,8 @@ public class DetachedExecutionServerImpl implements DetachedExecutionServer {
        private final DetachedContextImpl detachedContext;
        private final List sessions;
 
-       private int skipCount = 0;
+       private int skipCount = 1;// start skipCount at 1 since the first step is
+                                                               // always an open session
 
        private BundleContext bundleContext;
 
@@ -103,6 +104,18 @@ public class DetachedExecutionServerImpl implements DetachedExecutionServer {
 
                                        if (previousAnswer.getStatus() != DetachedAnswer.ERROR) {
                                                execute = false;
+                                               String msg = "Skipped path " + request.getPath()
+                                                               + " (skipCount=" + skipCount + ")";
+                                               skippedLog.append(msg);
+                                               log.info(msg);
+                                               skipCount++;
+                                       } else {
+                                               log
+                                                               .info("Path "
+                                                                               + request.getPath()
+                                                                               + " was previously in error, executing it again."
+                                                                               + " (skipCount=" + skipCount + "). Reset skip count to 1");
+                                               skipCount = 1;
                                        }
                                } else {
                                        // went further as skip count, doing nothing.
@@ -114,8 +127,6 @@ public class DetachedExecutionServerImpl implements DetachedExecutionServer {
                        DetachedStep step = (DetachedStep) obj;
                        answer = step.execute(detachedContext, request);
                } else {
-                       skippedLog.append("Skipped path " + request.getPath()
-                                       + " (skipCount=" + skipCount + ")");
                        answer = new DetachedAnswer(request);
                        answer.setStatus(DetachedAnswer.SKIPPED);
                        answer.setLog(skippedLog.toString());