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 na...@apache.org on 2006/11/17 15:22:13 UTC
svn commit: r476149 - in
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2:
context/MessageContext.java engine/AxisEngine.java util/CallbackReceiver.java
Author: nagy
Date: Fri Nov 17 06:22:12 2006
New Revision: 476149
URL: http://svn.apache.org/viewvc?view=rev&rev=476149
Log:
Ported r473071 (Fixed problem with a requester that utilized an async callback for req/rsp hanging if transmission of the request failed.)
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisEngine.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/CallbackReceiver.java
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java?view=diff&rev=476149&r1=476148&r2=476149
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java Fri Nov 17 06:22:12 2006
@@ -123,6 +123,14 @@
public static final String TRANSPORT_NON_BLOCKING = "transportNonBlocking";
/**
+ * This property allows someone (e.g. RM) to disable an async callback from
+ * being invoked if a fault occurs during message transmission. If this is
+ * not set, it can be assumed that the fault will be delivered via
+ * Callback.onError(...).
+ */
+ public static final String DISABLE_ASYNC_CALLBACK_ON_TRANSPORT_ERROR = "disableTransmissionErrorCallback";
+
+ /**
* Field processingFault
*/
private boolean processingFault;
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisEngine.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisEngine.java?view=diff&rev=476149&r1=476148&r2=476149
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisEngine.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisEngine.java Fri Nov 17 06:22:12 2006
@@ -617,7 +617,23 @@
try {
sender.invoke(msgctx);
} catch (Exception e) {
- log.info(e.getMessage());
+ log.info(e.getMessage());
+ if (msgctx.getProperty(MessageContext.DISABLE_ASYNC_CALLBACK_ON_TRANSPORT_ERROR) == null)
+ {
+ AxisOperation axisOperation = msgctx.getAxisOperation();
+ if (axisOperation != null)
+ {
+ MessageReceiver msgReceiver = axisOperation.getMessageReceiver();
+ if ((msgReceiver != null) && (msgReceiver instanceof CallbackReceiver))
+ {
+ Callback callback = ((CallbackReceiver)msgReceiver).lookupCallback(msgctx.getMessageID());
+ if (callback != null)
+ {
+ callback.onError(e);
+ }
+ }
+ }
+ }
}
}
}
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=476149&r1=476148&r2=476149
==============================================================================
--- 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 Fri Nov 17 06:22:12 2006
@@ -44,6 +44,11 @@
callbackStore.put(MsgID, callback);
}
+ public Callback lookupCallback(String msgID)
+ {
+ return (Callback)callbackStore.get(msgID);
+ }
+
public void receive(MessageContext messageCtx) throws AxisFault {
RelatesTo relatesTO = messageCtx.getOptions().getRelatesTo();
if(relatesTO == null){
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org