Bug 1049275

Summary: Initiator unknown for a process instance started via JMS remote API
Product: [Retired] JBoss BPMS Platform 6 Reporter: Ivo Bek <ibek>
Component: Business CentralAssignee: Marco Rietveld <mrietvel>
Status: CLOSED NOTABUG QA Contact: Ivo Bek <ibek>
Severity: high Docs Contact:
Priority: high    
Version: 6.0.0CC: ibek, joaomiguel.pereira, kverlaen, mswiders, rrajasek, smcgowan
Target Milestone: ER1   
Target Release: 6.0.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-02-27 11:04:43 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:
Embargoed:

Description Ivo Bek 2014-01-07 10:26:22 UTC
Description of problem:

When I start any process via JMS API and look into Business central Process Instances view, the initiator of the process instance is unknown.

For REST API the initiator is set correctly. It happens with my own JMS client and also with Jbpm remote JMS client created by RemoteJmsRuntimeEngineFactory. Of course, I use userid and password via this constructor 
RemoteJmsRuntimeEngineFactory(deploymentId, connectionFactory, sessionQueue, taskQueue, responseQueue, userId, password, 5 * 1000)

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1. Start any process via JMS API
2. Open Process Instances view in Business central
3. See the initiator of the process instance is unknown

Actual results:


Expected results:


Additional info:

Comment 1 Marco Rietveld 2014-01-08 14:37:40 UTC
Please add a test! Thanks.

Comment 4 Lukáš Petrovický 2014-02-07 16:19:28 UTC
This no longer has a target release of 6.0.0.

Comment 6 Ivo Bek 2014-02-19 16:14:41 UTC
And here is part of server log to see the changes are there and the backup identity bean contains "null"/unknown user:

15:03:14,456 DEBUG [org.kie.services.remote.jms.RequestMessageBean] (Thread-4 (HornetQ-client-global-threads-888418442)) Added classes from org.jboss:integration:1.2.0-SNAPSHOT to serialization context.
15:03:14,525 DEBUG [org.kie.services.remote.jms.RequestMessageBean] (Thread-4 (HornetQ-client-global-threads-888418442)) Creating identity provider for user: null
15:03:14,527 DEBUG [org.kie.services.remote.jms.RequestMessageBean] (Thread-4 (HornetQ-client-global-threads-888418442)) Producing backup identity bean for user: unknown
15:03:14,530 INFO  [stdout] (Thread-4 (HornetQ-client-global-threads-888418442)) type = java.lang.Long
15:03:14,683 DEBUG [org.kie.services.remote.jms.RequestMessageBean] (Thread-1 (HornetQ-client-global-threads-888418442)) Added classes from org.jboss:integration:1.2.0-SNAPSHOT to serialization context.
15:03:14,745 DEBUG [org.kie.services.remote.jms.RequestMessageBean] (Thread-1 (HornetQ-client-global-threads-888418442)) Creating identity provider for user: null

Comment 7 Marco Rietveld 2014-02-26 11:13:12 UTC
Ivo, what version of BPMS did you test this with (on feb 19th)? 

Maciej recently made changes to code that has to do with this.

Comment 8 Ivo Bek 2014-02-26 12:02:27 UTC
I tested it in BPMS 6.0.1.ER1.

I have just noticed that initiator is unknown also when I call a subprocess (via REST API where it ). Is the behavior correct or the initiator should be the same as for the parent process?

Comment 9 Maciej Swiderski 2014-02-26 19:09:09 UTC
Ivo,

I believe you're not setting user on the JaxbCommandsRequest that is required to properly set user when performing operations. As you can see here: https://github.com/droolsjbpm/droolsjbpm-integration/blob/6.0.x/kie-remote/kie-services-client/src/main/java/org/kie/services/client/api/command/AbstractRemoteCommandObject.java#L178

user is automatically set for JMS operations when using kid-remote-client and same should be applied when constructing JaxbCommandsRequest object manually.

Could you please check if that is the case?

Comment 10 Ivo Bek 2014-02-27 11:04:43 UTC
As we discussed with Maciej, I agreed with him that JMS API is designed to be more flexible for system to system integrations, so it is intended to be able to set an initiator as it is needed and the initiator can be different to a requester.

SetUser method in JaxbCommandsRequest works exactly as Maciej said in the comment 9 above.

Comment 11 joao pereira 2014-05-20 13:16:47 UTC
Using 6.0.1.Final, this still verifies. Using JMS, even using setUser in the request, the initiator is set to "unkonw"

Comment 12 Marco Rietveld 2014-05-21 10:33:06 UTC
For future reference: 

This has been fixed in 6.0.2.Final, with the introduction of SSL enabled JMS queues in order to send the appropriate login information for the intiator.

Comment 13 joao pereira 2014-05-21 10:37:57 UTC
Hi Marco, 

Can you point me some documentation to correctly configure SSL JMS Queues? Also where we can find the 6.0.2.Final, as I only found the 6.0.1.Final.

Thanks

Comment 14 Marco Rietveld 2014-06-24 19:17:37 UTC
This bug only applies to BPMS. 
See http://www.jboss.org/products/bpmsuite/overview/

BPMS 6.0.2 has not been released yet.