]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/ProcessThread.java
Introduce filtered resources
[gpl/argeo-slc.git] / runtime / org.argeo.slc.core / src / main / java / org / argeo / slc / core / execution / ProcessThread.java
index 678e6f679ae809322e81125b79fece1074489a50..ec600cb5776deeaa6a9020cba225f2c284d59ea0 100644 (file)
@@ -19,6 +19,8 @@ public class ProcessThread extends Thread {
        private final ThreadGroup processThreadGroup;
        private final List<RealizedFlow> flowsToProcess = new ArrayList<RealizedFlow>();
 
+       private Boolean hadAnError = false;
+
        public ProcessThread(
                        AbstractExecutionModulesManager executionModulesManager,
                        SlcExecution slcExecution) {
@@ -53,9 +55,12 @@ public class ProcessThread extends Thread {
                        }
                }
 
-               slcProcess.setStatus(SlcExecution.STATUS_FINISHED);
+               if (hadAnError)
+                       slcProcess.setStatus(SlcExecution.STATUS_ERROR);
+               else
+                       slcProcess.setStatus(SlcExecution.STATUS_FINISHED);
                dispatchUpdateStatus(slcProcess, SlcExecution.STATUS_RUNNING,
-                               SlcExecution.STATUS_FINISHED);
+                               slcProcess.getStatus());
        }
 
        protected void dispatchUpdateStatus(SlcExecution slcExecution,
@@ -66,6 +71,10 @@ public class ProcessThread extends Thread {
                }
        }
 
+       public void notifyError() {
+               hadAnError = true;
+       }
+
        public synchronized void flowCompleted() {
                notifyAll();
        }