You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2007/03/16 02:33:31 UTC

svn commit: r518825 - /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/CallbackReceiver.java

Author: dims
Date: Thu Mar 15 18:33:31 2007
New Revision: 518825

URL: http://svn.apache.org/viewvc?view=rev&rev=518825
Log:
Fix for AXIS2-2328 - Out of memory error in Callback receiver

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/CallbackReceiver.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/CallbackReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/CallbackReceiver.java?view=diff&rev=518825&r1=518824&r2=518825
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/CallbackReceiver.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/CallbackReceiver.java Thu Mar 15 18:33:31 2007
@@ -54,28 +54,28 @@
             throw new AxisFault("Cannot identify correct Callback object. RelatesTo is null");
         }
         String messageID = relatesTO.getValue();
-        Callback callback = (Callback) callbackStore.get(messageID);
+        Callback callback = (Callback) callbackStore.remove(messageID);
         AsyncResult result = new AsyncResult(messageCtx);
 
-        if (callback != null) {
-            try {
-                // check weather the result is a fault.
-                SOAPEnvelope envelope = result.getResponseEnvelope();
-                SOAPFault fault = envelope.getBody().getFault();
+        if (callback == null) {
+            throw new AxisFault("The Callback realtes to MessageID " + messageID + " is not found");
+        }
+        
+        try {
+            // check weather the result is a fault.
+            SOAPEnvelope envelope = result.getResponseEnvelope();
+            SOAPFault fault = envelope.getBody().getFault();
 
-                if (fault == null) {
-                    // if there is not fault call the onComplete method
-                    callback.onComplete(result);
-                } else {
-                    // else call the on error method with the fault
-                    AxisFault axisFault = Utils.getInboundFaultFromMessageContext(messageCtx);
-                    callback.onError(axisFault);
-                }
-            } finally {
-                callback.setComplete(true);
+            if (fault == null) {
+                // if there is not fault call the onComplete method
+                callback.onComplete(result);
+            } else {
+                // else call the on error method with the fault
+                AxisFault axisFault = Utils.getInboundFaultFromMessageContext(messageCtx);
+                callback.onError(axisFault);
             }
-        } else {
-            throw new AxisFault("The Callback realtes to MessageID " + messageID + " is not found");
+        } finally {
+            callback.setComplete(true);
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org