X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.detached%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fdetached%2FDetachedExecutionServerImpl.java;h=0cfd3113e6edfa21ab71090b1f9cae983b594d4e;hb=fcb482451f38cec0ec5ce0eb6fc7e298d81583b0;hp=0a2e866a5793e2850423f162feba4df13310f88f;hpb=e33b8e9046b4c328ebc9a7a26691cd81471748d4;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/DetachedExecutionServerImpl.java b/runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/DetachedExecutionServerImpl.java index 0a2e866a5..0cfd3113e 100644 --- a/runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/DetachedExecutionServerImpl.java +++ b/runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/DetachedExecutionServerImpl.java @@ -35,6 +35,8 @@ public class DetachedExecutionServerImpl implements DetachedExecutionServer, } public synchronized DetachedAnswer executeRequest(DetachedRequest request) { + log.info("Received request " + request); + DetachedAnswer answer = null; try { // Find action @@ -104,10 +106,7 @@ public class DetachedExecutionServerImpl implements DetachedExecutionServer, getCurrentSession().getRequests().add(request); getCurrentSession().getAnswers().add(answer); - if (log.isDebugEnabled()) - log.debug("Processed '" + request.getRef() + "' (status=" - + answer.getStatusAsString() + ", path=" - + request.getPath() + ")"); + log.info("Sent answer " + answer); return answer; } @@ -176,10 +175,19 @@ public class DetachedExecutionServerImpl implements DetachedExecutionServer, DetachedAdminCommand obj, DetachedRequest request) { DetachedAnswer answer; if (obj instanceof OpenSession) { - if (getCurrentSession() != null) - throw new DetachedException( - "There is already an open session #" - + getCurrentSession().getUuid()); + if (getCurrentSession() != null) { + // TODO: better understand why there is sometimes two open + // sessions sent. + log.warn("There is already an open session #" + + getCurrentSession().getUuid() + ". Closing it..."); + DetachedAnswer answerT = new DetachedAnswer( + request, + "Session #" + + getCurrentSession().getUuid() + + " forcibly closed. THIS ANSWER WAS NOT SENT BACK."); + answerT.setStatus(DetachedAnswer.CLOSED_SESSION); + getCurrentSession().getAnswers().add(answerT); + } sessions.add(((OpenSession) obj).execute(request, bundleContext)); answer = new DetachedAnswer(request, "Session #" + getCurrentSession().getUuid() + " open."); @@ -226,7 +234,7 @@ public class DetachedExecutionServerImpl implements DetachedExecutionServer, buf.append("Current session: ").append(getCurrentSession()) .append('\n'); buf.append("Current request: ").append(requestCurrent).append('\n'); - buf.append("Current answer: ").append(requestCurrent).append('\n'); + buf.append("Current answer: ").append(answerCurrent).append('\n'); buf.append("Skip count: ").append(skipCount).append('\n'); buf.append("# SESSIONS\n");