[jboss-user] [JBoss jBPM] - NPE in GPD

clandestino_bgd do-not-reply at jboss.com
Sat Oct 25 08:50:22 EDT 2008


Hello,
I am trying to port process definition from one machine (Ubuntu) to other machine (Windows) designed with JBPM GPD version 3.1.3.

I am facing NPE when I try to launch it on Windows machine. In workspace/.metadata/log I can see the folowing trace:


  | java.lang.NullPointerException
  | 	at org.jbpm.gd.jpdl.notation.JpdlNode.getDestinationNode(Unknown Source)
  | 	at org.jbpm.gd.jpdl.notation.JpdlNode.propertyChange(Unknown Source)
  | 	at org.jbpm.gd.jpdl.notation.JpdlRootContainer.addLeavingEdges(Unknown Source)
  | 	at org.jbpm.gd.common.notation.RootContainer.addNode(Unknown Source)
  | 	at org.jbpm.gd.common.editor.AbstractContentProvider.addNode(Unknown Source)
  | 	at org.jbpm.gd.common.editor.AbstractContentProvider.addNodes(Unknown Source)
  | 	at org.jbpm.gd.jpdl.editor.JpdlContentProvider.addNodes(Unknown Source)
  | 	at org.jbpm.gd.common.editor.AbstractContentProvider.processRootContainer(Unknown Source)
  | 	at org.jbpm.gd.common.editor.AbstractContentProvider.addNotationInfo(Unknown Source)
  | 	at org.jbpm.gd.common.editor.Editor.initGraphPage(Unknown Source)
  | 	at org.jbpm.gd.common.editor.Editor.createPages(Unknown Source)
  | 	at org.jbpm.gd.jpdl.editor.JpdlEditor.createPages(Unknown Source)
  | 	at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:283)
  | 	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:661)
  | 	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:426)
  | 	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
  | 	at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:299)
  | 	at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:179)
  | 	at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:268)
  | 	at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
  | 	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:400)
  | 	at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256)
  | 	at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1209)
  | 	at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1604)
  | 	at org.eclipse.ui.internal.PartStack.add(PartStack.java:499)
  | 	at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103)
  | 	at org.eclipse.ui.internal.PartStack.add(PartStack.java:485)
  | 	at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112)
  | 	at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:63)
  | 	at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:217)
  | 	at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:207)
  | 	at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:774)
  | 	at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:673)
  | 	at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:634)
  | 	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2737)
  | 	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2651)
  | 	at org.eclipse.ui.internal.WorkbenchPage.access$13(WorkbenchPage.java:2643)
  | 	at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2595)
  | 	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
  | 	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2590)
  | 	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2574)
  | 	at org.eclipse.ui.actions.OpenWithMenu.openEditor(OpenWithMenu.java:340)
  | 	at org.eclipse.ui.actions.OpenWithMenu.access$0(OpenWithMenu.java:328)
  | 	at org.eclipse.ui.actions.OpenWithMenu$2.handleEvent(OpenWithMenu.java:190)
  | 	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
  | 	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
  | 	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
  | 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
  | 	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
  | 	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
  | 	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
  | 	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
  | 	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
  | 	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
  | 	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
  | 	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
  | 	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
  | 	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
  | 	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
  | 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
  | 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
  | 	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.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
  | 	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
  | 	at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
  | 
  | 
  | 

Ok, obviously there is some problem in my process definition, but from the log, I cannot figure out, what exactly.
Is there a way, or plan for the future to make GPD error more informative, e.g to point to the Node, or any element which is malformed.
Thanks for the answer.

For the reference, here are the files:

best,
Milan

My processdefinition.xml looks like this:


  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <process-definition 
  |   xmlns="urn:jbpm.org:jpdl-3.2"
  |   name="process setup">
  | 
  | 
  | 	<start-state name="start">
  | 		<transition to="select annotation modules"></transition>
  | 	</start-state>
  |    <task-node name="select annotation modules">
  |     <task description="Here you can specify annotation modules to be used in the annotation process." name="select annotation modules">
  |          <assignment actor-id="#{initiator}" />
  |          <controller>
  |          <variable name="doAutomatic" access="read,write,required" mapped-name="X_Automatic Annotation"></variable>
  | 		 <variable name="doManual" access="read,write,required" mapped-name="X_Manual Annotation"></variable>
  | 		 </controller>
  |       </task>
  | 		<transition to="do automatic?"></transition>
  | 	</task-node>
  | 
  | 	<decision name="do manual?">
  | 		<transition to="end" name="No"></transition>
  | 		<transition to="super-state1/select users" name="Yes"></transition>
  | 	</decision>
  | 
  | 	<task-node name="save project">
  | 		<transition to="end"></transition>
  | 	</task-node>
  | 
  | 	<super-state name="gas configuration">
  | 		<task-node name="gas quick configuration">
  | 			 <task description="Here you can specify GAS services to be used in the annotation process." name="specify GAS pipeline">
  |          <assignment actor-id="#{initiator}" />
  |          <controller>
  |          <variable name="gasName" access="read,write,required" mapped-name="GAS Name"></variable>
  | 		 <variable name="endpointURL" access="read,write,required" mapped-name="GAS URL"></variable>
  | 		 </controller>
  |       </task>
  | 			<transition to="gas advanced configuration" name="Advanced Options "></transition>
  | 			<transition to="gas quick configuration" name="Specify Next"></transition>
  | 			<transition to="../do manual?" name="Finish"></transition>
  | 		</task-node>
  | 		<task-node name="gas advanced configuration">
  | 			 <task description="Here you can specify GAS services to be used in the annotation process." name="specify GAS pipeline">
  |          <assignment actor-id="#{initiator}" />
  |          <controller>
  |          <variable name="gasName" access="read,write,required" mapped-name="GAS Name"></variable>
  | 		 <variable name="endpointURL" access="read,write,required" mapped-name="GAS URL"></variable>
  | 		 <variable name="asKey" access="read,write" mapped-name="Annotation Set Key"></variable>
  | 		 <variable name="asValue" access="read,write" mapped-name="Annotation Set Value"></variable>
  | 		 <variable name="asExtraMappings" access="read,write" mapped-name="A_Annotation Set Extra Mappings"></variable>
  | 		 <variable name="parameterKey" access="read,write" mapped-name="Parameter Key"></variable>
  | 		 <variable name="parameterValue" access="read,write" mapped-name="Parameter Value"></variable>
  | 		 </controller>
  |       </task>
  | 			<transition to="gas quick configuration" name="Specify Next"></transition>
  | 			<transition to="../do manual?" name="Finish"></transition>
  | 		</task-node>
  | 	</super-state>
  | 
  | 	<super-state name="manual annotation configuration">
  | 		<task-node name="select users">
  | 		 <task description="Here you can select users for manual annotation." swimlane="curator" name="specify annotation process parameters">
  |          <controller>
  |          <variable name="curatorCSVList" access="read,write,required" mapped-name="M_:usersInRoleList#curator_Curators"></variable>
  | 		<variable name="annotatorCSVList" access="read,write,required" mapped-name="M_:usersInRoleList#annotator_Annotators"></variable>
  | 		 </controller>
  |       </task>
  | 			<transition to="specify annotation strategy"></transition>
  | 		</task-node>
  | 		<task-node name="specify annotation strategy">
  | 			 <task description="Here you can specify annotation strategy to be used for manual annotation." name="specify annotation strategy">
  |          <assignment actor-id="#{initiator}" />
  |          <controller>
  |          <variable name="annotatorsPerDocument" access="read, write" mapped-name="C_:numOfPerformersPerTask_Annotators per Document"></variable>
  |          <variable name="canCancel" access="read, write" mapped-name="X_Cancel Task Allowed"></variable>
  |          <variable name="anonymousAnnotation" access="read,write" mapped-name="X_Anonymous Annotation"></variable>		
  | 	    </controller>
  |       </task>
  | 			<transition to="save project" name="Save Project"></transition>
  | 			<transition to="../end" name="Don't Save"></transition>
  | 		</task-node>
  | 	</super-state>
  | 
  | 	<decision name="do automatic?">
  | 		<transition to="gas configuration/gas quick configuration" name="Yes"></transition>
  | 		<transition to="do manual?" name="No"></transition>
  | 	</decision>
  |    <end-state name="end"></end-state>
  | 
  | </process-definition>
  | 
  | 

and my gpd.xml looks like this:

  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <root-container name="process setup" width="781" height="478">
  |   <node name="start" x="103" y="7" width="140" height="40">
  |     <edge>
  |       <label x="5" y="-10"/>
  |     </edge>
  |   </node>
  |   <node name="select annotation modules" x="60" y="65" width="229" height="36">
  |     <edge>
  |       <label x="5" y="-10"/>
  |     </edge>
  |   </node>
  |   <node name="do manual?" x="60" y="221" width="229" height="36">
  |     <edge>
  |       <label x="-21" y="-13"/>
  |       <bendpoint w1="-135" h1="0" w2="-101" h2="-199"/>
  |       <bendpoint w1="-135" h1="199" w2="-101" h2="0"/>
  |     </edge>
  |     <edge>
  |       <label x="-24" y="-40"/>
  |       <bendpoint w1="0" h1="64" w2="-276" h2="2"/>
  |     </edge>
  |   </node>
  |   <node name="save project" x="72" y="346" width="132" height="36">
  |     <edge>
  |       <label x="5" y="-10"/>
  |     </edge>
  |   </node>
  |   <node name="end" x="72" y="420" width="132" height="36"/>
  |   <node-container name="gas configuration" x="336" y="36" width="281" height="181">
  |     <node name="gas quick configuration" x="20" y="28" width="232" height="36">
  |       <edge>
  |         <label x="2" y="-9"/>
  |         <bendpoint w1="42" h1="41" w2="42" h2="-43"/>
  |       </edge>
  |       <edge>
  |         <label x="-80" y="3"/>
  |         <bendpoint w1="126" h1="-6" w2="126" h2="-6"/>
  |         <bendpoint w1="125" h1="-43" w2="125" h2="-43"/>
  |         <bendpoint w1="64" h1="-42" w2="64" h2="-42"/>
  |         <bendpoint w1="-2" h1="-42" w2="-2" h2="-42"/>
  |       </edge>
  |       <edge>
  |         <label x="-84" y="58"/>
  |         <bendpoint w1="168" h1="-1" w2="474" h2="-150"/>
  |         <bendpoint w1="169" h1="147" w2="475" h2="-2"/>
  |       </edge>
  |     </node>
  |     <node name="gas advanced configuration" x="18" y="120" width="234" height="36">
  |       <edge>
  |         <label x="-81" y="-11"/>
  |         <bendpoint w1="-44" h1="-40" w2="-44" h2="44"/>
  |       </edge>
  |       <edge>
  |         <label x="-26" y="11"/>
  |         <bendpoint w1="-159" h1="3" w2="146" h2="-54"/>
  |       </edge>
  |     </node>
  |   </node-container>
  |   <node-container name="manual annotation configuration" x="336" y="264" width="284" height="145">
  |     <node name="select users" x="20" y="12" width="231" height="36">
  |       <edge>
  |         <label x="5" y="-10"/>
  |       </edge>
  |     </node>
  |     <node name="specify annotation strategy" x="21" y="73" width="234" height="36">
  |       <edge>
  |         <label x="-49" y="-19"/>
  |       </edge>
  |       <edge>
  |         <label x="-229" y="-20"/>
  |         <bendpoint w1="0" h1="73" w2="311" h2="0"/>
  |       </edge>
  |     </node>
  |   </node-container>
  |   <node name="do automatic?" x="60" y="144" width="229" height="36">
  |     <edge>
  |       <label x="6" y="-53"/>
  |       <bendpoint w1="130" h1="0" w2="-176" h2="72"/>
  |       <bendpoint w1="138" h1="-70" w2="-168" h2="2"/>
  |     </edge>
  |     <edge>
  |       <label x="5" y="-10"/>
  |     </edge>
  |   </node>
  | </root-container>
  | 
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4184637#4184637

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4184637



More information about the jboss-user mailing list