You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ch...@apache.org on 2011/02/02 07:17:45 UTC
svn commit: r1066339 - in /synapse/trunk/java/modules:
core/src/main/java/org/apache/synapse/core/axis2/
transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/
Author: charith
Date: Wed Feb 2 06:17:44 2011
New Revision: 1066339
URL: http://svn.apache.org/viewvc?rev=1066339&view=rev
Log:
fixing a Issue in the current Endpoint behavior with Out only MEP where endpoints not get notified when the endpoint is down.
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java?rev=1066339&r1=1066338&r2=1066339&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java Wed Feb 2 06:17:44 2011
@@ -107,6 +107,26 @@ public class SynapseCallbackReceiver imp
String messageID = null;
+ /**
+ * In an Out-only scenario if the client receives a HTTP 202 accepted we need to
+ * remove the call back/s registered for that request.
+ * This if will check weather this is a message sent in a that scenario and remove the callback
+ */
+ if (messageCtx.getProperty(NhttpConstants.HTTP_202_RECEIVED) != null && "true".equals(
+ messageCtx.getProperty(NhttpConstants.HTTP_202_RECEIVED))) {
+ if (callbackStore.containsKey(messageCtx.getMessageID())) {
+ callbackStore.remove(messageCtx.getMessageID());
+ if (log.isDebugEnabled()) {
+ log.debug("CallBack registered with Message id : " + messageCtx.getMessageID() +
+ " removed from the " +
+ "callback store since we got an accepted Notification");
+ }
+ }
+
+ return;
+ }
+
+
if (messageCtx.getOptions() != null && messageCtx.getOptions().getRelatesTo() != null) {
// never take a chance with a NPE at this stage.. so check at each level :-)
Options options = messageCtx.getOptions();
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java?rev=1066339&r1=1066338&r2=1066339&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java Wed Feb 2 06:17:44 2011
@@ -713,9 +713,13 @@ public class ClientHandler implements NH
MessageContext responseMsgCtx = outMsgCtx.getOperationContext().
getMessageContext(WSDL2Constants.MESSAGE_LABEL_IN);
if (responseMsgCtx == null ||
- outMsgCtx.getOptions().isUseSeparateListener()) {
- // This means that we received a 202 accepted for an out-only ,
- // for which we do not need a dummy message anyway
+ outMsgCtx.getOptions().isUseSeparateListener() ||
+ outMsgCtx.getOperationContext().isComplete()) {
+ // Since we need to notify the SynapseCallback receiver to remove the
+ // call backs registered we set a custom property
+ outMsgCtx.setProperty(NhttpConstants.HTTP_202_RECEIVED, "true");
+ mr.receive(outMsgCtx);
+
return;
}
responseMsgCtx.setServerSide(true);
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java?rev=1066339&r1=1066338&r2=1066339&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java Wed Feb 2 06:17:44 2011
@@ -129,6 +129,12 @@ public class NhttpConstants {
/** Output stram of the message is set to this message context property */
public static final String NHTTP_OUTPUT_STREAM = "nhttp.output.stream";
+ /**
+ * A message context property indicating "TRUE", This will set on success scenarios
+ */
+ public static final String HTTP_202_RECEIVED = "HTTP_202_RECEIVED";
+
+
/** This constant is used to plugin a custom WSDL processor for Get requests*/
public static final String HTTP_GET_PROCESSOR = "httpGetProcessor";