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]

Reply via email to