NPE with a reply activity inside a fault handler
------------------------------------------------

                 Key: ODE-926
                 URL: https://issues.apache.org/jira/browse/ODE-926
             Project: ODE
          Issue Type: Bug
          Components: BPEL Runtime
    Affects Versions: 1.3.5
         Environment: Windows 7, Tomcat 7.0.14, Apache ODE 1.3.5 WAR 
distribution
            Reporter: Jon Coogan


In ODE 1.3.5 I am seeing a NullPointerException when I try to Reply from within 
a fault handler.  This used to work in previous versions of ODE.
 
Duplication Instructions
1.  Refer to the attached BPEL process.
2.  Deploy the process to ODE.
3.  Run the process using a tool like SoapUI.  The input doesn't matter.  
Observe the following stacktrace in the ODE output:

Jun 14, 2011 3:46:35 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performanc
e in production environments was not found on the java.library.path: C:\Program
Files (x86)\Java\jdk1.6.0_22\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C
:\Windows;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\Sys
tem32\WindowsPowerShell\v1.0\;C:\Program Files\Perforce
Jun 14, 2011 3:46:36 PM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jun 14, 2011 3:46:36 PM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jun 14, 2011 3:46:36 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1137 ms
Jun 14, 2011 3:46:36 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jun 14, 2011 3:46:36 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.14
Jun 14, 2011 3:46:36 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive ode.war
15:47:02,123 WARN  [ODEServer] Config file C:\Users\lab\Desktop\apache-tomcat-7.
0.14\webapps\ode\WEB-INF\conf\ode-axis2.properties not found, default values wil
l be used.
15:47:02,644 INFO  [ODEServer] Using DAO Connection Factory class org.apache.ode
.dao.jpa.BPELDAOConnectionFactoryImpl.
15:47:08,000 INFO  [BpelServerImpl] BPEL Server Started.
15:47:08,006 INFO  [SystemSchedulesConfig] SYSTEM CRON configuration: C:\Users\l
ab\Desktop\apache-tomcat-7.0.14\webapps\ode\WEB-INF\conf\schedules.xml
15:47:09,106 INFO  [DeploymentPoller] Poller started.
15:47:09,107 INFO  [ODEServer] Process deployment polling started on path C:\Use
rs\lab\Desktop\apache-tomcat-7.0.14\webapps\ode\WEB-INF\processes.
15:47:09,110 INFO  [ODEServer] ODE Service Engine has been started.
Jun 14, 2011 3:47:09 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Jun 14, 2011 3:47:09 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Jun 14, 2011 3:47:09 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory host-manager
Jun 14, 2011 3:47:09 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory manager
Jun 14, 2011 3:47:09 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Jun 14, 2011 3:47:09 PM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jun 14, 2011 3:47:09 PM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jun 14, 2011 3:47:09 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 33324 ms
15:52:11,324 INFO  [BpelServerImpl] Registered process 
{test}FaultHandlerReplyNPE-1.
15:52:11,327 INFO  [DeploymentPoller] Deployment of artifact 
FaultHandlerReplyNPE successful: [{test}FaultHandlerReplyNPE-1]
15:52:26,906 WARN  [ODEAxisOperationDispatcher] No operation has been found!
15:53:57,357 ERROR [JacobVPU] Method "run" in class 
"org.apache.ode.bpel.runtime.REPLY" threw an unexpected exception.
java.lang.NullPointerException
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.reply2(BpelRuntimeContextImpl.java:603)
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.reply(BpelRuntimeContextImpl.java:589)
        at org.apache.ode.bpel.runtime.REPLY.run(REPLY.java:68)
        at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
        at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:968)
        at 
org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:208)
        at org.apache.ode.bpel.engine.BpelProcess$1.invoke(BpelProcess.java:283)
        at 
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:238)
        at 
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:279)
        at 
org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(BpelProcess.java:426)
        at 
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:460)
        at 
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:450)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:518)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:512)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:284)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:239)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:512)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:496)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
15:53:57,468 ERROR [BpelEngineImpl] Scheduled job failed; jobDetail=JobDetails( 
instanceId: null mexId: 4611686018427387903 processId: 
{test}FaultHandlerReplyNPE-1 type: INVOKE_INTERNAL channel: null
correlatorId: null correlationKeySet: null retryCount: null inMem: true 
detailsExt: {})
java.lang.RuntimeException: java.lang.NullPointerException
        at 
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464)
        at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:968)
        at 
org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:208)
        at org.apache.ode.bpel.engine.BpelProcess$1.invoke(BpelProcess.java:283)
        at 
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:238)
        at 
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:279)
        at 
org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(BpelProcess.java:426)
        at 
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:460)
        at 
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:450)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:518)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:512)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:284)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:239)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:512)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:496)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.reply2(BpelRuntimeContextImpl.java:603)
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.reply(BpelRuntimeContextImpl.java:589)
        at org.apache.ode.bpel.runtime.REPLY.run(REPLY.java:68)
        at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
        ... 20 more
15:53:57,567 WARN  [MyRoleMessageExchangeImpl] Transaction is rolled back on 
sending back the response.
15:53:58,576 FATAL [BpelRuntimeContextImpl] Engine requested response while the 
message exchange 4611686018427387903 was in the state RESPONSE
15:53:58,580 ERROR [PICK] The message exchange seems to be in an unconsistent 
state, you're probably missing a reply on a request/response interaction.
15:53:58,590 ERROR [JacobVPU] Method "run" in class 
"org.apache.ode.bpel.runtime.REPLY" threw an unexpected exception.
java.lang.IllegalStateException: Not in REQUEST state!
        at 
org.apache.ode.bpel.engine.MessageExchangeImpl.setResponse(MessageExchangeImpl.java:171)
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.reply2(BpelRuntimeContextImpl.java:609)
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.reply(BpelRuntimeContextImpl.java:589)
        at org.apache.ode.bpel.runtime.REPLY.run(REPLY.java:68)
        at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
        at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:968)
        at 
org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:208)
        at org.apache.ode.bpel.engine.BpelProcess$1.invoke(BpelProcess.java:283)
        at 
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:238)
        at 
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:279)
        at 
org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(BpelProcess.java:426)
        at 
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:460)
        at 
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:450)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:518)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:512)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:284)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:239)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:512)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:496)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
15:53:58,642 ERROR [BpelEngineImpl] Scheduled job failed; jobDetail=JobDetails( 
instanceId: null mexId: 4611686018427387903 processId: 
{test}FaultHandlerReplyNPE-1 type: INVOKE_INTERNAL channel: null
correlatorId: null correlationKeySet: null retryCount: null inMem: true 
detailsExt: {})
java.lang.RuntimeException: java.lang.IllegalStateException: Not in REQUEST 
state!
        at 
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464)
        at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:968)
        at 
org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:208)
        at org.apache.ode.bpel.engine.BpelProcess$1.invoke(BpelProcess.java:283)
        at 
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:238)
        at 
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:279)
        at 
org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(BpelProcess.java:426)
        at 
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:460)
        at 
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:450)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:518)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:512)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:284)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:239)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:512)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:496)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IllegalStateException: Not in REQUEST state!
        at 
org.apache.ode.bpel.engine.MessageExchangeImpl.setResponse(MessageExchangeImpl.java:171)
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.reply2(BpelRuntimeContextImpl.java:609)
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.reply(BpelRuntimeContextImpl.java:589)
        at org.apache.ode.bpel.runtime.REPLY.run(REPLY.java:68)
        at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
        ... 20 more
15:53:59,697 FATAL [BpelRuntimeContextImpl] Engine requested response while the 
message exchange 4611686018427387903 was in the state RESPONSE
15:53:59,701 ERROR [PICK] The message exchange seems to be in an unconsistent 
state, you're probably missing a reply on a request/response interaction.
15:53:59,711 INFO  [BpelRuntimeContextImpl] ActivityRecovery: Registering 
activity 4, failure reason: org.apache.ode.bpel.iapi.BpelEngineException: 
Engine requested response while the message exchange
 4611686018427387903 was in the state RESPONSE on channel 10

 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to