[
http://jira.jboss.com/jira/browse/JBSEAM-2575?page=all ]
Peter Brewer updated JBSEAM-2575:
---------------------------------
Attachment: timertest.zip
Attached is a test project (created via seam-gen v2.0.0.GA) that can be used to replicate
this error.
It includes all the files generated by seam-gen *except for the bootstrap and lib
directories.* (due to size constraints)
In particular there is a ready to deploy timertest.ear file that will auto start the
workflow after one minute (and repeats every 5 minutes). The workflow has a start node, a
task node with a 15sec timeout and an end node.
There is also a timerTest.xhtml file that can be used to create the workflow via a
webpage.
Full file list:
timertest\.classpath
timertest\.project
timertest\.settings
timertest\build-dev.properties
timertest\build-prod.properties
timertest\build.properties
timertest\build.xml
timertest\classes
timertest\dist
timertest\explode.launch
timertest\filelist.txt
timertest\hibernate-console.properties
timertest\nbproject
timertest\resources
timertest\src
timertest\test-build
timertest\timertest.launch
timertest\view
timertest\.settings\org.hibernate.eclipse.console.prefs
timertest\classes\action
timertest\classes\test
timertest\classes\action\uk
timertest\classes\action\uk\co
timertest\classes\action\uk\co\iblocks
timertest\classes\action\uk\co\iblocks\timertest
timertest\classes\action\uk\co\iblocks\timertest\Authenticator.class
timertest\classes\action\uk\co\iblocks\timertest\JbpmScheduler.class
timertest\classes\action\uk\co\iblocks\timertest\StartupScheduler.class
timertest\classes\action\uk\co\iblocks\timertest\TimerTest.class
timertest\classes\action\uk\co\iblocks\timertest\TimerTestSchedule.class
timertest\classes\action\uk\co\iblocks\timertest\TimerTestWorkflow.class
timertest\classes\test\readme.txt
timertest\dist\timertest.ear
timertest\nbproject\debug-jboss.properties
timertest\nbproject\ide-file-targets.xml
timertest\nbproject\project.xml
timertest\resources\.gpd.timerTest.jpdl.xml
timertest\resources\components.properties
timertest\resources\hibernate.cfg.xml
timertest\resources\import-dev.sql
timertest\resources\import-prod.sql
timertest\resources\import-test.sql
timertest\resources\jbpm.cfg.xml
timertest\resources\messages_bg.properties
timertest\resources\messages_de.properties
timertest\resources\messages_en.properties
timertest\resources\messages_fr.properties
timertest\resources\messages_tr.properties
timertest\resources\META-INF
timertest\resources\seam-gen.reveng.xml
timertest\resources\seam.properties
timertest\resources\security.drl
timertest\resources\timertest-dev-ds.xml
timertest\resources\timertest-prod-ds.xml
timertest\resources\timerTest.jpdl.jpg
timertest\resources\timerTest.jpdl.xml
timertest\resources\WEB-INF
timertest\resources\META-INF\application.xml
timertest\resources\META-INF\ejb-jar.xml
timertest\resources\META-INF\jboss-app.xml
timertest\resources\META-INF\persistence-dev.xml
timertest\resources\META-INF\persistence-prod.xml
timertest\resources\META-INF\persistence-test.xml
timertest\resources\WEB-INF\components.xml
timertest\resources\WEB-INF\faces-config.xml
timertest\resources\WEB-INF\pages.xml
timertest\resources\WEB-INF\web.xml
timertest\src\action
timertest\src\model
timertest\src\test
timertest\src\action\uk
timertest\src\action\uk\co
timertest\src\action\uk\co\iblocks
timertest\src\action\uk\co\iblocks\timertest
timertest\src\action\uk\co\iblocks\timertest\Authenticator.java
timertest\src\action\uk\co\iblocks\timertest\JbpmScheduler.java
timertest\src\action\uk\co\iblocks\timertest\StartupScheduler.java
timertest\src\action\uk\co\iblocks\timertest\TimerTest.java
timertest\src\action\uk\co\iblocks\timertest\TimerTestSchedule.java
timertest\src\action\uk\co\iblocks\timertest\TimerTestWorkflow.java
timertest\src\test\readme.txt
timertest\test-build\META-INF
timertest\test-build\uk
timertest\test-build\WEB-INF
timertest\test-build\uk\co
timertest\test-build\uk\co\iblocks
timertest\test-build\uk\co\iblocks\timertest
timertest\test-build\uk\co\iblocks\timertest\Authenticator.class
timertest\test-build\uk\co\iblocks\timertest\Schedulable.class
timertest\test-build\uk\co\iblocks\timertest\StartupScheduler.class
timertest\test-build\uk\co\iblocks\timertest\TimerTestSchedule.class
timertest\test-build\uk\co\iblocks\timertest\TimerTestWorkflow.class
timertest\view\error.xhtml
timertest\view\home.xhtml
timertest\view\img
timertest\view\index.html
timertest\view\layout
timertest\view\login.page.xml
timertest\view\login.xhtml
timertest\view\stylesheet
timertest\view\timerTest.page.xml
timertest\view\timerTest.xhtml
timertest\view\img\cal-next.png
timertest\view\img\cal-prev.png
timertest\view\img\dtpick.gif
timertest\view\layout\display.xhtml
timertest\view\layout\edit.xhtml
timertest\view\layout\loginout.xhtml
timertest\view\layout\menu.xhtml
timertest\view\layout\template.xhtml
timertest\view\stylesheet\theme.css
The jta transaction manager returns a null transaction when ending a
process that was triggered by a jbpm timer.
----------------------------------------------------------------------------------------------------------------
Key: JBSEAM-2575
URL:
http://jira.jboss.com/jira/browse/JBSEAM-2575
Project: JBoss Seam
Issue Type: Bug
Components: BPM
Affects Versions: 2.0.0.GA
Environment: JBoss AS 4.2.1.GA
JBoss Seam 2.0.0.GA (with Hibernate 3.2.2.GA and JBPM JPDL 3.2.2)
Reporter: Peter Brewer
Attachments: timertest.zip
Summary:
The jta transaction manager returns a null transaction when ending a process that was
triggered by a jbpm timer.
Steps to reproduce:
Define a jbpm process containing a task timer with an expiry.
Start the process and progress to the task with the timer defined.
Wait for the timer to fire.
The timer fires and progresses to the end of the workflow. This causes a call to
deleteTimersByProcessInstance:
org.jbpm.db.JobSession.java
205 public void deleteJobsForProcessInstance(ProcessInstance processInstance) {
206 try {
207 Transaction transaction = session.getTransaction();
208 transaction.registerSynchronization(new
DeleteJobsSynchronization(processInstance));
209 } catch (Exception e) {
210 log.error(e);
211 throw new JbpmException("couldn't delete jobs for
'"+processInstance+"'", e);
212 }
213 }
Stepping through the code, on line 207 the transaction variable is populated (i.e. not
null) but when it calls transaction.registerSynchronization(...):
org.hibernate.transaction.JTATransaction.java
300 public void registerSynchronization(Synchronization sync) throws HibernateException
{
301 if (getTransactionManager()==null) {
302 throw new IllegalStateException("JTA TransactionManager not available");
303 }
304 else {
305 try {
306 getTransactionManager().getTransaction().registerSynchronization(sync);
307 }
308 catch (Exception e) {
309 throw new TransactionException("could not register synchronization",
e);
310 }
311 }
312 }
the call on line 306 to getTransactionManager().getTransaction() returns null causing a
NPE.
--
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