X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.server%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fws%2Fprocess%2FSlcExecutionStepsRequestEp.java;h=bb28343f581a11c5555a9ed53b020166652bc7b8;hb=566554259d48596809aafc567ccc845cefdfb905;hp=cf6a7af93bec9198fba4c4460566dcb38645f124;hpb=b3991f6eea5fa7301459307b08158028b97c2eb3;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/process/SlcExecutionStepsRequestEp.java b/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/process/SlcExecutionStepsRequestEp.java index cf6a7af93..bb28343f5 100644 --- a/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/process/SlcExecutionStepsRequestEp.java +++ b/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/process/SlcExecutionStepsRequestEp.java @@ -1,11 +1,15 @@ package org.argeo.slc.ws.process; +import java.util.List; + import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.argeo.slc.core.SlcException; import org.argeo.slc.core.process.SlcExecution; +import org.argeo.slc.core.process.SlcExecutionStep; import org.argeo.slc.dao.process.SlcExecutionDao; import org.argeo.slc.msg.process.SlcExecutionStepsRequest; @@ -22,16 +26,34 @@ public class SlcExecutionStepsRequestEp extends @Override protected Object invokeInternal(Object requestObject) throws Exception { - SlcExecutionStepsRequest msg = (SlcExecutionStepsRequest) requestObject; - String uuid = msg.getSlcExecutionUuid(); - SlcExecution slcExecution = slcExecutionDao.getSlcExecution(uuid); - - slcExecution.getSteps().addAll(msg.getSteps()); - - slcExecutionDao.update(slcExecution); - log.debug("Added " + msg.getSteps().size() - + "steps to SlcExecution with uuid " + slcExecution.getUuid()); - return null; + String uuid = null; + try { + SlcExecutionStepsRequest msg = (SlcExecutionStepsRequest) requestObject; + uuid = msg.getSlcExecutionUuid(); + SlcExecution slcExecution = slcExecutionDao.getSlcExecution(uuid); + + if (slcExecution == null) + throw new SlcException("Could not find slc execution " + uuid); + + List additionalSteps = msg.getSteps(); + if(log.isTraceEnabled()){ + log.trace("Trying to add additional steps to slc execution "+uuid+":"); + for(SlcExecutionStep step: additionalSteps){ + log.trace("Step "+step.getUuid()+" (in slc execution "+uuid+")"); + } + } + slcExecution.getSteps().addAll(additionalSteps); + + slcExecutionDao.update(slcExecution); + log.debug("Added " + msg.getSteps().size() + + " steps to SlcExecution with uuid " + + slcExecution.getUuid()); + return null; + } catch (Exception e) { + log.error("Could not update SlcExecution " + uuid + + " with additional steps", e); + throw e; + } } }