Author: indika
Date: Fri Nov 14 02:55:34 2008
New Revision: 23920
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=23920

Log:
fix for CARBON-181 



Modified:
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/EndpointView.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepositoryHelper.java

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java?rev=23920&r1=23919&r2=23920&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
   (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
   Fri Nov 14 02:55:34 2008
@@ -19,24 +19,24 @@
 
 package org.apache.synapse.endpoints;
 
+import org.apache.axis2.clustering.ClusterManager;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.FaultHandler;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.SynapseConstants;
-import org.apache.synapse.FaultHandler;
 import org.apache.synapse.SynapseException;
-import org.apache.synapse.transport.base.BaseConstants;
 import org.apache.synapse.core.axis2.Axis2MessageContext;
 import org.apache.synapse.statistics.impl.EndPointStatisticsStack;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.clustering.ClusterManager;
+import org.apache.synapse.transport.base.BaseConstants;
 
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
-import java.util.Stack;
+import java.lang.management.ManagementFactory;
 import java.util.List;
 import java.util.Set;
-import java.lang.management.ManagementFactory;
+import java.util.Stack;
 
 /**
  * An abstract base class for all Endpoint implementations
@@ -440,4 +440,14 @@
                     + "], [To : " + synMessageContext.getTo() + "]");
         }
     }
+
+    protected void informFailure(MessageContext synCtx, int errorCode, String 
errorMsg) {
+
+        if (synCtx.getProperty(SynapseConstants.LAST_ENDPOINT) == null) {
+            synCtx.setProperty(SynapseConstants.ERROR_CODE, errorCode);
+            synCtx.setProperty(SynapseConstants.ERROR_MESSAGE, errorMsg);
+            synCtx.setProperty(SynapseConstants.ERROR_DETAIL, errorMsg);
+        }
+        onFault(synCtx);
+    }
 }

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/EndpointView.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/EndpointView.java?rev=23920&r1=23919&r2=23920&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/EndpointView.java
       (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/EndpointView.java
       Fri Nov 14 02:55:34 2008
@@ -19,13 +19,13 @@
 
 package org.apache.synapse.endpoints;
 
-import org.apache.commons.logging.LogFactory;
 import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.transport.base.MessageLevelMetricsCollector;
 
-import java.util.Map;
-import java.util.HashMap;
 import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * This class is the metrics collector and JMX control point for Endpoints
@@ -84,7 +84,9 @@
     public void switchOn() throws Exception {
         if (endpoint.getChildren() != null) {
             for (Endpoint e : endpoint.getChildren()) {
-                e.getMetricsMBean().switchOn();
+                if (e.getMetricsMBean() != null) {
+                    e.getMetricsMBean().switchOn();
+                }
             }
         } else {
             if (endpoint.getContext() != null) {
@@ -95,12 +97,15 @@
 
     /**
      * Switch off a leaf endpoint, or all endpoints of a group - for 
maintenence
+     *
      * @throws Exception
      */
     public void switchOff() throws Exception {
         if (endpoint.getChildren() != null) {
             for (Endpoint e : endpoint.getChildren()) {
-                e.getMetricsMBean().switchOff();
+                if (e.getMetricsMBean() != null) {
+                    e.getMetricsMBean().switchOff();
+                }
             }
         } else {
             if (endpoint.getContext() != null) {

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java?rev=23920&r1=23919&r2=23920&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
   (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
   Fri Nov 14 02:55:34 2008
@@ -53,12 +53,18 @@
             isARetry = true;
         }
 
+        if (getChildren().isEmpty()) {
+            informFailure(synCtx, SynapseConstants.ENDPOINT_FO_NONE_READY,
+                    "FailoverLoadbalance endpoint : " + getName() + " - no 
child endpoints");
+            return;
+        }
+        
         if (currentEndpoint == null) {
             currentEndpoint = getChildren().get(0);
         }
 
         if (currentEndpoint.readyToSend()) {
-            if (isARetry) {
+            if (isARetry && metricsMBean != null) {
                 
metricsMBean.reportSendingFault(SynapseConstants.ENDPOINT_FO_FAIL_OVER);
             }
             synCtx.pushFaultHandler(this);
@@ -70,7 +76,7 @@
                 if (endpoint.readyToSend()) {
                     foundEndpoint = true;
                     currentEndpoint = endpoint;
-                    if (isARetry) {
+                    if (isARetry && metricsMBean != null) {
                         
metricsMBean.reportSendingFault(SynapseConstants.ENDPOINT_FO_FAIL_OVER);
                     }
                     synCtx.pushFaultHandler(this);
@@ -80,16 +86,8 @@
             }
 
             if (!foundEndpoint) {
-                // if this is not a retry
-                if (synCtx.getProperty(SynapseConstants.LAST_ENDPOINT) == 
null) {
-                    synCtx.setProperty(SynapseConstants.ERROR_CODE, 
SynapseConstants.ENDPOINT_FO_NONE_READY);
-                    synCtx.setProperty(SynapseConstants.ERROR_MESSAGE,
-                        "Failover endpoint : " + getName() + " - no ready 
child endpoints");
-                    synCtx.setProperty(SynapseConstants.ERROR_DETAIL,
-                        "Failover endpoint : " + getName() + " - no ready 
child endpoints");
-                    synCtx.setProperty(SynapseConstants.ERROR_EXCEPTION, null);
-                }
-                super.onFault(synCtx);
+                informFailure(synCtx, SynapseConstants.ENDPOINT_FO_NONE_READY, 
"Failover endpoint : " + getName()
+                        + " - no ready child endpoints");
             }
         }
     }

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java?rev=23920&r1=23919&r2=23920&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
        (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
        Fri Nov 14 02:55:34 2008
@@ -70,23 +70,18 @@
                     synCtx.getEnvelope().build();
                 }
             } else {
-                // this is a retry, where we are now failing over to an active 
node
-                
metricsMBean.reportSendingFault(SynapseConstants.ENDPOINT_LB_FAIL_OVER);
+                if (metricsMBean != null) {
+                    // this is a retry, where we are now failing over to an 
active node
+                    
metricsMBean.reportSendingFault(SynapseConstants.ENDPOINT_LB_FAIL_OVER);
+                }
             }
             synCtx.pushFaultHandler(this);
             endpoint.send(synCtx);
 
         } else {
             // if this is not a retry
-            if (synCtx.getProperty(SynapseConstants.LAST_ENDPOINT) == null) {
-                synCtx.setProperty(SynapseConstants.ERROR_CODE, 
SynapseConstants.ENDPOINT_LB_NONE_READY);
-                synCtx.setProperty(SynapseConstants.ERROR_MESSAGE,
-                    "Loadbalance endpoint : " + getName() + " - no ready child 
endpoints");
-                synCtx.setProperty(SynapseConstants.ERROR_DETAIL,
-                    "Loadbalance endpoint : " + getName() + " - no ready child 
endpoints");
-                synCtx.setProperty(SynapseConstants.ERROR_EXCEPTION, null);
-            }
-            super.onFault(synCtx);
+            informFailure(synCtx, SynapseConstants.ENDPOINT_LB_NONE_READY, 
"Loadbalance endpoint : " +
+                    getName() + " - no ready child endpoints");
         }
     }
 

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java?rev=23920&r1=23919&r2=23920&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
      (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
      Fri Nov 14 02:55:34 2008
@@ -277,17 +277,6 @@
         }
     }
 
-    private void informFailure(MessageContext synCtx, int errorCode, String 
errorMsg) {
-
-        if (synCtx.getProperty(SynapseConstants.LAST_ENDPOINT) == null) {
-            synCtx.setProperty(SynapseConstants.ERROR_CODE, errorCode);
-            synCtx.setProperty(SynapseConstants.ERROR_MESSAGE, errorMsg);
-            synCtx.setProperty(SynapseConstants.ERROR_DETAIL, errorMsg);
-            synCtx.setProperty(SynapseConstants.ERROR_EXCEPTION, null);
-        }
-        super.onFault(synCtx);
-    }
-
     /*
     * Preparing the endpoint sequence for a new session establishment request
     */

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepositoryHelper.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepositoryHelper.java?rev=23920&r1=23919&r2=23920&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepositoryHelper.java
        (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepositoryHelper.java
        Fri Nov 14 02:55:34 2008
@@ -36,6 +36,7 @@
     private static final Log log = 
LogFactory.getLog(DataSourceInformationRepositoryHelper.class);
 
     public static void 
initializeDataSourceInformationRepository(AxisConfiguration axisConfiguration, 
Properties properties) {
+        
         initializeDataSourceInformationRepository(axisConfiguration, 
properties, DataSourceManager.getInstance());
     }
 
@@ -43,7 +44,8 @@
 
         DataSourceInformationRepository repository =
                 
DataSourceInformationRepositoryFactory.createDataSourceInformationRepository(properties,
 listener);
-        Parameter parameter = new 
Parameter(DataSourceConfigurationConstants.DATASOURCE_INFORMATION_REPOSITORY, 
repository);
+        Parameter parameter = new Parameter(
+                
DataSourceConfigurationConstants.DATASOURCE_INFORMATION_REPOSITORY, repository);
         try {
             axisConfiguration.addParameter(parameter);
         } catch (AxisFault axisFault) {
@@ -54,7 +56,8 @@
 
     public static DataSourceInformationRepository 
getDataSourceInformationRepository(AxisConfiguration axisConfiguration) {
 
-        Parameter parameter = 
axisConfiguration.getParameter(DataSourceConfigurationConstants.DATASOURCE_INFORMATION_REPOSITORY);
+        Parameter parameter = axisConfiguration.getParameter(
+                
DataSourceConfigurationConstants.DATASOURCE_INFORMATION_REPOSITORY);
         if (parameter != null) {
             Object result = parameter.getValue();
             if (!(result instanceof DataSourceInformationRepository)) {

_______________________________________________
Esb-java-dev mailing list
[email protected]
http://mailman.wso2.org/cgi-bin/mailman/listinfo/esb-java-dev

Reply via email to