AssignmentHandler deployment, NullPointerException
mackcom Nov 10, 2005 10:26 AMI've go jBPM (3.0.1 from the starters kit) up and running on jBoss AS 4.0.2
(the server is on localhost) with a MS SQL 2000 database. This is running
in our test environmnet on Windows XP.
I using GPD (3.0.2) on Eclipse 3.1.0 (from JBossIDE-1.5RC1).
My problem is can get an assignment handler to work.
I'm getting a NullPointerException when the toke reaches the task that needs assignment.
I suspect that this error is because the Assignment Handler class can't be found.
I don't know where to put it.
I've been deploying the process with GPD from the context menu "Deploy Process Archive",
then context menu Deployment -> Deploy To.... Am I doing this correctly?
Are both Deploy Process Archive and Deployment -> Deploy To... necessary?
What is the difference between the two?
I've also copied the class to the deploy/testProcess.par/classes/... folder
on the test server, didn't help.
I made a jar containing the assignment handler class and copied that to deploy/testProcess.par/ didn't work.
Then I put the jar in deploy/testProcess.par/lib didn't work.
Then I tried JBOSS_ROOT/server/default/lib didn't work,
then I tried JBOSS_ROOT/server/default/deploy and that didn't work.
I saw a post suggesting that a property in jbpm.properties needed to be set to
tell it what assignment handler class to use. Is this necessary, if so what is the name of the property?
I wouldn't think that you would set the assignment handler in the properties file because:
A) you might need to use different assignment handlers for different tasks or process definitions.
B) The class name is set in the assignment tag of the process definition, so it doesn't seem necessary to set it in the properties file.
Please let me know what I'm missing.
Below is the code, config and stack trace for this issue:
Process definition:
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="http://jbpm.org/3/jpdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jbpm.org/3/jpdl http://jbpm.org/xsd/jpdl-3.0.xsd" name="testProcess"> <start-state name="start"> <transition name="tr1" to="task1"></transition> </start-state> <task-node name="task1"> <task name="task1"> <assignment class="com.benderson.jbpm.poprocess.task.POProcessApprovePOTask"></assignment> </task> <transition name="tr1" to="end1"> </transition> </task-node> <end-state name="end1"></end-state> </process-definition>
Assignment Handler:
package com.benderson.jbpm.poprocess.task; import org.jbpm.graph.exe.ExecutionContext; import org.jbpm.taskmgmt.def.AssignmentHandler; import org.jbpm.taskmgmt.exe.Assignable; public class POProcessApprovePOTask implements AssignmentHandler { private static final long serialVersionUID = 2L; public POProcessApprovePOTask() {} public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception { System.out.println("WWWWWWWWWWWW in Process TASK"); assignable.setActorId("ejm"); } }
jbpm.properties file:
jbpm.scheduler.service.factory=org.jbpm.scheduler.impl.SchedulerServiceImpl jbpm.task.instance.class=org.jbpm.taskmgmt.exe.TaskInstance # uncomment the next line if JbpmSessionFactory.getInstance() # should lookup the singleton instance from JNDI instead of creating # a default one. # jbpm.session.factory.jndi.name=java:/jbpm/JbpmSessionFactory # uncomment the next line to use the file system instead of the database for # storing files related to a process definition # # jbpm.files.dir=c:/jbpm.data # resource path to a properties file that will overwrite all the hibernate # properties. For database specific builds in db project there is a different # hibernate.properties file on the classpath for each database. You could change # the default database for any testing runs by uncommenting the next line and # adding a hibernate.properties file in the basedir. # jbpm.hibernate.cfg.xml=jbpm.hibernate.cfg.xml jbpm.hibernate.properties=jbpm.hibernate.properties
jbpm.hibernate.properties
hibernate.dialect=org.hibernate.dialect.SQLServerDialect hibernate.connection.driver_class=net.sourceforge.jtds.jdbc.Driver hibernate.connection.url=jdbc:jtds:sqlserver://b00jh:1433/jbpmtest hibernate.connection.username=JRun hibernate.connection.password=yellowsnow hibernate.show_sql=false hibernate.c3p0.min_size=1 hibernate.c3p0.max_size=3 hibernate.query.substitutions=true 1, false 0
Test code:
package com.benderson.test; import org.jbpm.db.JbpmSession; import org.jbpm.db.JbpmSessionFactory; import org.jbpm.graph.def.ProcessDefinition; import org.jbpm.graph.exe.ProcessInstance; import org.jbpm.graph.exe.Token; import junit.framework.TestCase; public class testProcessTest extends TestCase { static JbpmSessionFactory jbpmSessionFactory = JbpmSessionFactory.buildJbpmSessionFactory(); public void testTestProcess() { // start po process startTestProcess(); } private void startTestProcess() { // Let's open a new persistence session JbpmSession jbpmSession = jbpmSessionFactory.openJbpmSession(); // ... and begin a transaction on the persistence session. jbpmSession.beginTransaction(); // Now we can query the database for the process definition that we // deployed above. ProcessDefinition processDefinition = jbpmSession .getGraphSession() .findLatestProcessDefinition("testProcess"); // With the processDefinition that we retrieved from the database, we // can create an execution of the process definition just like in the // hello world example (which was without persistence). ProcessInstance processInstance = new ProcessInstance(processDefinition); // confirm we are at the start Token token = processInstance.getRootToken(); assertEquals("start", token.getNode().getName()); // assign PO Number and Department processInstance.getContextInstance().setVariable("PONumber", "123"); processInstance.getContextInstance().setVariable("Department", "IT"); token.signal(); // Now the processInstance is saved in the database. So the // current state of the execution of the process is stored in the // database. jbpmSession .getGraphSession() .saveProcessInstance(processInstance); // The method below will get the process instance back out // of the database and resume execution by providing another // external signal. // At the end of the webapp action, the transaction is committed. jbpmSession.commitTransaction(); // And close the jbpmSession. jbpmSession.close(); } }
And finally the output from the test code:
09:39:42,406 DEBUG JbpmConfiguration : jbpm.hibernate.properties=hibernate.properties 09:39:42,453 INFO Environment : Hibernate 3.0.5 09:39:42,453 INFO Environment : loaded properties from resource hibernate.properties: {hibernate.connection.driver_class=net.sourceforge.jtds.jdbc.Driver, hibernate.cglib.use_reflection_optimizer=true, hibernate.c3p0.max_size=3, hibernate.dialect=org.hibernate.dialect.SQLServerDialect, hibernate.c3p0.min_size=1, hibernate.query.substitutions=true 1, false 0, hibernate.connection.username=JRun, hibernate.connection.url=jdbc:jtds:sqlserver://b00jh:1433/jbpmtest , hibernate.show_sql=false, hibernate.connection.password=****} 09:39:42,453 INFO Environment : using CGLIB reflection optimizer 09:39:42,453 INFO Environment : using JDK 1.4 java.sql.Timestamp handling 09:39:42,531 DEBUG JbpmSessionFactory : using the default hibernate configuration file: hibernate.cfg.xml 09:39:42,531 INFO Configuration : configuring from resource: /hibernate.cfg.xml 09:39:42,531 INFO Configuration : Configuration resource: /hibernate.cfg.xml 09:39:42,859 INFO Configuration : Mapping resource: org/jbpm/identity/User.hbm.xml 09:39:42,999 INFO HbmBinder : Mapping class: org.jbpm.identity.User -> JBPM_ID_USER 09:39:43,031 INFO HbmBinder : Mapping collection: org.jbpm.identity.User.permissions -> JBPM_ID_PERMISSIONS 09:39:43,031 INFO Configuration : Mapping resource: org/jbpm/identity/Group.hbm.xml 09:39:43,062 INFO HbmBinder : Mapping class: org.jbpm.identity.Group -> JBPM_ID_GROUP 09:39:43,078 INFO HbmBinder : Mapping collection: org.jbpm.identity.Group.permissions -> JBPM_ID_PERMISSIONS 09:39:43,078 INFO Configuration : Mapping resource: org/jbpm/identity/Membership.hbm.xml 09:39:43,109 INFO HbmBinder : Mapping class: org.jbpm.identity.Membership -> JBPM_ID_MEMBERSHIP 09:39:43,187 INFO HbmBinder : Mapping collection: org.jbpm.identity.Membership.permissions -> JBPM_ID_PERMISSIONS 09:39:43,187 INFO Configuration : Mapping resource: org/jbpm/graph/def/ProcessDefinition.hbm.xml 09:39:43,218 INFO HbmBinder : Mapping class: org.jbpm.graph.def.ProcessDefinition -> JBPM_PROCESSDEFINITION 09:39:43,249 INFO Configuration : Mapping resource: org/jbpm/graph/def/Node.hbm.xml 09:39:43,312 INFO HbmBinder : Mapping class: org.jbpm.graph.def.Node -> JBPM_NODE 09:39:43,328 INFO Configuration : Mapping resource: org/jbpm/graph/def/Transition.hbm.xml 09:39:43,343 INFO HbmBinder : Mapping class: org.jbpm.graph.def.Transition -> JBPM_TRANSITION 09:39:43,343 INFO Configuration : Mapping resource: org/jbpm/graph/def/Event.hbm.xml 09:39:43,359 INFO HbmBinder : Mapping class: org.jbpm.graph.def.Event -> JBPM_EVENT 09:39:43,359 INFO Configuration : Mapping resource: org/jbpm/graph/def/Action.hbm.xml 09:39:43,374 INFO HbmBinder : Mapping class: org.jbpm.graph.def.Action -> JBPM_ACTION 09:39:43,374 INFO Configuration : Mapping resource: org/jbpm/graph/def/SuperState.hbm.xml 09:39:43,468 INFO HbmBinder : Mapping subclass: org.jbpm.graph.def.SuperState -> JBPM_NODE 09:39:43,468 INFO Configuration : Mapping resource: org/jbpm/graph/def/ExceptionHandler.hbm.xml 09:39:43,484 INFO HbmBinder : Mapping class: org.jbpm.graph.def.ExceptionHandler -> JBPM_EXCEPTIONHANDLER 09:39:43,484 INFO Configuration : Mapping resource: org/jbpm/instantiation/Delegation.hbm.xml 09:39:43,515 INFO HbmBinder : Mapping class: org.jbpm.instantiation.Delegation -> JBPM_DELEGATION 09:39:43,515 INFO Configuration : Mapping resource: org/jbpm/graph/node/StartState.hbm.xml 09:39:43,515 INFO HbmBinder : Mapping subclass: org.jbpm.graph.node.StartState -> JBPM_NODE 09:39:43,531 INFO Configuration : Mapping resource: org/jbpm/graph/node/EndState.hbm.xml 09:39:43,531 INFO HbmBinder : Mapping subclass: org.jbpm.graph.node.EndState -> JBPM_NODE 09:39:43,531 INFO Configuration : Mapping resource: org/jbpm/graph/node/ProcessState.hbm.xml 09:39:43,546 INFO HbmBinder : Mapping subclass: org.jbpm.graph.node.ProcessState -> JBPM_NODE 09:39:43,546 INFO Configuration : Mapping resource: org/jbpm/graph/node/Decision.hbm.xml 09:39:43,609 INFO HbmBinder : Mapping subclass: org.jbpm.graph.node.Decision -> JBPM_NODE 09:39:43,609 INFO HbmBinder : Mapping collection: org.jbpm.graph.node.Decision.decisionConditions -> JBPM_DECISIONCONDITIONS 09:39:43,609 INFO Configuration : Mapping resource: org/jbpm/graph/node/Fork.hbm.xml 09:39:43,624 INFO HbmBinder : Mapping subclass: org.jbpm.graph.node.Fork -> JBPM_NODE 09:39:43,624 INFO Configuration : Mapping resource: org/jbpm/graph/node/Join.hbm.xml 09:39:43,624 INFO HbmBinder : Mapping subclass: org.jbpm.graph.node.Join -> JBPM_NODE 09:39:43,624 INFO Configuration : Mapping resource: org/jbpm/graph/node/State.hbm.xml 09:39:43,656 INFO HbmBinder : Mapping subclass: org.jbpm.graph.node.State -> JBPM_NODE 09:39:43,656 INFO Configuration : Mapping resource: org/jbpm/graph/node/TaskNode.hbm.xml 09:39:43,671 INFO HbmBinder : Mapping subclass: org.jbpm.graph.node.TaskNode -> JBPM_NODE 09:39:43,671 INFO Configuration : Mapping resource: org/jbpm/graph/action/Script.hbm.xml 09:39:43,703 INFO HbmBinder : Mapping subclass: org.jbpm.graph.action.Script -> JBPM_ACTION 09:39:43,703 INFO Configuration : Mapping resource: org/jbpm/context/def/ContextDefinition.hbm.xml 09:39:43,718 INFO Configuration : Mapping resource: org/jbpm/context/def/VariableAccess.hbm.xml 09:39:43,718 INFO HbmBinder : Mapping class: org.jbpm.context.def.VariableAccess -> JBPM_VARIABLEACCESS 09:39:43,765 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml 09:39:43,781 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/def/Swimlane.hbm.xml 09:39:43,796 INFO HbmBinder : Mapping class: org.jbpm.taskmgmt.def.Swimlane -> JBPM_SWIMLANE 09:39:43,796 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/def/Task.hbm.xml 09:39:43,812 INFO HbmBinder : Mapping class: org.jbpm.taskmgmt.def.Task -> JBPM_TASK 09:39:43,828 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/def/TaskController.hbm.xml 09:39:43,828 INFO HbmBinder : Mapping class: org.jbpm.taskmgmt.def.TaskController -> JBPM_TASKCONTROLLER 09:39:43,828 INFO Configuration : Mapping resource: org/jbpm/module/def/ModuleDefinition.hbm.xml 09:39:43,843 INFO HbmBinder : Mapping class: org.jbpm.module.def.ModuleDefinition -> JBPM_MODULEDEFINITION 09:39:43,843 INFO Configuration : Mapping resource: org/jbpm/bytes/ByteArray.hbm.xml 09:39:43,859 INFO HbmBinder : Mapping class: org.jbpm.bytes.ByteArray -> JBPM_BYTEARRAY 09:39:43,859 INFO HbmBinder : Mapping collection: org.jbpm.bytes.ByteArray.byteBlocks -> JBPM_BYTEBLOCK 09:39:43,859 INFO Configuration : Mapping resource: org/jbpm/file/def/FileDefinition.hbm.xml 09:39:43,906 INFO HbmBinder : Mapping subclass: org.jbpm.file.def.FileDefinition -> JBPM_MODULEDEFINITION 09:39:43,921 INFO Configuration : Mapping resource: org/jbpm/scheduler/def/CreateTimerAction.hbm.xml 09:39:43,921 INFO HbmBinder : Mapping subclass: org.jbpm.scheduler.def.CreateTimerAction -> JBPM_ACTION 09:39:43,921 INFO Configuration : Mapping resource: org/jbpm/scheduler/def/CancelTimerAction.hbm.xml 09:39:43,937 INFO HbmBinder : Mapping subclass: org.jbpm.scheduler.def.CancelTimerAction -> JBPM_ACTION 09:39:43,937 INFO Configuration : Mapping resource: org/jbpm/graph/exe/Comment.hbm.xml 09:39:43,953 INFO HbmBinder : Mapping class: org.jbpm.graph.exe.Comment -> JBPM_COMMENT 09:39:43,953 INFO Configuration : Mapping resource: org/jbpm/graph/exe/ProcessInstance.hbm.xml 09:39:43,953 INFO HbmBinder : Mapping class: org.jbpm.graph.exe.ProcessInstance -> JBPM_PROCESSINSTANCE 09:39:43,968 INFO Configuration : Mapping resource: org/jbpm/graph/exe/Token.hbm.xml 09:39:43,968 INFO HbmBinder : Mapping class: org.jbpm.graph.exe.Token -> JBPM_TOKEN 09:39:43,984 INFO Configuration : Mapping resource: org/jbpm/graph/exe/RuntimeAction.hbm.xml 09:39:43,999 INFO HbmBinder : Mapping class: org.jbpm.graph.exe.RuntimeAction -> JBPM_RUNTIMEACTION 09:39:43,999 INFO Configuration : Mapping resource: org/jbpm/module/exe/ModuleInstance.hbm.xml 09:39:43,999 INFO HbmBinder : Mapping class: org.jbpm.module.exe.ModuleInstance -> JBPM_MODULEINSTANCE 09:39:43,999 INFO Configuration : Mapping resource: org/jbpm/context/exe/ContextInstance.hbm.xml 09:39:44,062 INFO HbmBinder : Mapping subclass: org.jbpm.context.exe.ContextInstance -> JBPM_MODULEINSTANCE 09:39:44,062 INFO Configuration : Mapping resource: org/jbpm/context/exe/TokenVariableMap.hbm.xml 09:39:44,078 INFO HbmBinder : Mapping class: org.jbpm.context.exe.TokenVariableMap -> JBPM_TOKENVARIABLEMAP 09:39:44,078 INFO Configuration : Mapping resource: org/jbpm/context/exe/VariableInstance.hbm.xml 09:39:44,093 INFO HbmBinder : Mapping class: org.jbpm.context.exe.VariableInstance -> JBPM_VARIABLEINSTANCE 09:39:44,093 INFO Configuration : Mapping resource: org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml 09:39:44,109 INFO HbmBinder : Mapping subclass: org.jbpm.context.exe.variableinstance.ByteArrayInstance -> JBPM_VARIABLEINSTANCE 09:39:44,109 INFO Configuration : Mapping resource: org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml 09:39:44,124 INFO HbmBinder : Mapping subclass: org.jbpm.context.exe.variableinstance.DateInstance -> JBPM_VARIABLEINSTANCE 09:39:44,124 INFO Configuration : Mapping resource: org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml 09:39:44,140 INFO HbmBinder : Mapping subclass: org.jbpm.context.exe.variableinstance.DoubleInstance -> JBPM_VARIABLEINSTANCE 09:39:44,140 INFO Configuration : Mapping resource: org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml 09:39:44,140 INFO HbmBinder : Mapping subclass: org.jbpm.context.exe.variableinstance.HibernateLongInstance -> JBPM_VARIABLEINSTANCE 09:39:44,140 INFO Configuration : Mapping resource: org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml 09:39:44,187 INFO HbmBinder : Mapping subclass: org.jbpm.context.exe.variableinstance.HibernateStringInstance -> JBPM_VARIABLEINSTANCE 09:39:44,187 INFO Configuration : Mapping resource: org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml 09:39:44,203 INFO HbmBinder : Mapping subclass: org.jbpm.context.exe.variableinstance.LongInstance -> JBPM_VARIABLEINSTANCE 09:39:44,203 INFO Configuration : Mapping resource: org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml 09:39:44,218 INFO HbmBinder : Mapping subclass: org.jbpm.context.exe.variableinstance.StringInstance -> JBPM_VARIABLEINSTANCE 09:39:44,218 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml 09:39:44,249 INFO HbmBinder : Mapping subclass: org.jbpm.taskmgmt.exe.TaskMgmtInstance -> JBPM_MODULEINSTANCE 09:39:44,249 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml 09:39:44,265 INFO HbmBinder : Mapping class: org.jbpm.taskmgmt.exe.TaskInstance -> JBPM_TASKINSTANCE 09:39:44,281 INFO HbmBinder : Mapping collection: org.jbpm.taskmgmt.exe.TaskInstance.pooledActors -> JBPM_TASKACTORPOOL 09:39:44,281 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/exe/PooledActor.hbm.xml 09:39:44,296 INFO HbmBinder : Mapping class: org.jbpm.taskmgmt.exe.PooledActor -> JBPM_POOLEDACTOR 09:39:44,312 INFO HbmBinder : Mapping collection: org.jbpm.taskmgmt.exe.PooledActor.taskInstances -> JBPM_TASKACTORPOOL 09:39:44,312 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml 09:39:44,328 INFO HbmBinder : Mapping class: org.jbpm.taskmgmt.exe.SwimlaneInstance -> JBPM_SWIMLANEINSTANCE 09:39:44,328 INFO Configuration : Mapping resource: org/jbpm/scheduler/exe/Timer.hbm.xml 09:39:44,343 INFO HbmBinder : Mapping class: org.jbpm.scheduler.exe.Timer -> JBPM_TIMER 09:39:44,343 INFO Configuration : Mapping resource: org/jbpm/logging/log/ProcessLog.hbm.xml 09:39:44,374 INFO HbmBinder : Mapping class: org.jbpm.logging.log.ProcessLog -> JBPM_LOG 09:39:44,374 INFO Configuration : Mapping resource: org/jbpm/logging/log/MessageLog.hbm.xml 09:39:44,453 INFO HbmBinder : Mapping subclass: org.jbpm.logging.log.MessageLog -> JBPM_LOG 09:39:44,453 INFO Configuration : Mapping resource: org/jbpm/logging/log/CompositeLog.hbm.xml 09:39:44,468 INFO HbmBinder : Mapping subclass: org.jbpm.logging.log.CompositeLog -> JBPM_LOG 09:39:44,468 INFO Configuration : Mapping resource: org/jbpm/graph/log/ActionLog.hbm.xml 09:39:44,484 INFO HbmBinder : Mapping subclass: org.jbpm.graph.log.ActionLog -> JBPM_LOG 09:39:44,484 INFO Configuration : Mapping resource: org/jbpm/graph/log/NodeLog.hbm.xml 09:39:44,499 INFO HbmBinder : Mapping subclass: org.jbpm.graph.log.NodeLog -> JBPM_LOG 09:39:44,515 INFO Configuration : Mapping resource: org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml 09:39:44,531 INFO HbmBinder : Mapping subclass: org.jbpm.graph.log.ProcessInstanceCreateLog -> JBPM_LOG 09:39:44,531 INFO Configuration : Mapping resource: org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml 09:39:44,531 INFO HbmBinder : Mapping subclass: org.jbpm.graph.log.ProcessInstanceEndLog -> JBPM_LOG 09:39:44,531 INFO Configuration : Mapping resource: org/jbpm/graph/log/SignalLog.hbm.xml 09:39:44,546 INFO HbmBinder : Mapping subclass: org.jbpm.graph.log.SignalLog -> JBPM_LOG 09:39:44,546 INFO Configuration : Mapping resource: org/jbpm/graph/log/TokenCreateLog.hbm.xml 09:39:44,562 INFO HbmBinder : Mapping subclass: org.jbpm.graph.log.TokenCreateLog -> JBPM_LOG 09:39:44,562 INFO Configuration : Mapping resource: org/jbpm/graph/log/TokenEndLog.hbm.xml 09:39:44,578 INFO HbmBinder : Mapping subclass: org.jbpm.graph.log.TokenEndLog -> JBPM_LOG 09:39:44,578 INFO Configuration : Mapping resource: org/jbpm/graph/log/TransitionLog.hbm.xml 09:39:44,656 INFO HbmBinder : Mapping subclass: org.jbpm.graph.log.TransitionLog -> JBPM_LOG 09:39:44,656 INFO Configuration : Mapping resource: org/jbpm/context/log/VariableLog.hbm.xml 09:39:44,671 INFO HbmBinder : Mapping subclass: org.jbpm.context.log.VariableLog -> JBPM_LOG 09:39:44,671 INFO Configuration : Mapping resource: org/jbpm/context/log/VariableCreateLog.hbm.xml 09:39:44,687 INFO HbmBinder : Mapping subclass: org.jbpm.context.log.VariableCreateLog -> JBPM_LOG 09:39:44,687 INFO Configuration : Mapping resource: org/jbpm/context/log/VariableDeleteLog.hbm.xml 09:39:44,687 INFO HbmBinder : Mapping subclass: org.jbpm.context.log.VariableDeleteLog -> JBPM_LOG 09:39:44,687 INFO Configuration : Mapping resource: org/jbpm/context/log/VariableUpdateLog.hbm.xml 09:39:44,718 INFO HbmBinder : Mapping subclass: org.jbpm.context.log.VariableUpdateLog -> JBPM_LOG 09:39:44,718 INFO Configuration : Mapping resource: org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml 09:39:44,734 INFO HbmBinder : Mapping subclass: org.jbpm.context.log.variableinstance.ByteArrayUpdateLog -> JBPM_LOG 09:39:44,734 INFO Configuration : Mapping resource: org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml 09:39:44,749 INFO HbmBinder : Mapping subclass: org.jbpm.context.log.variableinstance.DateUpdateLog -> JBPM_LOG 09:39:44,749 INFO Configuration : Mapping resource: org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml 09:39:44,765 INFO HbmBinder : Mapping subclass: org.jbpm.context.log.variableinstance.DoubleUpdateLog -> JBPM_LOG 09:39:44,765 INFO Configuration : Mapping resource: org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml 09:39:44,828 INFO HbmBinder : Mapping subclass: org.jbpm.context.log.variableinstance.HibernateLongUpdateLog -> JBPM_LOG 09:39:44,828 INFO Configuration : Mapping resource: org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml 09:39:44,843 INFO HbmBinder : Mapping subclass: org.jbpm.context.log.variableinstance.HibernateStringUpdateLog -> JBPM_LOG 09:39:44,843 INFO Configuration : Mapping resource: org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml 09:39:44,843 INFO HbmBinder : Mapping subclass: org.jbpm.context.log.variableinstance.LongUpdateLog -> JBPM_LOG 09:39:44,843 INFO Configuration : Mapping resource: org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml 09:39:44,859 INFO HbmBinder : Mapping subclass: org.jbpm.context.log.variableinstance.StringUpdateLog -> JBPM_LOG 09:39:44,859 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/log/TaskLog.hbm.xml 09:39:44,859 INFO HbmBinder : Mapping subclass: org.jbpm.taskmgmt.log.TaskLog -> JBPM_LOG 09:39:44,859 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml 09:39:44,874 INFO HbmBinder : Mapping subclass: org.jbpm.taskmgmt.log.TaskCreateLog -> JBPM_LOG 09:39:44,874 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml 09:39:44,890 INFO HbmBinder : Mapping subclass: org.jbpm.taskmgmt.log.TaskAssignLog -> JBPM_LOG 09:39:44,890 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml 09:39:44,890 INFO HbmBinder : Mapping subclass: org.jbpm.taskmgmt.log.TaskEndLog -> JBPM_LOG 09:39:44,937 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml 09:39:44,937 INFO HbmBinder : Mapping subclass: org.jbpm.taskmgmt.log.SwimlaneLog -> JBPM_LOG 09:39:44,937 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml 09:39:44,953 INFO HbmBinder : Mapping subclass: org.jbpm.taskmgmt.log.SwimlaneCreateLog -> JBPM_LOG 09:39:44,953 INFO Configuration : Mapping resource: org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml 09:39:44,953 INFO HbmBinder : Mapping subclass: org.jbpm.taskmgmt.log.SwimlaneAssignLog -> JBPM_LOG 09:39:44,953 INFO Configuration : Configured SessionFactory: null 09:39:44,953 DEBUG JbpmSessionFactory : overriding hibernate properties with {hibernate.connection.driver_class=net.sourceforge.jtds.jdbc.Driver, hibernate.c3p0.max_size=3, hibernate.dialect=org.hibernate.dialect.SQLServerDialect, hibernate.c3p0.min_size=1, hibernate.query.substitutions=true 1, false 0, hibernate.connection.username=JRun, hibernate.connection.url=jdbc:jtds:sqlserver://b00jh:1433/jbpmtest , hibernate.show_sql=false, hibernate.connection.password=yellowsnow} 09:39:44,953 DEBUG JbpmSessionFactory : building hibernate session factory 09:39:44,968 INFO Configuration : processing extends queue 09:39:44,968 INFO HbmBinder : Mapping subclass: org.jbpm.context.def.ContextDefinition -> JBPM_MODULEDEFINITION 09:39:44,968 INFO HbmBinder : Mapping subclass: org.jbpm.taskmgmt.def.TaskMgmtDefinition -> JBPM_MODULEDEFINITION 09:39:44,968 INFO Configuration : processing collection mappings 09:39:44,968 INFO HbmBinder : Mapping collection: org.jbpm.identity.User.memberships -> JBPM_ID_MEMBERSHIP 09:39:44,968 INFO HbmBinder : Mapping collection: org.jbpm.identity.Group.memberships -> JBPM_ID_MEMBERSHIP 09:39:44,968 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.ProcessDefinition.events -> JBPM_EVENT 09:39:44,968 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.ProcessDefinition.exceptionHandlers -> JBPM_EXCEPTIONHANDLER 09:39:44,968 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.ProcessDefinition.nodes -> JBPM_NODE 09:39:44,968 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.ProcessDefinition.actions -> JBPM_ACTION 09:39:44,968 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.ProcessDefinition.definitions -> JBPM_MODULEDEFINITION 09:39:44,968 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.Node.events -> JBPM_EVENT 09:39:44,968 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.Node.exceptionHandlers -> JBPM_EXCEPTIONHANDLER 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.Node.leavingTransitions -> JBPM_TRANSITION 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.Node.arrivingTransitions -> JBPM_TRANSITION 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.Transition.events -> JBPM_EVENT 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.Transition.exceptionHandlers -> JBPM_EXCEPTIONHANDLER 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.Event.actions -> JBPM_ACTION 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.SuperState.nodes -> JBPM_NODE 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.def.ExceptionHandler.actions -> JBPM_ACTION 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.node.ProcessState.variableAccesses -> JBPM_VARIABLEACCESS 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.node.TaskNode.tasks -> JBPM_TASK 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.action.Script.variableAccesses -> JBPM_VARIABLEACCESS 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.taskmgmt.def.Swimlane.tasks -> JBPM_TASK 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.taskmgmt.def.Task.events -> JBPM_EVENT 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.taskmgmt.def.Task.exceptionHandlers -> JBPM_EXCEPTIONHANDLER 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.taskmgmt.def.TaskController.variableAccesses -> JBPM_VARIABLEACCESS 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.file.def.FileDefinition.processFiles -> JBPM_BYTEARRAY 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.exe.ProcessInstance.runtimeActions -> JBPM_RUNTIMEACTION 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.exe.ProcessInstance.instances -> JBPM_MODULEINSTANCE 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.exe.Token.children -> JBPM_TOKEN 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.graph.exe.Token.comments -> JBPM_COMMENT 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.context.exe.ContextInstance.tokenVariableMaps -> JBPM_TOKENVARIABLEMAP 09:39:44,984 INFO HbmBinder : Mapping collection: org.jbpm.context.exe.TokenVariableMap.variableInstances -> JBPM_VARIABLEINSTANCE 09:39:44,999 INFO HbmBinder : Mapping collection: org.jbpm.taskmgmt.exe.TaskMgmtInstance.swimlaneInstances -> JBPM_SWIMLANEINSTANCE 09:39:44,999 INFO HbmBinder : Mapping collection: org.jbpm.taskmgmt.exe.TaskMgmtInstance.taskInstances -> JBPM_TASKINSTANCE 09:39:44,999 INFO HbmBinder : Mapping collection: org.jbpm.taskmgmt.exe.TaskInstance.comments -> JBPM_COMMENT 09:39:44,999 INFO HbmBinder : Mapping collection: org.jbpm.taskmgmt.exe.SwimlaneInstance.pooledActors -> JBPM_POOLEDACTOR 09:39:44,999 INFO HbmBinder : Mapping collection: org.jbpm.logging.log.CompositeLog.children -> JBPM_LOG 09:39:44,999 INFO HbmBinder : Mapping collection: org.jbpm.taskmgmt.def.TaskMgmtDefinition.swimlanes -> JBPM_SWIMLANE 09:39:44,999 INFO HbmBinder : Mapping collection: org.jbpm.taskmgmt.def.TaskMgmtDefinition.tasks -> JBPM_TASK 09:39:44,999 INFO Configuration : processing association property references 09:39:44,999 INFO Configuration : processing foreign key constraints 09:39:45,062 INFO C3P0ConnectionProvider : C3P0 using driver: net.sourceforge.jtds.jdbc.Driver at URL: jdbc:jtds:sqlserver://b00jh:1433/jbpmtest 09:39:45,062 INFO C3P0ConnectionProvider : Connection properties: {user=JRun, password=****} 09:39:45,078 INFO C3P0ConnectionProvider : autocommit mode: false Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@19113f8 [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@2db19d [ acquireIncrement -> 1 , acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, idleConnectionTestPeriod -> 0, initialPoolSize -> 1, maxIdleTime -> 0, maxPoolSize -> 3, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 1, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@1e13e07 [ description -> null, driverClass -> null, factoryClassLocation -> null, jdbcUrl -> jdbc:jtds:sqlserver://b00jh:1433/jbpmtest , properties -> {user=******, password=******} ] , preferredTestQuery -> null, propertyCycle -> 300, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, usesTraditionalReflectiveProxies -> false ] , factoryClassLocation -> null, numHelperThreads -> 3, poolOwnerIdentityToken -> 19113f8 ] 09:39:45,499 INFO SettingsFactory : RDBMS: Microsoft SQL Server, version: 08.00.0534 09:39:45,499 INFO SettingsFactory : JDBC driver: jTDS Type 4 JDBC Driver for MS SQL Server and Sybase, version: 1.1 09:39:45,515 INFO Dialect : Using dialect: org.hibernate.dialect.SQLServerDialect 09:39:45,515 INFO TransactionFactoryFactory : Using default transaction strategy (direct JDBC transactions) 09:39:45,531 INFO TransactionManagerLookupFactory : No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) 09:39:45,531 INFO SettingsFactory : Automatic flush during beforeCompletion(): disabled 09:39:45,531 INFO SettingsFactory : Automatic session close at end of transaction: disabled 09:39:45,531 INFO SettingsFactory : Scrollable result sets: enabled 09:39:45,531 INFO SettingsFactory : JDBC3 getGeneratedKeys(): enabled 09:39:45,531 INFO SettingsFactory : Connection release mode: null 09:39:45,531 INFO SettingsFactory : Default batch fetch size: 1 09:39:45,531 INFO SettingsFactory : Generate SQL with comments: disabled 09:39:45,531 INFO SettingsFactory : Order SQL updates by primary key: disabled 09:39:45,531 INFO SettingsFactory : Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory 09:39:45,531 INFO ASTQueryTranslatorFactory : Using ASTQueryTranslatorFactory 09:39:45,546 INFO SettingsFactory : Query language substitutions: {true=1, false=0} 09:39:45,546 INFO SettingsFactory : Second-level cache: enabled 09:39:45,546 INFO SettingsFactory : Query cache: disabled 09:39:45,546 INFO SettingsFactory : Cache provider: org.hibernate.cache.EhCacheProvider 09:39:45,546 INFO SettingsFactory : Optimize cache for minimal puts: disabled 09:39:45,546 INFO SettingsFactory : Structured second-level cache entries: disabled 09:39:45,546 INFO SettingsFactory : Statistics: disabled 09:39:45,546 INFO SettingsFactory : Deleted entity synthetic identifier rollback: disabled 09:39:45,546 INFO SettingsFactory : Default entity-mode: pojo 09:39:45,656 INFO SessionFactoryImpl : building session factory 09:39:45,952 WARN EhCacheProvider : Could not find configuration [org.jbpm.graph.def.Node]; using defaults. 09:39:46,046 WARN EhCacheProvider : Could not find configuration [org.jbpm.instantiation.Delegation]; using defaults. 09:39:46,156 WARN EhCacheProvider : Could not find configuration [org.jbpm.taskmgmt.def.Task]; using defaults. 09:39:46,343 WARN EhCacheProvider : Could not find configuration [org.jbpm.graph.def.ProcessDefinition]; using defaults. 09:39:46,452 WARN EhCacheProvider : Could not find configuration [org.jbpm.graph.def.ExceptionHandler]; using defaults. 09:39:46,452 WARN EhCacheProvider : Could not find configuration [org.jbpm.module.def.ModuleDefinition]; using defaults. 09:39:46,796 WARN EhCacheProvider : Could not find configuration [org.jbpm.graph.def.Action]; using defaults. 09:39:46,827 WARN EhCacheProvider : Could not find configuration [org.jbpm.graph.def.Event]; using defaults. 09:39:46,890 WARN EhCacheProvider : Could not find configuration [org.jbpm.context.def.VariableAccess]; using defaults. 09:39:46,937 WARN EhCacheProvider : Could not find configuration [org.jbpm.graph.def.Transition]; using defaults. 09:39:47,171 WARN EhCacheProvider : Could not find configuration [org.jbpm.taskmgmt.def.TaskController]; using defaults. 09:39:47,999 INFO SessionFactoryObjectFactory : Not binding factory to JNDI, no JNDI name configured 09:39:47,999 INFO SessionFactoryImpl : Checking 0 named queries 09:39:48,374 DEBUG GraphElement : event 'process-start' on 'ProcessDefinition(testProcess)' for 'Token(/)' 09:39:48,406 DEBUG GraphElement : event 'before-signal' on 'StartState(start)' for 'Token(/)' 09:39:48,406 DEBUG GraphElement : event 'node-leave' on 'StartState(start)' for 'Token(/)' 09:39:48,406 DEBUG GraphElement : event 'transition' on 'Transition(tr1)' for 'Token(/)' 09:39:48,406 DEBUG GraphElement : event 'node-enter' on 'TaskNode(task1)' for 'Token(/)' java.lang.NullPointerException at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.jbpm.instantiation.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:16) at org.jbpm.taskmgmt.exe.TaskMgmtInstance.getTaskInstanceClass(TaskMgmtInstance.java:41) at org.jbpm.taskmgmt.exe.TaskMgmtInstance.instantiateNewTaskInstance(TaskMgmtInstance.java:174) at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:74) at org.jbpm.graph.node.TaskNode.execute(TaskNode.java:136) at org.jbpm.graph.def.Node.enter(Node.java:284) at org.jbpm.graph.def.Transition.take(Transition.java:92) at org.jbpm.graph.def.Node.leave(Node.java:349) at org.jbpm.graph.node.StartState.leave(StartState.java:73) at org.jbpm.graph.exe.Token.signal(Token.java:127) at org.jbpm.graph.exe.Token.signal(Token.java:92) at com.benderson.test.testProcessTest.startTestProcess(testProcessTest.java:49) at com.benderson.test.testProcessTest.testTestProcess(testProcessTest.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Thank you very much for any insight you can provide.