Uploaded image for project: 'ODE'
  1. ODE
  2. ODE-715

No exception propagation back to integration layer in case of invalid XML request

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.3.4
    • 1.4
    • BPEL Runtime
    • None
    • MacOS X

    Description

      Integration layer is getting an XML from outside and try to initiate a process with this XML using MyRoleMessageExchange object. Following code doing it:

      Message messageDesc = mex.getOperation().getInput().getMessage();
      final Document odeMsg = constructODEMessage(message, messageDesc);
      Message odeRequest = mex.createMessage(messageDesc.getQName());
      odeRequest.setMessage(odeMsg.getDocumentElement());
      Future future = mex.invoke(odeRequest);
      // Commiting transaction
      ...
      // Waiting for response
      future.get(1000, TimeUnit.SECONDS);

      The problem is however that XML which is sent to ODE is not valid according to the WSDL schema, in this case we can see following exceptions in the log:

      02:04:06,930 ERROR [PICK] Message (element) part body did not contain correct child element: expected

      {http://example.com/RenatsProviderProcess/Pool0}

      EventStartMessageRequest but got test
      02:04:06,931 ERROR [PICK] Message (element) part body did not contain correct child element: expected

      {http://example.com/RenatsProviderProcess/Pool0}

      EventStartMessageRequest but got test
      02:04:06,932 ERROR [PICK] Message (element) part body did not contain correct child element: expected

      {http://example.com/RenatsProviderProcess/Pool0}

      EventStartMessageRequest but got test
      02:04:06,932 ERROR [JacobVPU] Method "onRequestRcvd" in class "org.apache.ode.bpel.runtime.PICK$WAITING$2" threw an unexpected exception.
      org.apache.ode.bpel.runtime.InvalidContextException: Message (element) part body did not contain correct child element: expected

      {http://example.com/RenatsProviderProcess/Pool0}

      EventStartMessageRequest but got test
      at org.apache.ode.bpel.runtime.PICK.initVariable(PICK.java:247)
      at org.apache.ode.bpel.runtime.PICK.access$400(PICK.java:55)
      at org.apache.ode.bpel.runtime.PICK$WAITING$2.onRequestRcvd(PICK.java:305)
      at sun.reflect.GeneratedMethodAccessor474.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:879)
      at org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:206)
      at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:237)
      at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:408)
      at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:439)
      at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:441)
      at org.apache.ode.scheduler.simple.SimpleScheduler$5$1.call(SimpleScheduler.java:443)
      at org.apache.ode.scheduler.simple.SimpleScheduler$5$1.call(SimpleScheduler.java:437)
      at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:226)
      at org.apache.ode.scheduler.simple.SimpleScheduler$5.call(SimpleScheduler.java:436)
      at org.apache.ode.scheduler.simple.SimpleScheduler$5.call(SimpleScheduler.java:432)
      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:619)
      02:04:06,933 ERROR [JacobVPU] Method "onRequestRcvd" in class "org.apache.ode.bpel.runtime.PICK$WAITING$2" threw an unexpected exception.
      ...

      However future object do not return anything.

      Attachments

        Activity

          People

            Unassigned Unassigned
            zubairov Renat Zubairov
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:

              Time Tracking

                Estimated:
                Original Estimate - 2h
                2h
                Remaining:
                Remaining Estimate - 2h
                2h
                Logged:
                Time Spent - Not Specified
                Not Specified