<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
NullPointerException when timeout transition maps to a Java activity
</h3>
<span style="margin-bottom: 10px;">
created by <a href="http://community.jboss.org/people/sameeh.harfoush">Sameeh Harfoush</a> in <i>jBPM</i> - <a href="http://community.jboss.org/message/534568#534568">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Hello,<br/>Below is a section of a workflow I am working on <br/>When triggering the timer the transition “Manager timeout” goes to  the java activity “Send timesheet to accounts” and executes the “manageTimesheet” method which only executes System.out to the console. All goes well but I always get the below null pointer exception. <br/>I tried mapping the transition to other than java task it works fine. The problem is in my implantation or the jpdl Timer?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Thanks</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        <task g="105,159,156,52" name="Manager reviews timesheet"><br/>            <assignment-handler><br/>                <field name="assignee"><br/>                    <string value="Mahmoud" /><br/>                </field><br/>            </assignment-handler></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><br/>            <transition g="433,186;435,673:-43,-16" name="Manager timeout"  to="Send timesheet to accounts"><br/>                <timer duedate="1 hour" /><br/>            </transition><br/>            <transition g="-68,-18" name="Manager decision" to="Manager evaluation" /><br/>        </task><br/>        <decision g="159,267,48,48" name="Manager evaluation"><br/>            <handler /><br/>            <transition g="-93,-11" name="Approve" to="Send timesheet to accounts" /><br/>            <transition g="348,292;352,673:-82,-206" name="Reject" to="Employee submits timesheet" /><br/>        </decision><br/>        <java g="102,356,163,52"<br/>            method="manageTimesheet" name="Send timesheet to accounts"><br/>            <transition g="-83,-8" name="to Bookkeeper"    to="Bookkeeper reviews and posts timesheet" /><br/>        </java><br/>        <br/>        <br/>### EXCEPTION ###########################################<br/>10:25:51,983 SEV   | [ExecuteJobCmd] exception while executing 'timer[550012|2010-03-30 11:25:51,000|Manager timeout]'<br/>java.lang.NullPointerException<br/>    at org.jbpm.pvm.internal.wire.usercode.UserCodeReference.getProcessDefinition(UserCodeReference.java:75)<br/>    at org.jbpm.pvm.internal.wire.usercode.UserCodeReference.getObject(UserCodeReference.java:60)<br/>    at org.jbpm.pvm.internal.wire.usercode.UserCodeReference.getObject(UserCodeReference.java:51)<br/>    at org.jbpm.pvm.internal.model.ExecutionImpl.initializeAssignments(ExecutionImpl.java:759)<br/>    at org.jbpm.jpdl.internal.activity.TaskActivity.execute(TaskActivity.java:95)<br/>    at org.jbpm.jpdl.internal.activity.TaskActivity.execute(TaskActivity.java:58)<br/>    at org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:60)<br/>    at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:656)<br/>    at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:616)<br/>    at org.jbpm.pvm.internal.model.op.TransitionEndActivity.perform(TransitionEndActivity.java:58)<br/>    at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:656)<br/>    at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:616)<br/>    at org.jbpm.pvm.internal.model.ExecutionImpl.signal(ExecutionImpl.java:417)<br/>    at org.jbpm.pvm.internal.model.ExecutionImpl.signal(ExecutionImpl.java:403)<br/>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br/>    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br/>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br/>    at java.lang.reflect.Method.invoke(Unknown Source)<br/>    at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)<br/>    at org.jbpm.pvm.internal.model.ExecutionImpl_$$_javassist_5.signal(ExecutionImpl_$$_javassist_5.java)<br/>    at org.jbpm.pvm.internal.job.TimerImpl.execute(TimerImpl.java:91)<br/>    at org.jbpm.pvm.internal.job.TimerImpl.execute(TimerImpl.java:52)<br/>    at org.jbpm.pvm.internal.cmd.ExecuteJobCmd.execute(ExecuteJobCmd.java:76)<br/>    at org.jbpm.pvm.internal.cmd.ExecuteJobCmd.execute(ExecuteJobCmd.java:42)<br/>    at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)<br/>    at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:54)<br/>    at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)<br/>    at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)<br/>    at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)<br/>    at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)<br/>    at org.jbpm.pvm.internal.svc.ManagementServiceImpl.executeJob(ManagementServiceImpl.java:37)<br/>    at com.roxana.test.jpdl.EmployeeTimesheetTest.testEmployeeTimesheetWorkflow(EmployeeTimesheetTest.java:52)<br/>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br/>    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br/>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br/>    at java.lang.reflect.Method.invoke(Unknown Source)<br/>    at junit.framework.TestCase.runTest(TestCase.java:164)<br/>    at org.jbpm.test.BaseJbpmTestCase.runTest(BaseJbpmTestCase.java:80)<br/>    at junit.framework.TestCase.runBare(TestCase.java:130)<br/>    at junit.framework.TestResult$1.protect(TestResult.java:106)<br/>    at junit.framework.TestResult.runProtected(TestResult.java:124)<br/>    at junit.framework.TestResult.run(TestResult.java:109)<br/>    at junit.framework.TestCase.run(TestCase.java:120)<br/>    at junit.framework.TestSuite.runTest(TestSuite.java:230)<br/>    at junit.framework.TestSuite.run(TestSuite.java:225)<br/>    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)<br/>    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)<br/>    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)<br/>    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)<br/>    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)<br/>    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)      </p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/534568#534568">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in jBPM at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>