Author: heshan
Date: Tue Jul 19 11:27:17 2011
New Revision: 1148275

URL: http://svn.apache.org/viewvc?rev=1148275&view=rev
Log:
Fixing an issue where, if a timeout action is not set, it will cause some 
issues at server restart. A sample configuration to reproduce the issue can be 
found below. This patch fixes this issue. 

eg. 
<endpoint xmlns="http://ws.apache.org/ns/synapse"; name="FindService">
        <address uri="http://localhost:9443/services/search/FindingService/v1"; 
format="rest">
            <timeout>
                <duration>60000</duration>
            </timeout>
            <suspendOnFailure>
                <errorCodes>101509,101503,101507,101508</errorCodes>
                <initialDuration>1000</initialDuration>
                <progressionFactor>2.0</progressionFactor>
                <maximumDuration>64000</maximumDuration>
            </suspendOnFailure>
            <markForSuspension>
                <retriesBeforeSuspension>10</retriesBeforeSuspension>
                <retryDelay>2</retryDelay>
            </markForSuspension>
        </address>
    </endpoint> 

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionFactory.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionSerializer.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionFactory.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionFactory.java?rev=1148275&r1=1148274&r2=1148275&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionFactory.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionFactory.java
 Tue Jul 19 11:27:17 2011
@@ -179,6 +179,14 @@ public class EndpointDefinitionFactory i
                     if (definition.getTimeoutDuration() == 0) {
                         definition.setTimeoutDuration(30000);
                     }
+                } else if ("".equalsIgnoreCase(actionString.trim())) {
+                    // if the timeout action is empty, then the action is set 
to DISCARD_AND_FAULT
+                    
definition.setTimeoutAction(SynapseConstants.DISCARD_AND_FAULT);
+
+                    // set timeout duration to 30 seconds, if it is not set 
explicitly
+                    if (definition.getTimeoutDuration() == 0) {
+                        definition.setTimeoutDuration(30000);
+                    }
                 } else {
                     handleException("Invalid timeout action, action : "
                             + actionString + " is not supported");

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionSerializer.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionSerializer.java?rev=1148275&r1=1148274&r2=1148275&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionSerializer.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionSerializer.java
 Tue Jul 19 11:27:17 2011
@@ -121,11 +121,12 @@ public class EndpointDefinitionSerialize
             OMElement action = fac.createOMElement("responseAction", 
SynapseConstants.SYNAPSE_OMNAMESPACE);
             if (endpointDefinition.getTimeoutAction() == 
SynapseConstants.DISCARD) {
                 action.setText("discard");
+                timeout.addChild(action);
             } else if (endpointDefinition.getTimeoutAction()
                     == SynapseConstants.DISCARD_AND_FAULT) {
                 action.setText("fault");
+                timeout.addChild(action);
             }
-            timeout.addChild(action);
         }
 
         if (endpointDefinition.getInitialSuspendDuration() != -1 ||


Reply via email to