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
