On Tue, Apr 21, 2009 at 1:37 AM, Milinda Pathirage <
[email protected]> wrote:

> I deployed a BPEL which tests SOAP Header support and sent a request
> without
> the SOAP Header part.
>
> In that case following exception thrown:
>
> [2009-04-21 11:32:42,386] FATAL -  Message missing part: header
> {org.apache.ode.bpel.rtrep.v2.PICK}
> [2009-04-21 11:32:42,389] ERROR -  Method "onRequestRcvd" in class
> "org.apache.ode.bpel.rtrep.v2.PICK$WAITING$2" threw an unexpected
> exception.
> {org.apache.ode.jacob.vpu.JacobVPU}
> org.apache.ode.bpel.rtrep.v2.InvalidContextException: Message missing part:
> header
>    at org.apache.ode.bpel.rtrep.v2.PICK.initVariable(PICK.java:190)
>    at org.apache.ode.bpel.rtrep.v2.PICK.access$400(PICK.java:47)
>    at
> org.apache.ode.bpel.rtrep.v2.PICK$WAITING$2.onRequestRcvd(PICK.java:270)
>    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)
>    at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
>    at
>
> org.apache.ode.bpel.rtrep.v2.RuntimeInstanceImpl.execute(RuntimeInstanceImpl.java:639)
>    at
>
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:616)
>    at
>
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.executeCreateInstance(BpelRuntimeContextImpl.java:604)
> ....
> [2009-04-21 11:32:42,391] ERROR -  Work for instance {
> http://dfa.com/test}newProcess-2#501<http://dfa.com/test%7DnewProcess-2#501>in
>  thread
> Thread[ODEServerImpl-1,5,main] resulted in an exception.
> {org.apache.ode.bpel.engine.BpelInstanceWorker}
> java.lang.RuntimeException:
> org.apache.ode.bpel.rtrep.v2.InvalidContextException: Message missing part:
> header
>    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.rtrep.v2.RuntimeInstanceImpl.execute(RuntimeInstanceImpl.java:639)
>    at
>
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:616)
>    at
>
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.executeCreateInstance(BpelRuntimeContextImpl.java:604)
>  ...
>
> I was able to fix the time out error by catching the BpelEngineException
> inside ODEProcess.invokeProcess method and sending back a SOAP Fault with
> exception message.
>
> But the problem is event there is a error in the incoming message, there is
> a instance created for this message and that instance is in ACTIVE state.
> In
> case of situation like this, I think the created instance must in error or
> failed state.


Agreed.


> And also in current ODE trunk we are not sending SOAP Fault if
> there is BpelEngineException. I think we need to send a soap fault when
> BpelEngineException occur. WDYT?
>

I believe Alexis has been working on this recently, are you using a recent
build?

Matthieu


>
> Thanks,
> Milinda
>
> --
> http://mpathirage.com
> http://wso2.org "Oxygen for Web Service Developers"
> http://wsaxc.blogspot.com "Web Services With Axis2/C"
>

Reply via email to