Uploaded image for project: 'ODE'
  1. ODE
  2. ODE-926

NPE with a reply activity inside a fault handler

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Not A Problem
    • 1.3.5
    • 1.3.5
    • BPEL Runtime
    • None
    • Windows 7, Tomcat 7.0.14, Apache ODE 1.3.5 WAR distribution

    Description

      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

      Attachments

        1. FaultHandlerReplyNPE.zip
          5 kB
          Jon Coogan

        Activity

          People

            Unassigned Unassigned
            joncoogan Jon Coogan
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: