Author: mriou
Date: Tue Feb 27 08:25:04 2007
New Revision: 512305
URL: http://svn.apache.org/viewvc?view=rev&rev=512305
Log:
The mex pattern is only computed on engine invocation.
Modified:
incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeService.java
Modified:
incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeService.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeService.java?view=diff&rev=512305&r1=512304&r2=512305
==============================================================================
--- incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeService.java
(original)
+++ incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeService.java
Tue Feb 27 08:25:04 2007
@@ -112,6 +112,7 @@
if (jbiMex.getStatus() != ExchangeStatus.ACTIVE) {
// We can forget about the exchange.
+ __log.debug("Consuming MEX tracker " + jbiMex.getExchangeId());
_jbiMexTracker.consume(jbiMex.getExchangeId());
return;
}
@@ -165,6 +166,7 @@
* message exchenge
*/
public void onResponse(MyRoleMessageExchange mex) {
+ __log.debug("Consuming MEX tracker " + mex.getClientId());
javax.jbi.messaging.MessageExchange jbiMex =
_jbiMexTracker.consume(mex.getClientId());
if (jbiMex == null) {
__log.warn("Ignoring unknown async reply: " + mex);
@@ -211,8 +213,8 @@
}
odeMex =
_ode._server.getEngine().createMessageExchange(jbiMex.getExchangeId(),
_endpoint.serviceName,
jbiMex.getOperation().getLocalPart());
- MessageExchangePattern pattern =
odeMex.getMessageExchangePattern();
+ MessageExchangePattern pattern = null;
if (odeMex.getOperation() != null) {
copyMexProperties(odeMex, jbiMex);
javax.wsdl.Message msgdef =
odeMex.getOperation().getInput().getMessage();
@@ -229,6 +231,8 @@
mapper.toODE(odeRequest, request, msgdef);
odeMex.invoke(odeRequest);
+ pattern = odeMex.getMessageExchangePattern();
+
// Handle the response if it is immediately available.
if (odeMex.getStatus() != Status.ASYNC) {
__log.debug("ODE MEX " + odeMex + " completed
SYNCHRONOUSLY.");
@@ -244,10 +248,12 @@
success = true;
// For one-way invocation we do not need to maintain the
association
- if (pattern != MessageExchangePattern.REQUEST_RESPONSE)
+ if (pattern == null || pattern !=
MessageExchangePattern.REQUEST_RESPONSE) {
+ __log.debug("Consuming non Req/Res MEX tracker " +
jbiMex.getExchangeId());
_jbiMexTracker.consume(jbiMex.getExchangeId());
+ }
- } finally {
+ } finally {
if (success) {
__log.debug("Commiting ODE MEX " + odeMex);
_ode.getTransactionManager().commit();