Bug 1032619

Summary: In Spring Camel integration the JSON batch execution of a Jbpm process doesn't return the process id
Product: [Retired] JBoss BPMS Platform 6 Reporter: Ivo Bek <ibek>
Component: jBPM CoreAssignee: Kris Verlaenen <kverlaen>
Status: CLOSED CURRENTRELEASE QA Contact: Ivo Bek <ibek>
Severity: medium Docs Contact:
Priority: high    
Version: 6.0.0   
Target Milestone: ER6   
Target Release: 6.0.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-08-06 20:12:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Ivo Bek 2013-11-20 13:41:18 UTC
Description of problem:

I have following REST server:

<cxf:rsServer
    id="rsJsonServer"
    address="http://localhost:58002/restjson"
    serviceClass="org.kie.jax.rs.CommandExecutorImpl">
    <cxf:providers>
      <bean class="org.kie.jax.rs.CommandMessageBodyReader" />
    </cxf:providers>
  </cxf:rsServer>

for that I've created this camel route:

<route id="restJsonGW">
      <from uri="cxfrs://bean://rsJsonServer" />
      <policy ref="kiePolicy">
        <unmarshal ref="json" />
        <to uri="kie:ksession1" />
        <marshal ref="json" />
      </policy>
    </route>

When I work just with business rules and objects, the responses are right. The problem is when I start a business process. For xstream I always receive a result with process instance id but not for json. The result is there but without any values. To marshall the batch xml, I use BatchExecutionHelper.newJSonMarshaller().

String outIdentifier = "taskProcess";
StartProcessCommand startProcessCommand = new StartProcessCommand(HUMAN_TASK_PROCESS_ID,
                new HashMap<String, Object>(), outIdentifier);
ExecutionResults result = sc.execute(startProcessCommand);
assertNotNull(result);
Long processInstanceId = (Long) result.getValue(outIdentifier); // the processInstanceId is null

and as I logged the result, actually there are no values at all.

Comment 2 Kris Verlaenen 2013-11-29 03:05:39 UTC
JSON marshalling of StartProcessCommand was missing outIdentifier

master: http://github.com/droolsjbpm/drools/commit/47a6171c3
6.0.x: http://github.com/droolsjbpm/drools/commit/8407a85ef

Comment 3 Ivo Bek 2014-01-08 12:25:41 UTC
Verified in BPMS 6.0.0.ER7