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));


Reply via email to