[JBoss JIRA] Created: (JBPM-1139) The ClassUtil class is not thread-safe
by Wojciech Gdela (JIRA)
The ClassUtil class is not thread-safe
--------------------------------------
Key: JBPM-1139
URL: http://jira.jboss.com/jira/browse/JBPM-1139
Project: JBoss jBPM
Issue Type: Bug
Components: Core Engine
Affects Versions: jBPM jPDL 3.2.3
Reporter: Wojciech Gdela
Assigned To: Tom Baeyens
Attachments: ClassUtil-concurrency-issue.zip
The ClassUtil class is not thread-safe. The exception will occur when two thread simultanously try do deserialize variables from two different process definitions. Look at the code:
{code}
public ContextObjectInputStream(final InputStream in,
ProcessInstance processInstance) throws IOException {
super(in);
this.setProcessInstance(processInstance);
ClassUtil.setProcessInstance(processInstance);
}
...
protected Class resolveClass(final ObjectStreamClass desc)
throws IOException, ClassNotFoundException {
return ClassUtil.forName(desc.getName(), ContextObjectInputStream.class);
}
...
ContextObjectInputStream cois = new ContextObjectInputStream(bais, definition.createProcessInstance());
// when here another thread tries to execute the same code with another process instance there will be a problem
return cois.readObject();
{/code}
Further description of issue is in attached test case.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 8 months
[JBoss JIRA] Created: (JBPM-2591) Simulation module has transitive dependency on commons-beanutils
by Alejandro Guizar (JIRA)
Simulation module has transitive dependency on commons-beanutils
----------------------------------------------------------------
Key: JBPM-2591
URL: https://jira.jboss.org/jira/browse/JBPM-2591
Project: jBPM
Issue Type: Task
Components: Runtime Engine
Affects Versions: jBPM 3.2.8
Environment: hsqldb
java14
linux
Reporter: Alejandro Guizar
Priority: Minor
Fix For: jBPM 3.2.x
A recent CI build failed due to:
[INFO] Compilation failure
/qa/hudson_ws/workspace/jbpm3-jboss405/database/hsqldb/jdk/java14/label/linux/jbpm/modules/simulation/src/main/java/org/jbpm/sim/def/JbpmSimulationModel.java:[10,36] package org.apache.commons.beanutils does not exist
/qa/hudson_ws/workspace/jbpm3-jboss405/database/hsqldb/jdk/java14/label/linux/jbpm/modules/simulation/src/main/java/org/jbpm/sim/def/JbpmSimulationModel.java:[607,8] cannot find symbol
symbol : variable PropertyUtils
location: class org.jbpm.sim.def.JbpmSimulationModel
/qa/hudson_ws/workspace/jbpm3-jboss405/database/hsqldb/jdk/java14/label/linux/jbpm/modules/simulation/src/main/java/org/jbpm/sim/def/JbpmSimulationModel.java:[609,23] cannot find symbol
symbol : variable PropertyUtils
location: class org.jbpm.sim.def.JbpmSimulationModel
jbpm-simulation depends on jasperreports which in turn depends on commons-beanutils. Yet jbpm-simulation uses commons-beanutils directly, and should not rely on jasperreports' dependencies.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 8 months
[JBoss JIRA] Created: (JBPM-1708) CommandServiceBean cannot access UserTransaction
by Thomas Diesler (JIRA)
CommandServiceBean cannot access UserTransaction
------------------------------------------------
Key: JBPM-1708
URL: https://jira.jboss.org/jira/browse/JBPM-1708
Project: JBoss jBPM
Issue Type: Bug
Security Level: Public (Everyone can see)
Reporter: Thomas Diesler
Fix For: jBPM 3.3.0
Caused by: org.jbpm.JbpmException: couldn't start JTA transaction
at org.jbpm.persistence.jta.JtaDbPersistenceService.beginJtaTransaction(JtaDbPersistenceService.java:74)
at org.jbpm.persistence.jta.JtaDbPersistenceService.<init>(JtaDbPersistenceService.java:47)
at org.jbpm.persistence.jta.JtaDbPersistenceServiceFactory.openService(JtaDbPersistenceServiceFactory.java:63)
at org.jbpm.svc.Services.getService(Services.java:156)
at org.jbpm.svc.Services.getPersistenceService(Services.java:195)
at org.jbpm.JbpmContext.getPersistenceService(JbpmContext.java:622)
at org.jbpm.JbpmContext.getGraphSession(JbpmContext.java:566)
at org.jbpm.JbpmContext.deployProcessDefinition(JbpmContext.java:173)
at org.jbpm.command.DeployProcessCommand.execute(DeployProcessCommand.java:68)
at org.jbpm.ejb.impl.CommandServiceBean.execute(CommandServiceBean.java:146)
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:597)
at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
... 45 more
Caused by: org.jbpm.JbpmException: could not retrieve user transaction with name java:comp/UserTransaction
at org.jbpm.persistence.jta.JtaDbPersistenceServiceFactory.getUserTransaction(JtaDbPersistenceServiceFactory.java:84)
at org.jbpm.persistence.jta.JtaDbPersistenceService.beginJtaTransaction(JtaDbPersistenceService.java:71)
... 68 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 9 months
[JBoss JIRA] Created: (JBPM-2581) Problems with nested Forks
by Sebastian Castellanos (JIRA)
Problems with nested Forks
---------------------------
Key: JBPM-2581
URL: https://jira.jboss.org/jira/browse/JBPM-2581
Project: jBPM
Issue Type: Task
Security Level: Public (Everyone can see)
Affects Versions: jBPM 4.0
Environment: Windows xp, Eclipse galileo and jbpm integred with spring and hibernate.
Reporter: Sebastian Castellanos
Priority: Critical
First off, I apologize for not having made the unit tests, but do not have time at the moment and I think it is a conceptual problem and a unit test would not provide much.
I am integrating jBPM version 4.1 and it proves there too.
The situation is this:
When launched a nested Fork1 another in the second Fork repeats one of its tasks.
In the xml it becomes clear what the situation.
Maybe it is a conceptual issue, and I who is mishandled.
I would be grateful if I can help, as I searched in different places this situation and found no alternative but to post it here.
Greetings.
Sebastian.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 10 months
[JBoss JIRA] Created: (JBPM-2263) Multiple timers in node cause EventSource reset
by Asaf Shakarchi (JIRA)
Multiple timers in node cause EventSource reset
-----------------------------------------------
Key: JBPM-2263
URL: https://jira.jboss.org/jira/browse/JBPM-2263
Project: JBoss jBPM
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Runtime Engine
Affects Versions: jBPM 3.2.6.SP1
Reporter: Asaf Shakarchi
When having multiple timers in a node, the 2nd timer and all after 'lose' the relationship between the timer->graphElement, thus,
timers are being persisted without the relationship with the graphElement, that causes serious problems in job execution time,
Here's a deep detail explaination (considering there are two timers in one task node)
When entering a node, the 'EVENTTYPE_NODE_ENTER' event gets fired, which causes two 'create timer actions' to be created via CreateTimerAction, one per timer,
In GraphElement->fireEvent() there's the following piece of code:
...
fireAndPropagateEvent(eventType, executionContext);
} finally {
executionContext.setEventSource(null);
}
...
This part seems to clean up the eventSource, but that causes the 2nd timer and above to 'lose' the association to the graphElement(Node ID) the timer was created from,
I assume its not taken into consideration that the create timer fires another 'inner' event that causes the eventSource to be reset:
CreateTimerAction->createTimer(..) {
graphElement.fireEvent(Event.EVENTTYPE_TIMER_CREATE, executionContext);
}
For now, we commented out the GraphElement->fireEvent->'executionContext.setEventSource(null);' line, but I don't really understand the impact of that,
If that line is important, I think it's better to perform the cleanup only in case the fire event is not invoked in an 'inner' fire event call, or find another approach,
Thanks.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 10 months