[rules-users] Resuming Flow: NPE when completing a work item

nanic23 nanic23 at hotmail.com
Tue Apr 13 14:51:14 EDT 2010


Hi,

    I found this question repeated three times on this user list without any
answers. I would, however, appreciate one.

    We have a point where the flow reached a wait state and suspended. Now
we are resuming the flow [by running a different test] and trying to
complete the work item, as it is suggested by some posts on this user list.
However we are getting a Null Pointer Exception here [ at
org.drools.marshalling.impl.MarshallerReaderContext.resolveClass(MarshallerReaderContext.java:78)
].

If you have any ideas, it would be helpful.
Thank you.

// COMPLETING WORK ITEM:

		ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(
rwi.getSessionId(), knowledgeBase, null, env );
		
		registerWorkItemHandlers((WorkItemManager) ksession
				.getWorkItemManager(), ksession);
		
		dbLogger = new WorkingMemoryDbLogger( ksession );
		
		ksession.getWorkItemManager().completeWorkItem( rwi.getWorkItemId(), null
);

// EXCEPTION:

java.lang.NullPointerException
	at
org.drools.marshalling.impl.MarshallerReaderContext.resolveClass(MarshallerReaderContext.java:78)
	at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
	at java.io.ObjectInputStream.readClassDesc(Unknown Source)
	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.readObject(Unknown Source)
	at
org.drools.marshalling.impl.InputMarshaller.readWorkItem(InputMarshaller.java:829)
	at
org.drools.persistence.processinstance.WorkItemInfo.getWorkItem(WorkItemInfo.java:86)
	at
org.drools.persistence.processinstance.JPAWorkItemManager.completeWorkItem(JPAWorkItemManager.java:90)
	at
org.drools.command.runtime.process.CompleteWorkItemCommand.execute(CompleteWorkItemCommand.java:46)
	at
org.drools.command.runtime.process.CompleteWorkItemCommand.execute(CompleteWorkItemCommand.java:12)
	at
org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:254)
	at
org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:118)
	at
com.jpmc.admincenter.flow.ApprovalFlowPersistenceTest.shouldResumeFlow(ApprovalFlowPersistenceTest.java:103)
	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
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
	at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
	at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
	at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
	at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
	at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:44)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
	at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
	at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
	at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
	at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
	at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

        -------- Test Execution Finished -------- 
-- 
View this message in context: http://n3.nabble.com/Resuming-Flow-NPE-when-completing-a-work-item-tp716847p716847.html
Sent from the Drools - User mailing list archive at Nabble.com.



More information about the rules-users mailing list