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