[esb-java-dev] svn commit r23920 - in branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse: endpoints util/datasource

indika at wso2.com indika at wso2.com
Fri Nov 14 02:55:34 PST 2008


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)) {



More information about the Esb-java-dev mailing list