Heri Bender [
http://community.jboss.org/people/hbender] replied to the discussion
"Starting a BusinessProcess out of a PageFlow"
To view the discussion, visit:
http://community.jboss.org/message/543810#543810
--------------------------------------------------------------
Hi Alejandro
Thanks that you want to have a closer look.
Attached an archive of a project which shows the problem (remark: it was a bit too big. I
removed the lib jars from todoList/WebContent/WEB-INF/lib. I assume, you can add them
manually again)
It is a seam generated ear project, in fact the todoList-Demo of seam 2.2. jBPM is version
3.2.5, the Project was maintained in JBossDevStudio 3.0.
The problem arises when deploying:
12:24:05.223 (3853197) ERROR [HDScanner] org.jbpm.jpdl.xml.JpdlXmlReader - couldn't
parse process definition
java.lang.NullPointerException
at
org.jbpm.graph.node.DbSubProcessResolver.findSubProcess(DbSubProcessResolver.java:43)
at org.jboss.seam.bpm.Jbpm$SeamSubProcessResolver.findSubProcess(Jbpm.java:374)
at org.jbpm.graph.node.ProcessState.read(ProcessState.java:90)
at org.jbpm.jpdl.xml.JpdlXmlReader.readNodes(JpdlXmlReader.java:261)
at org.jboss.seam.bpm.PageflowParser.readNodes(PageflowParser.java:41)
at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:157)
at org.jboss.seam.bpm.Jbpm.parseInputSource(Jbpm.java:359)
at org.jboss.seam.bpm.Jbpm.getPageflowDefinitionFromResource(Jbpm.java:165)
at org.jboss.seam.bpm.Jbpm.installPageflowDefinitions(Jbpm.java:278)
at org.jboss.seam.bpm.Jbpm.startup(Jbpm.java:81)
...
When stepping through the code I can see that the DbSubProcessResolver.findSubProcess()
method does not get a GraphSession (line 43), because I forgot to include the
<service name="persistence"
factory="org.jbpm.persistence.db.DbPersistenceServiceFactory" />
line in jbpm.cfg.xml. Astonishing, because before the ProcessDefinition was entered
successfully into DB
After I have added this line, the error occurs already before above code is executed:
ERROR [main ] org.jbpm.persistence.db.DbPersistenceService - hibernate commit failed
org.hibernate.TransactionException: Transaction not successfully
started
at
org.hibernate.transaction.JTATransaction.commit(JTATransaction.java:134)
at
org.jbpm.persistence.db.DbPersistenceService.commit(DbPersistenceService.java:266)
at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:222)
....
Analyzing the log shows that now different persistence handlers are involved:
Log-Output (without having declared persistence-service -> Error is no GraphSession):
--------------------------------------------------------------------------------------
INFO [HDScanner] org.jboss.logging.Logger.info(Logger.java:296) - JNDI InitialContext
properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory,
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}
DEBUG [HDScanner]
org.jbpm.persistence.jta.JtaDbPersistenceService.beginUserTransaction(JtaDbPersistenceService.java:74)
- begin user transaction
DEBUG [HDScanner]
org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:104) -
using current hibernate session
INFO [HDScanner] org.jboss.logging.util.LoggerStream.write(LoggerStream.java:156) -
Hibernate: select processdef0_.ID_ as ID1_224_, processdef0_.NAME_ as NAME3_224_,
processdef0_.DESCRIPTION_ as DESCRIPT4_224_, processdef0_.VERSION_ as VERSION5_224_,
processdef0_.ISTERMINATIONIMPLICIT_ as ISTERMIN6_224_, processdef0_.STARTSTATE_ as
STARTSTATE7_224_ from JBPM_PROCESSDEFINITION processdef0_ where processdef0_.NAME_=? order
by processdef0_.VERSION_ desc limit ?
INFO [HDScanner] org.jboss.logging.util.LoggerStream.write(LoggerStream.java:156) -
Hibernate: insert into JBPM_PROCESSDEFINITION (NAME_, DESCRIPTION_, VERSION_,
ISTERMINATIONIMPLICIT_, STARTSTATE_, CLASS_) values (?, ?, ?, ?, ?, 'P')
...
INFO [HDScanner] org.jboss.logging.util.LoggerStream.write(LoggerStream.java:156) -
Hibernate: insert into JBPM_MODULEDEFINITION (NAME_, PROCESSDEFINITION_, STARTTASK_,
CLASS_) values (?, ?, ?, 'T')
DEBUG [HDScanner] org.jbpm.JbpmContext.close(JbpmContext.java:125) - closing jbpmContext
org.jbpm.JbpmContext@5de3bd
DEBUG [HDScanner]
org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:92)
- committing user transaction
INFO [HDScanner] org.jboss.logging.util.LoggerStream.write(LoggerStream.java:156) -
Hibernate: update JBPM_PROCESSDEFINITION set NAME_=?, DESCRIPTION_=?, VERSION_=?,
ISTERMINATIONIMPLICIT_=?, STARTSTATE_=? where ID_=?
...
INFO [HDScanner] org.jboss.logging.util.LoggerStream.write(LoggerStream.java:156) -
Hibernate: update JBPM_TRANSITION set TO_=? where ID_=?
DEBUG [HDScanner]
org.jbpm.configuration.JbpmContextInfo.createObject(JbpmContextInfo.java:145) - creating
jbpm context with service factories '[]'
DEBUG [HDScanner] org.jbpm.JbpmContext.<init>(JbpmContext.java:115) - creating
org.jbpm.JbpmContext@1499884
DEBUG [HDScanner]
org.jbpm.configuration.JbpmContextInfo.createObject(JbpmContextInfo.java:145) - creating
jbpm context with service factories '[]'
DEBUG [HDScanner] org.jbpm.JbpmContext.<init>(JbpmContext.java:115) - creating
org.jbpm.JbpmContext@9fa838
ERROR [HDScanner]
org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:168) -
couldn't parse process definition
org.dom4j.DocumentException: Read error Nested exception: Read error
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
at org.jbpm.jpdl.xml.JpdlParser.parse(JpdlParser.java:66)
at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:142)
at org.jboss.seam.bpm.Jbpm.parseInputSource(Jbpm.java:359)
...
Log-Output (without having declared persistence-service -> error arise somewhere in the
persistence handlers):
-------------------------------------------------------------------------------------------------------------
DEBUG [main ] org.jbpm.persistence.db.DbPersistenceService - creating hibernate session
DEBUG [main ] org.jbpm.persistence.db.DbPersistenceService - beginning hibernate
transaction
DEBUG [main ] org.jbpm.persistence.db.DbPersistenceService - begun hibernate transaction
org.hibernate.transaction.JTATransaction@8422f0
INFO [main ] STDOUT - Hibernate: select processdef0_.ID_ as ID1_0_, processdef0_.NAME_
as NAME3_0_, processdef0_.DESCRIPTION_ as DESCRIPT4_0_, processdef0_.VERSION_ as
VERSION5_0_, processdef0_.ISTERMINATIONIMPLICIT_ as ISTERMIN6_0_, processdef0_.STARTSTATE_
as STARTSTATE7_0_ from JBPM_PROCESSDEFINITION processdef0_ where processdef0_.NAME_=?
order by processdef0_.VERSION_ desc limit ?
...
INFO [main ] STDOUT - Hibernate: insert into JBPM_MODULEDEFINITION (NAME_,
PROCESSDEFINITION_, STARTTASK_, CLASS_) values (?, ?, ?, 'T')
DEBUG [main ] org.jbpm.JbpmContext - closing jbpmContext org.jbpm.JbpmContext@13f557
DEBUG [main ] org.jbpm.persistence.db.DbPersistenceService - committing
org.hibernate.transaction.JTATransaction@8422f0
INFO [main ] STDOUT - Hibernate: update JBPM_PROCESSDEFINITION set NAME_=?,
DESCRIPTION_=?, VERSION_=?, ISTERMINATIONIMPLICIT_=?, STARTSTATE_=? where ID_=?
...
INFO [main ] STDOUT - Hibernate: update JBPM_TRANSITION set TO_=? where ID_=?
DEBUG [main ] org.jbpm.persistence.db.DbPersistenceService - closing hibernate session
DEBUG [main ] org.jbpm.persistence.db.DbPersistenceService - committing
org.hibernate.transaction.JTATransaction@8422f0
ERROR [main ] org.jbpm.persistence.db.DbPersistenceService - hibernate commit failed
org.hibernate.TransactionException: Transaction not successfully started
at org.hibernate.transaction.JTATransaction.commit(JTATransaction.java:134)
at org.jbpm.persistence.db.DbPersistenceService.commit(DbPersistenceService.java:266)
at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:222)
at org.jbpm.svc.Services.close(Services.java:294)
at org.jbpm.JbpmContext.close(JbpmContext.java:136)
at org.jboss.seam.bpm.Jbpm.installProcessDefinitions(Jbpm.java:304)
at org.jboss.seam.bpm.Jbpm.startup(Jbpm.java:80)
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/543810#543810]
Start a new discussion in jBPM at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]