[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, 7 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, 7 months
[JBoss JIRA] Created: (JBPM-2703) Deserialization fails to work using custom Classloader
by Nicolas Leroux (JIRA)
Deserialization fails to work using custom Classloader
------------------------------------------------------
Key: JBPM-2703
URL: https://jira.jboss.org/jira/browse/JBPM-2703
Project: jBPM
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Runtime Engine
Affects Versions: jBPM 4.2
Reporter: Nicolas Leroux
Fix For: jBPM 4.x
I am trying to use jBPM outside a servlet container and when storing a variable in the execution context, retrieving it I have:
Caught: java.lang.ClassNotFoundException: Blah
This is the same bug as described in:
http://jira.codehaus.org/browse/GROOVY-1627 . I think this is the following issue as well: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4340158 .
{quote}Java uses the last defined ClassLoader to loader the class. In many environments this might mean that the wrong class loader is chosen or that it works one day and the other day not. {quote}
The following code fixes the problem (in org.jbpm.pvm.internal.type.converter.SerializableToBytesConverter line 71 in the revert method:
{code}
ObjectInputStream ois = new ObjectInputStream(bais) {
protected Class resolveClass(ObjectStreamClass objectStreamClass) throws IOException, ClassNotFoundException {
return Class.forName(objectStreamClass.getName(), true, Thread.currentThread().getContextClassLoader());
}
};
{code}
--
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, 7 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, 8 months