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 2008/07/14 20:43:00 UTC
svn commit: r676685 -
/ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java
Author: midon
Date: Mon Jul 14 11:43:00 2008
New Revision: 676685
URL: http://svn.apache.org/viewvc?rev=676685&view=rev
Log:
fix transaction issues due to branch/trunk mismatch
Modified:
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/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=676685&r1=676684&r2=676685&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 Mon Jul 14 11:43:00 2008
@@ -226,10 +226,21 @@
if (log.isDebugEnabled()) log.debug("Received response for MEX " + mexId);
processResponse(statusCode);
} catch (final IOException e) {
- PartnerRoleMessageExchange odeMex = (PartnerRoleMessageExchange) server.getEngine().getMessageExchange(mexId);
- String errmsg = "Unable to execute HTTP request : " + e.getMessage();
- log.error(errmsg, e);
- odeMex.replyWithFailure(MessageExchange.FailureType.COMMUNICATION_ERROR, errmsg, null);
+ // ODE MEX needs to be invoked in a TX.
+ try {
+ scheduler.execIsolatedTransaction(new Callable<Void>() {
+ public Void call() throws Exception {
+ PartnerRoleMessageExchange odeMex = (PartnerRoleMessageExchange) server.getEngine().getMessageExchange(mexId);
+ String errmsg = "Unable to execute http request : " + e.getMessage();
+ log.error(errmsg, e);
+ odeMex.replyWithFailure(MessageExchange.FailureType.COMMUNICATION_ERROR, errmsg, null);
+ return null;
+ }
+ });
+ } catch (Exception e1) {
+ String errmsg = "Error executing reply transaction; reply will be lost.";
+ log.error(errmsg, e);
+ }
} finally {
method.releaseConnection();
}
@@ -246,7 +257,7 @@
if (log.isDebugEnabled())
log.debug("OneWay HTTP Request, Status-Line: " + method.getStatusLine() + " for " + method.getURI());
}
- } catch (URIException e) {
+ } catch (Exception e) {
String errmsg = "Exception occured while processing the HTTP response of a one-way request: " + e.getMessage();
log.error(errmsg, e);
}
@@ -259,31 +270,34 @@
}
public void processResponse(final int statusCode) {
+ // ODE MEX needs to be invoked in a TX.
try {
- // ODE MEX needs to be invoked in a TX.
scheduler.execIsolatedTransaction(new Callable<Void>() {
public Void call() throws Exception {
-
- if (statusCode >= 200 && statusCode < 300) {
- _2xx_success();
- } else if (statusCode >= 300 && statusCode < 400) {
- _3xx_redirection();
- } else if (statusCode >= 400 && statusCode < 500) {
- _4xx_badRequest();
- } else if (statusCode >= 500 && statusCode < 600) {
- _5xx_serverError();
- } else {
- unmanagedStatus();
+ try {
+ if (statusCode >= 200 && statusCode < 300) {
+ _2xx_success();
+ } else if (statusCode >= 300 && statusCode < 400) {
+ _3xx_redirection();
+ } else if (statusCode >= 400 && statusCode < 500) {
+ _4xx_badRequest();
+ } else if (statusCode >= 500 && statusCode < 600) {
+ _5xx_serverError();
+ } else {
+ unmanagedStatus();
+ }
+ } catch (Exception e) {
+ String errmsg = "Exception occured while processing the HTTP response of a two-way request: " + e.getMessage();
+ log.error(errmsg, e);
+ PartnerRoleMessageExchange odeMex = (PartnerRoleMessageExchange) server.getEngine().getMessageExchange(mexId);
+ odeMex.replyWithFailure(MessageExchange.FailureType.FORMAT_ERROR, errmsg, null);
}
-
return null;
}
});
- } catch (Exception e) {
- String errmsg = "Exception occured while processing the HTTP response of a two-way request: " + e.getMessage();
- log.error(errmsg, e);
- PartnerRoleMessageExchange odeMex = (PartnerRoleMessageExchange) server.getEngine().getMessageExchange(mexId);
- odeMex.replyWithFailure(MessageExchange.FailureType.FORMAT_ERROR, errmsg, null);
+ } catch (Exception transactionException) {
+ String errmsg = "Error executing reply transaction; reply will be lost.";
+ log.error(errmsg, transactionException);
}
}