Author: chathura_ce
Date: Wed Mar  7 05:29:01 2007
New Revision: 515559

URL: http://svn.apache.org/viewvc?view=rev&rev=515559
Log:
Fixed some issues in the failover endpoints.

Modified:
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/AddressEndpoint.java

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java?view=diff&rev=515559&r1=515558&r2=515559
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java
 Wed Mar  7 05:29:01 2007
@@ -29,9 +29,9 @@
 
     public void handleFault(MessageContext synCtx) {
         try {
-            handleFault(synCtx);
+            onFault(synCtx);
         } catch (SynapseException syne) {
-            ((FaultHandler)synCtx.getFaultStack().pop()).onFault(synCtx);
+            ((FaultHandler)synCtx.getFaultStack().pop()).handleFault(synCtx);
         }
     }
 

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java?view=diff&rev=515559&r1=515558&r2=515559
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java
 Wed Mar  7 05:29:01 2007
@@ -59,7 +59,7 @@
             }
 
             // set endpoints
-            ArrayList endpoints = getEndpoints(failoverElement);
+            ArrayList endpoints = getEndpoints(failoverElement, 
failoverEndpoint);
             failoverEndpoint.setEndpoints(endpoints);
 
             return failoverEndpoint;
@@ -77,7 +77,7 @@
         return null;
     }
 
-    private ArrayList getEndpoints(OMElement failoverElement) {
+    private ArrayList getEndpoints(OMElement failoverElement, Endpoint parent) 
{
 
         ArrayList endpoints = new ArrayList();
         Iterator iter = failoverElement.getChildrenWithName
@@ -88,6 +88,7 @@
 
             EndpointFactory epFac = 
EndpointAbstractFactory.getEndpointFactroy(endptElem);
             Endpoint endpoint = epFac.createEndpoint(endptElem, true);
+            endpoint.setParentEndpoint(parent);
             endpoints.add(endpoint);
         }
 

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java?view=diff&rev=515559&r1=515558&r2=515559
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java
 Wed Mar  7 05:29:01 2007
@@ -69,7 +69,7 @@
             }
 
             // set endpoints
-            ArrayList endpoints = getEndpoints(loadbalanceElement);
+            ArrayList endpoints = getEndpoints(loadbalanceElement, 
loadbalanceEndpoint);
             loadbalanceEndpoint.setEndpoints(endpoints);
 
             // set load balance algorithm
@@ -120,7 +120,7 @@
         return null;
     }
 
-    private ArrayList getEndpoints(OMElement loadbalanceElement) {
+    private ArrayList getEndpoints(OMElement loadbalanceElement, Endpoint 
parent) {
 
         ArrayList endpoints = new ArrayList();
         Iterator iter = loadbalanceElement.getChildrenWithName
@@ -131,6 +131,7 @@
 
             EndpointFactory epFac = 
EndpointAbstractFactory.getEndpointFactroy(endptElem);
             Endpoint endpoint = epFac.createEndpoint(endptElem, true);
+            endpoint.setParentEndpoint(parent);
             endpoints.add(endpoint);
         }
 

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java?view=diff&rev=515559&r1=515558&r2=515559
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
 Wed Mar  7 05:29:01 2007
@@ -26,6 +26,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.Constants;
+import org.apache.synapse.FaultHandler;
 
 import java.util.Map;
 import java.util.HashMap;
@@ -77,10 +78,9 @@
     private void handleMessage(MessageContext response,
         org.apache.synapse.MessageContext synapseOutMsgCtx) {
 
-        if (response.getEnvelope().getBody().hasFault()) {
-            // synapseOutMsgCtx.getFaultStack().pop(); and handle the
-            // response.getEnvelope().getBody().getFault().getException()
-            // TODO chathura
+        if (response.getEnvelope().getBody().hasFault()) {            
+            Object o = synapseOutMsgCtx.getFaultStack().pop();
+            ((FaultHandler) o).handleFault(synapseOutMsgCtx);
 
         } else {
 

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/AddressEndpoint.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/AddressEndpoint.java?view=diff&rev=515559&r1=515558&r2=515559
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/AddressEndpoint.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/AddressEndpoint.java
 Wed Mar  7 05:29:01 2007
@@ -65,7 +65,7 @@
 
     public void setActive(boolean active) {
         this.active = active;
-    }    
+    }
 
     public void send(MessageContext synCtx) {
 
@@ -97,7 +97,7 @@
                 EndPointStatisticsStack endPointStatisticsStack = new 
EndPointStatisticsStack();
                 boolean isFault =synCtx.getEnvelope().getBody().hasFault();
                 endPointStatisticsStack.put(endPointName, 
System.currentTimeMillis(), !synCtx.isResponse(), statisticsEnable,isFault);
-                
synCtx.setProperty(org.apache.synapse.Constants.ENDPOINT_STATISTICS_STACK, 
endPointStatisticsStack);                
+                
synCtx.setProperty(org.apache.synapse.Constants.ENDPOINT_STATISTICS_STACK, 
endPointStatisticsStack);
             }
             synCtx.setTo(new EndpointReference(eprAddress));
 
@@ -135,7 +135,7 @@
             if (endpoint.isAddressingOn()) {
                 synCtx.setProperty(Constants.OUTFLOW_ADDRESSING_ON, 
Boolean.TRUE);
             }
-            
+
             synCtx.pushFault(this);
             synCtx.getEnvironment().send(endpoint, synCtx);
         }
@@ -153,6 +153,11 @@
         // perform retries here
 
         // if this endpoint has actually failed, inform the parent.
-        parentEndpoint.onChildEndpointFail(this, synCtx);       
+        if (parentEndpoint != null) {
+            parentEndpoint.onChildEndpointFail(this, synCtx);
+        } else {
+            Object o = synCtx.getFaultStack().pop();
+            ((FaultHandler) o).handleFault(synCtx);
+        }
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to