10 Replies Latest reply on Oct 10, 2008 6:05 AM by Bernd Ruecker

    Null Pointer stack trace when opening a processdefinition.xm

    Jim Jackson Newbie

      Edited 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>