Author: hiranya
Date: Wed May 19 07:09:24 2010
New Revision: 946058

URL: http://svn.apache.org/viewvc?rev=946058&view=rev
Log:
Fixing SYNAPSE-652

Fixed possible NPE at Axis2MessageContext#getEndpoint() and updated the test 
cases to cover the respective scenario


Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
    
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/DynamicResourceTest.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java?rev=946058&r1=946057&r2=946058&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
 Wed May 19 07:09:24 2010
@@ -152,12 +152,16 @@ public class Axis2MessageContext impleme
             return (Endpoint) o;
         } else {
             Endpoint e = getConfiguration().getEndpoint(key);
-            synchronized (e) {
+            if (e != null) {
                 if (!e.isInitialized()) {
-                    e.init(synEnv);
+                    synchronized (e) {
+                        if (!e.isInitialized()) {
+                            e.init(synEnv);
+                        }
+                    }
                 }
+                localEntries.put(key, e);
             }
-            localEntries.put(key, e);
             return e;
         }
     }

Modified: 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/DynamicResourceTest.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/DynamicResourceTest.java?rev=946058&r1=946057&r2=946058&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/DynamicResourceTest.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/DynamicResourceTest.java
 Wed May 19 07:09:24 2010
@@ -125,6 +125,12 @@ public class DynamicResourceTest extends
         assertTrue(seq1 != seq4);
         assertTrue(!((SequenceMediator) seq1).isInitialized());
 
+        // Phase 5
+        System.out.println("Testing for non-existing sequences...");
+        synCtx = TestUtils.createSynapseMessageContext("<empty/>", config);
+        Mediator seq5 = synCtx.getSequence("non-existing-sequence");
+        assertNull(seq5);
+
         System.out.println("Dynamic sequence lookup tests were successful...");
     }
 
@@ -172,6 +178,12 @@ public class DynamicResourceTest extends
         assertTrue(ep1 != ep4);
         assertTrue(!ep1.isInitialized());
 
+        // Phase 5
+        System.out.println("Testing for non-existing endpoints...");
+        synCtx = TestUtils.createSynapseMessageContext("<empty/>", config);
+        Endpoint ep5 = synCtx.getEndpoint("non-existing-endpoint");
+        assertNull(ep5);
+
         System.out.println("Dynamic endpoint lookup tests were successful...");
     }
 }


Reply via email to