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);
+ }
+ }
}