Null Pointer stack trace when opening a processdefinition.xm
ebsjwj Dec 5, 2007 4:11 PMEdited the file outside of the plugin, but is valid. Now I get a stack trace when opening the file. The definition executes properly.
Version is:
JBoss Inc. JBoss jBPM JPDL Designer ... 3.1.0.SP1 org.jbpm.gd.jpdl
Stack trace is below.
java.lang.NullPointerException at org.jbpm.gd.common.editor.Editor.getSemanticElement(Unknown Source) at org.jbpm.gd.common.editor.Editor.initSourcePage(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:2719) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2633) at org.eclipse.ui.internal.WorkbenchPage.access$12(WorkbenchPage.java:2625) at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2577) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2572) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2556) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2547) at org.eclipse.ui.ide.IDE.openEditor(IDE.java:644) at org.eclipse.ui.ide.IDE.openEditor(IDE.java:603) at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:285) at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:138) at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:194) at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:175) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:268) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:244) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:316) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$5.open(PackageExplorerPart.java:613) at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:820) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.runtime.Platform.run(Platform.java:857) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:193) at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:818) at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1079) at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1183) at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:263) at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:257) at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:297) 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:153) 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:504) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443) at org.eclipse.equinox.launcher.Main.run(Main.java:1169) at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
process definition file is below.
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="safe_harbor_"> <start-state name="start"> <transition name="" to="setup"/> </start-state> <end-state name="end"/> <task-node name="setup"> <task name="shw_entry1"> <controller> <variable name="plan_number" access="read,write,required"/> <variable name="part_id" access="read,write,required"/> <variable name="omni_text_file_name" access="read,write,required"/> </controller> </task> <event type="node-leave"> <action name="action_get_setup_info" class="com.sungard.omni.fluid.action.OmniCustomVarAction"/> <action name="action-ddweb" class="com.sungard.omni.fluid.action.OmniDDWebAction"> <responseString/> </action> <action name="action_xpath_test" class="com.sungard.omni.fluid.action.XPathVariableSetter"> <variableName>part_name_test</variableName> <calcFileName>DDWEB1</calcFileName> <expression>/xml/participant/DE011</expression> </action> <action name="action_xpath_size" class="com.sungard.omni.fluid.action.XPathExpression"> <variableName>parms_size</variableName> <calcFileName>DDWEB1</calcFileName> <expression>/xml/parms/*</expression> </action> <action name="action_xpath_test_parms_1" class="com.sungard.omni.fluid.action.XPathVariableSetter"> <variableName>parm1</variableName> <calcFileName>DDWEB1</calcFileName> <expression>/xml/parms/parm[1]</expression> </action> <action name="action_xpath_test_parms_2" class="com.sungard.omni.fluid.action.XPathVariableSetter"> <variableName>parm2</variableName> <calcFileName>DDWEB1</calcFileName> <expression>/xml/parms/parm[2]</expression> </action> <action name="action_xpath_test_parms_3" class="com.sungard.omni.fluid.action.XPathVariableSetter"> <variableName>parm3</variableName> <calcFileName>DDWEB1</calcFileName> <expression>/xml/parms/parm[3]</expression> </action> </event> <event type="node-enter"> <action name="action_set_text_file_name" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>omni_text_file_name</variableName> <variableValue>FLUID_SHW_SETUP</variableValue> </action> <action name="action_set_plan_number" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>plan_number</variableName> <variableValue>LN0020</variableValue> </action> <action name="action_set_part_id" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>part_id</variableName> <variableValue> </variableValue> </action> <action name="action_set_calc_file" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>CALCFILE</variableName> <variableValue>DDWEB1</variableValue> </action> <action name="action_set_ddweb_plan_number" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>PLANNUM</variableName> <variableValue>LN0020</variableValue> </action> <action name="action_set_ddweb_parm" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName> DDWEB_PARM1 </variableName> <variableValue> HELLO </variableValue> </action> </event> <transition name="" to="ifSafeHarbor"/> </task-node> <decision name="ifSafeHarbor"> <transition name="no" to="WdrlAmt"> <condition>#{safe_harbor_plan=='NO'}</condition> </transition> <transition name="yes" to="SafeHarbor"> <condition>#{safe_harbor_plan=='YES'}</condition> </transition> </decision> <task-node name="SafeHarbor"> <task name="shw_msg"/> <event type="node-enter"> <action name="action_set_message" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>message</variableName> <variableValue>Can't do withdrawal on a Safe Harbor Plan !!</variableValue> </action> </event> <transition name="" to="end"/> </task-node> <task-node name="WdrlAmt"> <task name="shw_amt"> <controller> <variable name="amt" access="read,write,required"/> <variable name="payment_type" access="read,write,required"/> </controller> </task> <!--comment--> <event type="node-enter"> <action name="action_set_amt" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>WK001</variableName> <variableValue>0.00</variableValue> </action> <action name="action_set_tran" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>TX003</variableName> <variableValue>444</variableValue> </action> </event> <transition name="" to="isWire"/> </task-node> <task-node name="WireInfo"> <task name="shw_wire"> <controller> <variable name="TX010" access="read,write,required"/> <variable name="TX011" access="read,write,required"/> </controller> </task> <event type="node-enter"> <action name="action_set_transit_routing" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>TX010</variableName> <variableValue/> </action> </event> <event type="node-enter"> <action name="action_set_account_number" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>TX011</variableName> <variableValue/> </action> </event> <event type="node-leave"> <action name="action_set_do_wire" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>TX006</variableName> <variableValue>YES</variableValue> </action> </event> <transition name="" to="AddTransactions"/> </task-node> <node name="AddTransactions"> <action class="com.sungard.omni.fluid.action.OmniScriptAction"/> <event type="node-leave"> <action name="action_set_message" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>message</variableName> <variableValue>Hardship Withdrawal submitted for processing</variableValue> </action> </event> <event type="node-enter"> <action name="action_set_omni_text_file" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>omni_text_file_name</variableName> <variableValue>FLUID_SHW_ADD_T</variableValue> </action> </event> <transition name="" to="Confirmation"/> </node> <decision name="isWire"> <event type="node-leave"> <action name="action_set_do_wire" class="com.sungard.omni.fluid.action.VariableSetterAction"> <variableName>TX006</variableName> <variableValue>NO</variableValue> </action> </event> <transition name="yes" to="WireInfo"> <condition>#{type=='wire'}</condition> </transition> <transition name="no" to="AddTransactions"> <condition>#{type=='check'}</condition> </transition> </decision> <task-node name="Confirmation"> <task name="shw_confirm"> <controller> <variable name="message" access="read"/> </controller> </task> <transition name="" to="end"/> </task-node> </process-definition>