[JBoss JIRA] Created: (JBPM-2818) Leaving node in super-state throws org.jbpm.JbpmException: cannot leave Node without leaving transition
by Toshiya Kobayashi (JIRA)
Leaving node in super-state throws org.jbpm.JbpmException: cannot leave Node without leaving transition
-------------------------------------------------------------------------------------------------------
Key: JBPM-2818
URL: https://jira.jboss.org/jira/browse/JBPM-2818
Project: jBPM
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Runtime Engine
Affects Versions: jBPM 3.2.8
Reporter: Toshiya Kobayashi
Leaving <node> in <super-state> throws
org.jbpm.JbpmException: cannot leave Node(node2) without leaving transition
when I execute process definition like:
================
<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="id41">
<start-state name="start">
<transition to="super-state1"></transition>
</start-state>
<super-state name="super-state1">
<transition to="end"></transition>
<node name="node1">
<transition to="node2"></transition>
</node>
<node name="node2">
</node>
</super-state>
<end-state name="end">
</end-state>
</process-definition>
=================
Note: <node name="node2"> doesn't have its own transition. but I expect super-state's transition is available then.
The process definition works if you test via ProcessDefinition.parseXmlResource(String xmlResource) without DB/Hibernate (like org.jbpm.graph.exe.SuperStateActionExecutionTest.testNestedSuperStateLeaveViaSuperStateTransition()).
What's the difference?
org.jbpm.graph.def.Node:
=========
public Transition getDefaultLeavingTransition() {
Transition defaultTransition = null;
if (leavingTransitions != null) {
// Select the first unconditional transition
for (Iterator i = leavingTransitions.iterator(); i.hasNext();) {
Transition auxTransition = (Transition) i.next();
if (auxTransition.getCondition() == null) {
defaultTransition = auxTransition;
break;
}
}
}
else if (superState != null) {
defaultTransition = superState.getDefaultLeavingTransition();
}
return defaultTransition;
}
=========
The logic of getDefaultLeavingTransition() depends on whether leavingTransitions is null or not. But in case that hibernate kicks lazy initialization, leavingTransitions will be a zero sized collection, not null.
BTW, I think the concept that super-state's transition can be chosen from nodes inside is better to be documented.
--
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
15 years, 9 months
[JBoss JIRA] Created: (JBPM-2792) Data manipulation with HQL / SQL nodes
by Peter Horvath (JIRA)
Data manipulation with HQL / SQL nodes
--------------------------------------
Key: JBPM-2792
URL: https://jira.jboss.org/jira/browse/JBPM-2792
Project: jBPM
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Affects Versions: jBPM 4.x
Reporter: Peter Horvath
Currently HQL / SQL nodes only allow you to run queries. It would be great if it was possible to run data manipulation operations (INSERT / UPDATE / DELETE) as well.
It should be quite easy to implement this by adding a new possible flag to the hql / sql node and calling org.hibernate.Query.executeUpdate() from org.jbpm.jpdl.internal.activity.HqlActivity.perform(OpenExecution) method:
if(isUpdate) { // isUpdate: this a new flag that indicates that this is a data manipulation operation
// execute update and store the number of entities / rows affected (inserted, updated or deleted) by this operation into the result variable
result = q.executeUpdate();
} else { if (isResultUnique) {
result = q.uniqueResult();
} else {
result = q.list();
}
}
--
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
15 years, 10 months
[JBoss JIRA] Created: (JBPM-2605) DbPersistenceServiceFactory should not close SessionFactory if it didn't opened it
by Stefano Travelli (JIRA)
DbPersistenceServiceFactory should not close SessionFactory if it didn't opened it
----------------------------------------------------------------------------------
Key: JBPM-2605
URL: https://jira.jboss.org/jira/browse/JBPM-2605
Project: jBPM
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: jBPM 3.2.7
Environment: JBoss 4.2.3, Seam 2.1
Reporter: Stefano Travelli
I configure JBpm with Seam 2.1 so that the JBpm SessionFactory is the same of the underlying SessionFactory used by the EntityManagerFactory in JPA.
In order to do so I include JBpm hibernate.cfg.xml in the persistence-unit. Then I declare the JNDI name in jbpm.cfg.xml:
<persistence-unit name="getin">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/getinDS</jta-data-source>
<propertyies>
<!--- ... --->
<property name="hibernate.session_factory_name" value="java:/getinSessionFactory"/>
<property name="hibernate.ejb.cfgfile" value="jbpm.hibernate.cfg.xml"/>
</properties>
</persistence-unit>
<jbpm-configuration>
<jbpm-context>
<service name="persistence">
<factory>
<bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory">
<field name="isTransactionEnabled">
<false/>
</field>
<field name="sessionFactoryJndiName">
<string value="java:/getinSessionFactory"/>
</field>
</bean>
</factory>
</service>
<service name="tx" factory="org.jbpm.tx.TxServiceFactory"/>
<service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory"/>
<service name="scheduler" factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory"/>
<service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory"/>
<service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory"/>
</jbpm-context>
</jbpm-configuration>
It works fine except that during test execution in the Seam enviroment JBpm context is opened and closed several times while the persistence unit stays.
However, as a JBpm context closes, DbPersistenceServiceFactory also closes the SessionFactory invalidating the EntityManagerFactory.
When DbPersistenceServiceFactory doesn't create the SessionFactory taking it from JNDI, it shouldn't close it as this should be a responsibility of the component who registered it in JNDI in first place.
The patch is simple:
public void close()
{
if (sessionFactory != null && sessionFactoryJndiName == null)
{
log.debug("closing hibernate session factory");
sessionFactory.close();
}
}
--
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
15 years, 10 months
[JBoss JIRA] Created: (JBPM-2913) Use expression as process duedate value
by Zhangqi Xiao (JIRA)
Use expression as process duedate value
---------------------------------------
Key: JBPM-2913
URL: https://jira.jboss.org/browse/JBPM-2913
Project: jBPM
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Runtime Engine
Affects Versions: jBPM 4.3
Environment: windows xp,mysql 5.0.22-community-nt
Reporter: Zhangqi Xiao
Fix For: jBPM 4.4
When configured expression as process duedate value as:
<timer duedate="#{process_duedate}"/>
and started process like:
Map<String, String> variables = new HashMap<String, String>();
variables.put("process_duedate", "24 business minutes");
ProcessInstance processInstance = executionService.startProcessInstanceByKey
("TimerRepeat", variables);
but engine reported :
"javax.el.PropertyNotFoundException: Cannot find property process_duedate"
The details on this issue, please reference to discussion named "Using expression as
process duedate value" and the link is:
https://community.jboss.org/thread/153992
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 10 months