[
https://issues.apache.org/jira/browse/ODE-926?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jon Coogan closed ODE-926.
--------------------------
Resolution: Not A Problem
Fix Version/s: 1.3.5
My mistake. The exception appears originating from the 2nd Reply. The
behavior has changed since I last tried this in a previous version of ODE, and
this confused me.
> 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
> Fix For: 1.3.5
>
> Attachments: FaultHandlerReplyNPE.zip
>
>
> 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