Author: supun
Date: Sun Jan 30 04:45:32 2011
New Revision: 1065183

URL: http://svn.apache.org/viewvc?rev=1065183&view=rev
Log:
adding error handling to default endpoint

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/DefaultEndpoint.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/DefaultEndpoint.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/DefaultEndpoint.java?rev=1065183&r1=1065182&r2=1065183&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/DefaultEndpoint.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/DefaultEndpoint.java
 Sun Jan 30 04:45:32 2011
@@ -19,11 +19,42 @@
 
 package org.apache.synapse.endpoints;
 
+import org.apache.synapse.MessageContext;
+import org.apache.synapse.SynapseConstants;
+
 /**
  * This class represents an endpoint with the EPR as the 'To' header of the 
message. It is
  * responsible for sending the message to this EPR, performing retries etc on 
failure and
  * using any QOS etc as specified
  */
 public class DefaultEndpoint extends AbstractEndpoint {
-    // do nothing :)!
+    public void onFault(MessageContext synCtx) {
+
+        // is this really a fault or a timeout/connection close etc?
+        if (isTimeout(synCtx)) {
+            getContext().onTimeout();
+        } else if (isSuspendFault(synCtx)) {
+            getContext().onFault();
+        }
+
+        // this should be an ignored error if we get here
+        setErrorOnMessage(synCtx, null, null);
+        super.onFault(synCtx);
+    }
+
+    public void onSuccess() {
+        if (getContext() != null) {
+            getContext().onSuccess();
+        }
+    }
+
+    public void send(MessageContext synCtx) {
+        if (getParentEndpoint() == null && !readyToSend()) {
+            // if the this leaf endpoint is too a root endpoint and is in 
inactive
+            informFailure(synCtx, SynapseConstants.ENDPOINT_ADDRESS_NONE_READY,
+                    "Currently , Default endpoint : " + getContext());
+        } else {
+            super.send(synCtx);
+        }
+    }
 }


Reply via email to