You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by bo...@apache.org on 2007/03/28 16:43:41 UTC
svn commit: r523347 -
/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java
Author: boisvert
Date: Wed Mar 28 07:43:37 2007
New Revision: 523347
URL: http://svn.apache.org/viewvc?view=rev&rev=523347
Log:
Reload message exchange in new tranction to allow persistence layer to track changes
Modified:
incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java
Modified: incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java?view=diff&rev=523347&r1=523346&r2=523347
==============================================================================
--- incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java (original)
+++ incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java Wed Mar 28 07:43:37 2007
@@ -210,8 +210,8 @@
}
private void outResponse(final InOut jbiMex) {
- final PartnerRoleMessageExchange pmex = _outstandingExchanges.remove(jbiMex.getExchangeId());
- if (pmex == null) {
+ final PartnerRoleMessageExchange outstanding = _outstandingExchanges.remove(jbiMex.getExchangeId());
+ if (outstanding == null) {
__log.warn("Received a response for unknown JBI message exchange " + jbiMex.getExchangeId());
return;
}
@@ -220,6 +220,12 @@
_ode._scheduler.execTransaction(new Callable<Boolean>() {
@SuppressWarnings("unchecked")
public Boolean call() throws Exception {
+ // need to reload mex since we're in a different transaction
+ PartnerRoleMessageExchange pmex = (PartnerRoleMessageExchange) _ode._server.getEngine().getMessageExchange(outstanding.getMessageExchangeId());
+ if (pmex == null) {
+ __log.warn("Received a response for unknown partner role message exchange " + pmex.getMessageExchangeId());
+ return Boolean.FALSE;
+ }
String mapperName = pmex.getProperty(Mapper.class.getName());
Mapper mapper = mapperName == null ? _ode.getDefaultMapper() : _ode.getMapper(mapperName);
if (mapper == null) {
@@ -230,8 +236,7 @@
try {
Fault jbiFlt = jbiMex.getFault();
if (jbiFlt != null) {
- javax.wsdl.Fault wsdlFlt = mapper.toFaultType(jbiFlt, (Collection<javax.wsdl.Fault>) pmex
- .getOperation().getFaults().values());
+ javax.wsdl.Fault wsdlFlt = mapper.toFaultType(jbiFlt, (Collection<javax.wsdl.Fault>) pmex.getOperation().getFaults().values());
if (wsdlFlt == null) {
pmex.replyWithFailure(FailureType.FORMAT_ERROR, "Unrecognized fault message.", null);
} else {