You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mi...@apache.org on 2009/04/15 03:26:39 UTC

svn commit: r765029 - in /ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2: SoapExternalService.java httpbinding/HttpExternalService.java

Author: midon
Date: Wed Apr 15 01:26:39 2009
New Revision: 765029

URL: http://svn.apache.org/viewvc?rev=765029&view=rev
Log:
ODE-577: no need to execute transactions in a separate thread

Modified:
    ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java
    ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java

Modified: ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java?rev=765029&r1=765028&r2=765029&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java (original)
+++ ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java Wed Apr 15 01:26:39 2009
@@ -208,19 +208,20 @@
                                         __log.debug("Service response:\n" + response.getEnvelope().toString());
 
                                     if (flt != null) {
-                                        reply(mexId, operation, flt, true, mctx);
+                                        reply(mexId, operation, flt, true);
                                     } else {
-                                        reply(mexId, operation, response, response.isFault(), mctx);
+                                        reply(mexId, operation, response, response.isFault());
                                     }
                                 } catch (Throwable t) {
+                                    String errmsg = "Error sending message (mex=" + odeMex + "): " + t.getMessage();
+                                    __log.error(errmsg, t);
+                                    replyWithFailure(mexId, MessageExchange.FailureType.COMMUNICATION_ERROR, errmsg);
+                                } finally {
                                     // release the HTTP connection, we don't need it anymore
                                     TransportOutDescription out = mctx.getTransportOut();
                                     if (out != null && out.getSender() != null) {
                                         out.getSender().cleanup(mctx);
                                     }
-                                    String errmsg = "Error sending message (mex=" + odeMex + "): " + t.getMessage();
-                                    __log.error(errmsg, t);
-                                    replyWithFailure(mexId, MessageExchange.FailureType.COMMUNICATION_ERROR, errmsg);
                                 }
                                 return null;
                             }
@@ -445,7 +446,7 @@
     private void replyWithFailure(final String odeMexId, final FailureType error, final String errmsg) {
         // ODE MEX needs to be invoked in a TX.
         try {
-            _sched.execIsolatedTransaction(new Callable<Void>() {
+            _sched.execTransaction(new Callable<Void>() {
                 public Void call() throws Exception {
                     PartnerRoleMessageExchange odeMex = (PartnerRoleMessageExchange) _server.getEngine().getMessageExchange(odeMexId);
                     odeMex.replyWithFailure(error, errmsg, null);
@@ -456,15 +457,13 @@
         } catch (Exception e) {
             String emsg = "Error executing replyWithFailure transaction; reply will be lost.";
             __log.error(emsg, e);
-
         }
-
     }
 
-    private void reply(final String odeMexId, final Operation operation, final MessageContext reply, final boolean isFault, final MessageContext outMsgContext) {
+    private void reply(final String odeMexId, final Operation operation, final MessageContext reply, final boolean isFault) {
         // ODE MEX needs to be invoked in a TX.
         try {
-            _sched.execIsolatedTransaction(new Callable<Void>() {
+            _sched.execTransaction(new Callable<Void>() {
                 public Void call() throws Exception {
                     PartnerRoleMessageExchange odeMex = (PartnerRoleMessageExchange) _server.getEngine().getMessageExchange(odeMexId);
                     // Setting the response
@@ -506,12 +505,6 @@
                         String errmsg = "Unable to process response: " + ex.getMessage();
                         __log.error(errmsg, ex);
                         odeMex.replyWithFailure(FailureType.OTHER, errmsg, null);
-                    } finally {
-                         // make sure the HTTP connection is released to the pool!
-                        TransportOutDescription out = outMsgContext.getTransportOut();
-                        if (out != null && out.getSender() != null) {
-                            out.getSender().cleanup(outMsgContext);
-                        }
                     }
                     return null;
                 }
@@ -521,7 +514,6 @@
             String errmsg = "Error executing reply transaction; reply will be lost.";
             __log.error(errmsg, e);
         }
-
     }
 
 

Modified: ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java?rev=765029&r1=765028&r2=765029&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java (original)
+++ ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java Wed Apr 15 01:26:39 2009
@@ -253,7 +253,7 @@
             } catch (final IOException e) {
                 // ODE MEX needs to be invoked in a TX.
                 try {
-                    scheduler.execIsolatedTransaction(new Callable<Void>() {
+                    scheduler.execTransaction(new Callable<Void>() {
                         public Void call() throws Exception {
                             PartnerRoleMessageExchange odeMex = (PartnerRoleMessageExchange) server.getEngine().getMessageExchange(mexId);
                             String errmsg = "Unable to execute http request : " + e.getMessage();
@@ -297,7 +297,7 @@
         public void processResponse(final int statusCode) {
             // ODE MEX needs to be invoked in a TX.
             try {
-                scheduler.execIsolatedTransaction(new Callable<Void>() {
+                scheduler.execTransaction(new Callable<Void>() {
                     public Void call() throws Exception {
                         try {
                             if (statusCode >= 200 && statusCode < 300) {