You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by in...@apache.org on 2008/11/14 11:56:17 UTC
svn commit: r713974 - in
/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints:
AbstractEndpoint.java EndpointView.java FailoverEndpoint.java
LoadbalanceEndpoint.java SALoadbalanceEndpoint.java
Author: indika
Date: Fri Nov 14 02:56:17 2008
New Revision: 713974
URL: http://svn.apache.org/viewvc?rev=713974&view=rev
Log:
Fix an issue when there is no name for endpoint and try to access Mean instance which is null as Mean instance is created only when there is a name for an endpoint , so here it is null as name is null
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/EndpointView.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java?rev=713974&r1=713973&r2=713974&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java Fri Nov 14 02:56:17 2008
@@ -415,4 +415,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: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/EndpointView.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/EndpointView.java?rev=713974&r1=713973&r2=713974&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/EndpointView.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/EndpointView.java Fri Nov 14 02:56:17 2008
@@ -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: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java?rev=713974&r1=713973&r2=713974&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java Fri Nov 14 02:56:17 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: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java?rev=713974&r1=713973&r2=713974&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java Fri Nov 14 02:56:17 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: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java?rev=713974&r1=713973&r2=713974&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java Fri Nov 14 02:56:17 2008
@@ -275,17 +275,7 @@
synCtx.pushFaultHandler(this);
endpoint.send(synCtx);
}
- }
-
- 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);
- }
- super.onFault(synCtx);
- }
+ }
/*
* Preparing the endpoint sequence for a new session establishment request