ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jon Coogan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ODE-926) NPE with a reply activity inside a fault handler
Date Wed, 15 Jun 2011 17:47:47 GMT

    [ https://issues.apache.org/jira/browse/ODE-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13049917#comment-13049917
] 

Jon Coogan commented on ODE-926:
--------------------------------

I have learned a little more about what is happening here.  My apologies for opening this
issue without fully understanding the problem.  Basically, you'll get a NullPointerException
if you try to reply more than once (to the same operation/partnerLink/portType).  Obviously,
there is no need to reply more than once, but ODE probably shouldn't throw a NullPointerException
either.

> 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

        

Mime
View raw message