X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.jcr%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fjcr%2Fexecution%2FJcrProcessThread.java;fp=runtime%2Forg.argeo.slc.support.jcr%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fjcr%2Fexecution%2FJcrProcessThread.java;h=41353e05260394f2468560b2e3618789420d7fcc;hb=3e0af9c904f35769693e813d64eea87e6bc324d7;hp=e816b1c3724bef8e270816d04da93f451f4dd85a;hpb=22bac4f4b709262422f39b3a85d3bab4aa3b5a48;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrProcessThread.java b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrProcessThread.java index e816b1c37..41353e052 100644 --- a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrProcessThread.java +++ b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrProcessThread.java @@ -22,8 +22,10 @@ import javax.jcr.Node; import javax.jcr.NodeIterator; import javax.jcr.Property; import javax.jcr.RepositoryException; +import javax.jcr.Session; import org.argeo.ArgeoException; +import org.argeo.jcr.JcrUtils; import org.argeo.slc.SlcException; import org.argeo.slc.core.execution.DefaultExecutionSpec; import org.argeo.slc.core.execution.PrimitiveSpecAttribute; @@ -50,8 +52,11 @@ public class JcrProcessThread extends ProcessThread implements SlcNames { @Override protected void process() throws InterruptedException { + Session session = null; try { - Node rootRealizedFlowNode = getNode().getNode(SLC_FLOW); + session = getJcrExecutionProcess().getRepository().login(); + Node rootRealizedFlowNode = session.getNode( + getJcrExecutionProcess().getNodePath()).getNode(SLC_FLOW); // we just manage one level for the time being NodeIterator nit = rootRealizedFlowNode.getNodes(SLC_FLOW); while (nit.hasNext()) { @@ -85,7 +90,10 @@ public class JcrProcessThread extends ProcessThread implements SlcNames { } } } catch (RepositoryException e) { - throw new ArgeoException("Cannot process " + getNode(), e); + throw new ArgeoException("Cannot process " + + getJcrExecutionProcess().getNodePath(), e); + } finally { + JcrUtils.logoutQuietly(session); } } @@ -193,7 +201,7 @@ public class JcrProcessThread extends ProcessThread implements SlcNames { } } - protected Node getNode() { - return ((JcrExecutionProcess) getProcess()).getNode(); + protected JcrExecutionProcess getJcrExecutionProcess() { + return (JcrExecutionProcess) getProcess(); } }