[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-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
[JBoss JIRA] Created: (JBPM-2047) PersistenceDbServiceTest and PersistenceServiceDbTest are dependent
by Jiri Pechanec (JIRA)
PersistenceDbServiceTest and PersistenceServiceDbTest are dependent
-------------------------------------------------------------------
Key: JBPM-2047
URL: https://jira.jboss.org/jira/browse/JBPM-2047
Project: JBoss jBPM
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Core Engine
Affects Versions: jBPM-3.2.5.SP1
Reporter: Jiri Pechanec
Assignee: Thomas Diesler
The tests can fail based on the execution order of these tests.
If PersistenceDbServiceTest is executed first then it sets session factory to MockSessionFactory.
Unfortunately it seems that the setting is SAME for ALL future newly created JbpmContexts.
PersistenceServiceDbTest then tests that the factory is null but it is not assertNull(persistenceServiceFactory.sessionFactory). The same test also tests few more features that ends in calls of unsupported operations on the MockSessionFactory.
I am not sure if this is a problem of test - then the sessionFactory should be cleard after test or if it is wrong that the setting is shared for all JBpmContexts.
--
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, 11 months
[JBoss JIRA] Created: (JBPM-1707) pageflow parsing is slow
by Alejandro Guizar (JIRA)
pageflow parsing is slow
------------------------
Key: JBPM-1707
URL: https://jira.jboss.org/jira/browse/JBPM-1707
Project: JBoss jBPM
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Core Engine
Affects Versions: jBPM 3.2.3
Environment: Red Hat Enterprise Linux AS release 4 (Nahant Update 7)
enterprise-installer-4.3.0.GA-1.ep1.8.jar
jdk-1.5.0_16-fcs
Reporter: Alejandro Guizar
Assignee: Alejandro Guizar
Fix For: jBPM 3.3.0 CR1
On a RHEL machine, while deploying a seam based ear, which contains 13 pageflow definitions, the parsing of these 13 pageflow files takes more than 34 minutes (!).
The culprit seems to be the usage of the original systemId (http://jboss.com/products/seam/pageflow-2.0.xsd) in the org.jbpm.jdpl.xml.JpdlParser$JpdlEntityResolver class, as this
apparently results in slow internet lookups:
log.debug("original systemId as input source");
inputSource = new InputSource(systemId);
Using a null InputSource:
inputSource = new InputSource((InputStream)null);
brings the parsing time down to less than 1 second.
Of course it would be better to actually pass in a reference to the local pageflow-2.0.xsd file, which is inside the jboss-seam.jar.
--
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, 11 months
[JBoss JIRA] Created: (JBPM-1771) Fix JobExecutorDbTest on postgresql
by Thomas Diesler (JIRA)
Fix JobExecutorDbTest on postgresql
-----------------------------------
Key: JBPM-1771
URL: https://jira.jboss.org/jira/browse/JBPM-1771
Project: JBoss jBPM
Issue Type: Task
Security Level: Public (Everyone can see)
Reporter: Thomas Diesler
Fix For: jBPM 3.3.1 GA
expected:<[10X, 10Y, 10Z, 10a, 10b, 10c, 10d, 10e, 11X, 11Y, 11Z, 11a, 11b, 11c, 11d, 11e, 12X, 12Y, 12Z, 12a, 12b, 12c, 12d, 12e, 13X, 13Y, 13Z, 13a, 13b, 13c, 13d, 13e, 14X, 14Y, 14Z, 14a, 14b, 14c, 14d, 14e, 15X, 15Y, 15Z, 15a, 15b, 15c, 15d, 15e, 16X, 16Y, 16Z, 16a, 16b, 16c, 16d, 16e, 17X, 17Y, 17Z, 17a, 17b, 17c, 17d, 17e, 18X, 18Y, 18Z, 18a, 18b, 18c, 18d, 18e, 19X, 19Y, 19Z, 19a, 19b, 19c, 19d, 19e, 1X, 1Y, 1Z, 1a, 1b, 1c, 1d, 1e, 20X, 20Y, 20Z, 20a, 20b, 20c, 20d, 20e, 2X, 2Y, 2Z, 2a, 2b, 2c, 2d, 2e, 3X, 3Y, 3Z, 3a, 3b, 3c, 3d, 3e, 4X, 4Y, 4Z, 4a, 4b, 4c, 4d, 4e, 5X, 5Y, 5Z, 5a, 5b, 5c, 5d, 5e, 6X, 6Y, 6Z, 6a, 6b, 6c, 6d, 6e, 7X, 7Y, 7Z, 7a, 7b, 7c, 7d, 7e, 8X, 8Y, 8Z, 8a, 8b, 8c, 8d, 8e, 9X, 9Y, 9Z, 9a, 9b, 9c, 9d, 9e]>
but was:<[100X, 100Y, 100Z, 100a, 100b, 100c, 100d, 100e, 108X, 108Y, 108Z, 108a, 108b, 108c, 108d, 108e, 116X, 116Y, 116Z, 116a, 116b, 116c, 116d, 116e, 124X, 124Y, 124Z, 124a, 124b, 124c, 124d, 124e, 132X, 132Y, 132Z, 132a, 132b, 132c, 132d, 132e, 140X, 140Y, 140Z, 140a, 140b, 140c, 140d, 140e, 148X, 148Y, 148Z, 148a, 148b, 148c, 148d, 148e, 156X, 156Y, 156Z, 156a, 156b, 156c, 156d, 156e, 164X, 164Y, 164Z, 164a, 164b, 164c, 164d, 164e, 172X, 172Y, 172Z, 172a, 172b, 172c, 172d, 172e, 180X, 180Y, 180Z, 180a, 180b, 180c, 180d, 180e, 188X, 188Y, 188Z, 188a, 188b, 188c, 188d, 188e, 36X, 36Y, 36Z, 36a, 36b, 36c, 36d, 36e, 44X, 44Y, 44Z, 44a, 44b, 44c, 44d, 44e, 52X, 52Y, 52Z, 52a, 52b, 52c, 52d, 52e, 60X, 60Y, 60Z, 60a, 60b, 60c, 60d, 60e, 68X, 68Y, 68Z, 68a, 68b, 68c, 68d, 68e, 76X, 76Y, 76Z, 76a, 76b, 76c, 76d, 76e, 84X, 84Y, 84Z, 84a, 84b, 84c, 84d, 84e, 92X, 92Y, 92Z, 92a, 92b, 92c, 92d, 92e]>
--
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, 11 months
[JBoss JIRA] Created: (JBPM-1178) Script conditions in transitions are evaluated as expressions by the decision node
by Romain Lamarche (JIRA)
Script conditions in transitions are evaluated as expressions by the decision node
----------------------------------------------------------------------------------
Key: JBPM-1178
URL: http://jira.jboss.com/jira/browse/JBPM-1178
Project: JBoss jBPM
Issue Type: Bug
Components: Core Engine
Affects Versions: jBPM jPDL 3.2.2
Environment: Windows XP, JBoss AS 4.2.2GA, MS SQL EXPRESS 2005, Jdk5
Reporter: Romain Lamarche
Assigned To: Tom Baeyens
The decision node does not evaluate scripts in conditional transitions.
Indeed, the execute method of node type decision does not check what type of condition it is.
Listing of the wrong code :
(file Decision.java lines 120-135 in Jbpm Jpdl 3.2.2)
} else {
// new mode based on conditions in the transition itself
Iterator iter = leavingTransitions.iterator();
while (iter.hasNext() && (transition==null)) {
Transition candidate = (Transition) iter.next();
String conditionExpression = candidate.getCondition();
if (conditionExpression!=null) {
Object result = JbpmExpressionEvaluator.evaluate(conditionExpression, executionContext);
if (Boolean.TRUE.equals(result)) {
transition = candidate;
}
}
}
}
The problem is the "JbpmExpressionEvaluator".
--
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, 11 months