Hi,
I'm trying out explicit correlations. My sequence is essentially two sets
of recieve, invoke, and reply sets with correlations on the receives. My
assumption is that receive will block until a message arrives. What seems
to happen though is that the second receive is entered before an actual
message is received which triggers a correlation error. Should receive
block until a message arrives?
Here's the pseudo code of what I'm doing followed by the exception.
(servicemix 3.0, ode r553562 (ca. July 8), Fedora 6)
<sequence>
<receive messageA> <correlation transactionID>
<invoke serviceA>
<reply requestA> <<-- reply makes it back to the client
<<exception thrown around this time before messageB is ever sent by the
client>>
<receive messageB> <correlation transactionID>
<invoke serviceB>
<reply requestB>
</sequence>
-------------------------------------------------------
19:03:29,980 | DEBUG | pool-flow.seda.OdeBpelEngine-thread-54 |
ConsumerProcessor | p.processors.ConsumerProcessor 98 | Resuming
continuation for exchange: ID:localhost.localdomain-41761-1185806196813-2:34
19:03:29,979 | ERROR | pool-2-thread-30 | BpelEngineImpl |
ode.bpel.engine.BpelEngineImpl 325 | Scheduled job failed;
jobDetail={type=MATCHER, inmem=true, ckey=null, correlatorId=
30.ProxyServiceB, iid=12}
java.lang.NullPointerException
at org.apache.ode.bpel.common.CorrelationKey.<init>(CorrelationKey.java
:71)
at org.apache.ode.bpel.engine.WorkEvent.getCorrelationKey(WorkEvent.java
:97)
at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(
BpelProcess.java:341)
at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(
BpelEngineImpl.java:316)
at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(
BpelServerImpl.java:364)
at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(
SimpleScheduler.java:316)
at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(
SimpleScheduler.java:315)
at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(
SimpleScheduler.java:154)
at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(
SimpleScheduler.java:314)
at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(
SimpleScheduler.java:311)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
19:03:29,985 | ERROR | pool-2-thread-30 | SimpleScheduler |
duler.simple.SimpleScheduler$4 328 | Error while executing transaction
org.apache.ode.bpel.iapi.Scheduler$JobProcessorException:
java.lang.NullPointerException
at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(
BpelEngineImpl.java:326)
at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(
BpelServerImpl.java:364)
at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(
SimpleScheduler.java:316)
at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(
SimpleScheduler.java:315)
at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(
SimpleScheduler.java:154)
at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(
SimpleScheduler.java:314)
at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(
SimpleScheduler.java:311)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at org.apache.ode.bpel.common.CorrelationKey.<init>(CorrelationKey.java
:71)
at org.apache.ode.bpel.engine.WorkEvent.getCorrelationKey(WorkEvent.java
:97)
at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(
BpelProcess.java:341)
at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(
BpelEngineImpl.java:316)
... 11 more
19:03:29,986 | DEBUG | btpool0-0 - Acceptor0 SelectChannelConnector @
0.0.0.0:8080 | JettyContextManager | ntextManager$ThreadPoolWrapper
437 | Dispatching job: [EMAIL PROTECTED],io=0,w=true,b=0|0]
19:03:29,986 | DEBUG | btpool0-44 | jetty |
ervicemix.http.jetty.JCLLogger 67 | resume continuation
[EMAIL PROTECTED]