Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.0-incubating
-
None
-
svn tip, Mac OS X 10.4.9, JDK 1.5
Description
The process in question has the following structure:
receive init message
reply
flow
while true
receive get message
reply
while true
receive getAndIncrement message
reply
increment variable
receive close
exit
(Python-style indenting for nesting, and sequential activities are on successive lines.)
The resulting exception is:
Caused by: org.apache.ode.bpel.iapi.BpelEngineException: Engine requested response while the message exchange hqejbhcnphr2achs6i6uh5 was in the state RESPONSE
at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.getMyRequest(BpelRuntimeContextImpl.java:1123)
at org.apache.ode.bpel.runtime.PICK.initVariable(PICK.java:159)
at org.apache.ode.bpel.runtime.PICK.access$400(PICK.java:49)
at org.apache.ode.bpel.runtime.PICK$WAITING$2.onRequestRcvd(PICK.java:244)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
... 16 more
With a debugger attached, if the initialize operation is called, then the response is returned, but getAndIncrement is the operation listed in the underlying mex in the call to BpelRuntimeContextImpl::getMyRequest, and this request does exist yet.
I have the feeling that the implementation is not properly hashing port type/operation pairs but rather just port types?