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 am...@apache.org on 2008/03/18 16:08:21 UTC

svn commit: r638401 - in /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail: SimpleMailListener.java SynchronousMailListener.java

Author: amilas
Date: Tue Mar 18 08:08:20 2008
New Revision: 638401

URL: http://svn.apache.org/viewvc?rev=638401&view=rev
Log:
sychronized the tables to avoid concurrency issues

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java?rev=638401&r1=638400&r2=638401&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java Tue Mar 18 08:08:20 2008
@@ -391,30 +391,34 @@
                                                     String messageID) throws AxisFault{
         Hashtable mappingTable = (Hashtable) configurationContext.
                 getProperty(org.apache.axis2.transport.mail.Constants.MAPPING_TABLE);
-
-        if(mappingTable!=null&&messageID!=null){
-            String messageConetextId= (String) mappingTable.get(messageID);
-            if(messageConetextId!=null){
-                OperationContext opContext = configurationContext.getOperationContext(messageConetextId);
-                if(opContext!=null && !opContext.isComplete()){
-                    AxisOperation axisOp = opContext.getAxisOperation();
-                    //TODO need to handle fault case as well ,
-                    //TODO  need to check whether the message contains fault , if so we need to get the fault message
-                    AxisMessage inMessage = axisOp.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
-                    msgContext.setOperationContext(opContext);
-                    msgContext.setAxisMessage(inMessage);
-                    opContext.addMessageContext(msgContext);
-                    msgContext.setServiceContext(opContext.getServiceContext());
+        synchronized (mappingTable) {
+            if (mappingTable != null && messageID != null) {
+                String messageConetextId = (String) mappingTable.get(messageID);
+                if (messageConetextId != null) {
+                    OperationContext opContext = configurationContext.getOperationContext(messageConetextId);
+                    if (opContext != null && !opContext.isComplete()) {
+                        AxisOperation axisOp = opContext.getAxisOperation();
+                        //TODO need to handle fault case as well ,
+                        //TODO  need to check whether the message contains fault , if so we need to get the fault message
+                        AxisMessage inMessage = axisOp.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+                        msgContext.setOperationContext(opContext);
+                        msgContext.setAxisMessage(inMessage);
+                        opContext.addMessageContext(msgContext);
+                        msgContext.setServiceContext(opContext.getServiceContext());
+                    }
                 }
             }
         }
-        Hashtable callBackTable = (Hashtable) configurationContext.getProperty(
-                org.apache.axis2.transport.mail.Constants.CALLBACK_TABLE);
-        if(messageID!=null&&callBackTable!=null){
-            SynchronousMailListener listener = (SynchronousMailListener) callBackTable.get(messageID);
-            if(listener!=null){
-                listener.setInMessageContext(msgContext);
-                return false;
+
+        Hashtable callBackTable =
+                (Hashtable) configurationContext.getProperty(org.apache.axis2.transport.mail.Constants.CALLBACK_TABLE);
+        synchronized (callBackTable) {
+            if (messageID != null && callBackTable != null) {
+                SynchronousMailListener listener = (SynchronousMailListener) callBackTable.get(messageID);
+                if (listener != null) {
+                    listener.setInMessageContext(msgContext);
+                    return false;
+                }
             }
         }
         return true;

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java?rev=638401&r1=638400&r2=638401&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java Tue Mar 18 08:08:20 2008
@@ -90,7 +90,7 @@
                     inMessageContext.getProperty(org.apache.axis2.transport.mail.Constants.CONTENT_TYPE));
             msgCtx.setIncomingTransportName(org.apache.axis2.Constants.TRANSPORT_MAIL);
             msgCtx.setEnvelope(inMessageContext.getEnvelope());
-            if(!operationContext.isComplete()){
+            if (!operationContext.isComplete()) {
                 operationContext.addMessageContext(msgCtx);
             }
         }



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