Author: boisvert
Date: Thu Oct 29 19:45:24 2009
New Revision: 831071
URL: http://svn.apache.org/viewvc?rev=831071&view=rev
Log:
Fix potential NPE if doing p2p invoke from in-memory process
Modified:
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
Modified:
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
URL:
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java?rev=831071&r1=831070&r2=831071&view=diff
==============================================================================
---
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
(original)
+++
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
Thu Oct 29 19:45:24 2009
@@ -526,25 +526,27 @@
__log.debug("Replying to a p2p mex, myrole " + m + " -
partnerole " + pmex);
}
try {
- switch (m.getStatus()) {
- case FAILURE:
- // We can't seem to get the failure out of the myrole
mex?
-
pmex.replyWithFailure(MessageExchange.FailureType.OTHER, "operation failed",
null);
- break;
- case FAULT:
- Message faultRes =
pmex.createMessage(pmex.getOperation().getFault(m.getFault().getLocalPart())
- .getMessage().getQName());
- faultRes.setMessage(m.getResponse().getMessage());
- pmex.replyWithFault(m.getFault(), faultRes);
- break;
- case RESPONSE:
- Message response =
pmex.createMessage(pmex.getOperation().getOutput().getMessage().getQName());
- response.setMessage(m.getResponse().getMessage());
- pmex.reply(response);
- break;
- default:
- __log.warn("Unexpected state: " + m.getStatus());
- break;
+ if (pmex != null) {
+ switch (m.getStatus()) {
+ case FAILURE:
+ // We can't seem to get the failure out of the
myrole mex?
+
pmex.replyWithFailure(MessageExchange.FailureType.OTHER, "operation failed",
null);
+ break;
+ case FAULT:
+ Message faultRes =
pmex.createMessage(pmex.getOperation().getFault(m.getFault().getLocalPart())
+ .getMessage().getQName());
+ faultRes.setMessage(m.getResponse().getMessage());
+ pmex.replyWithFault(m.getFault(), faultRes);
+ break;
+ case RESPONSE:
+ Message response =
pmex.createMessage(pmex.getOperation().getOutput().getMessage().getQName());
+ response.setMessage(m.getResponse().getMessage());
+ pmex.reply(response);
+ break;
+ default:
+ __log.warn("Unexpected state: " + m.getStatus());
+ break;
+ }
}
} finally {
mex.release(_bpelProcess.isCleanupCategoryEnabled(m.getStatus() ==
MessageExchange.Status.RESPONSE, CLEANUP_CATEGORY.MESSAGES));