You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by de...@apache.org on 2007/07/12 12:29:29 UTC

svn commit: r555566 - /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java

Author: deepal
Date: Thu Jul 12 03:29:27 2007
New Revision: 555566

URL: http://svn.apache.org/viewvc?view=rev&rev=555566
Log:
fixing AXIS2-2938
 - I think we need to remove CallBack object , it is very difficult to maintains two interfaces  

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java?view=diff&rev=555566&r1=555565&r2=555566
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java Thu Jul 12 03:29:27 2007
@@ -211,7 +211,7 @@
                 completed = true;
             } else {
                 sc.getConfigurationContext().getThreadPool().execute(
-                        new NonBlockingInvocationWorker(callback, mc));
+                        new NonBlockingInvocationWorker(callback, mc, axisCallback));
             }
         }
     }
@@ -388,11 +388,14 @@
         private Callback callback;
 
         private MessageContext msgctx;
+        private AxisCallback axisCallback;
 
         public NonBlockingInvocationWorker(Callback callback,
-                                           MessageContext msgctx) {
+                                           MessageContext msgctx ,
+                                           AxisCallback axisCallback) {
             this.callback = callback;
             this.msgctx = msgctx;
+            this.axisCallback =axisCallback;
         }
 
         public void run() {
@@ -407,17 +410,34 @@
                         // If a fault was found, create an AxisFault with a MessageContext so that
                         // other programming models can deserialize the fault to an alternative form.
                         AxisFault fault = new AxisFault(body.getFault(), response);
-                        callback.onError(fault);
+                        if (callback != null) {
+                            callback.onError(fault);
+                        } else {
+                            axisCallback.onError(fault);
+                        }
+
                     } else {
-                        AsyncResult asyncResult = new AsyncResult(response);
-                        callback.onComplete(asyncResult);
+                        if (callback != null) {
+                            AsyncResult asyncResult = new AsyncResult(response);
+                            callback.onComplete(asyncResult);
+                        } else {
+                            axisCallback.onMessage(response);
+                        }
+
                     }
                 }
 
             } catch (Exception e) {
-                callback.onError(e);
+                if (callback != null) {
+                    callback.onError(e);
+                } else {
+                    axisCallback.onError(e);
+                }
+
             } finally {
-                callback.setComplete(true);
+                if (callback != null) {
+                    callback.setComplete(true);
+                }
             }
         }
     }



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