jBPM & BeanShell: fail with osgi classpaths
rasun Nov 6, 2009 4:49 AMGood day,
Currently I'm working on a RCP project with jBPM 3. At this very moment I'm stuck while trying to execute a process. The processDefinition.xml starts executing and at a certain moment, when it reaches a part where a Script object is started, a DelegationException is thrown.
Prior to this exception, I noticed that BeanShell did not seem to be able to resolve the OSGi classpath I use where certain source/config files are located.
Debugging the code learns that the cause is located somewhere in the integrated BeanShell code (can't tell where exactly, as I don't have the source code available); it seems that BeanShell does not use proper classpaths (confirming OSGi standards), while my RCP based project does.
As far as I know, BeanShell does 'something' with the classpaths/classloaders which seemingly affects the process in a negative way.
Can anyone suggest a way to make jBPM/BeanShell understand how to use the proper classpaths or other, if the probable cause does not concern the classpaths/OSGi aspects, possibility?
Thanks for the effort! Hope that I provided enough info about the problem here, if not then just yell ;).
=== Environment ==============================
- jBPM Version: 3
- JDK: 1.6.0_17
- Configuration : Use the default jbpm.cfg.xml with jbpm.jar lib, no custom config file used.
- Libraries : using all default libraries from jBPM, no custom or changes made.
=== Stacktrace ==============================
action threw exception: script evaluation exception org.jbpm.graph.def.DelegationException: script evaluation exception at org.jbpm.graph.action.Script.eval(Script.java:139) at org.jbpm.graph.action.Script.eval(Script.java:73) at org.jbpm.graph.action.Script.execute(Script.java:62) at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:264) at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:220) at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:190) at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:203) at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:174) at org.jbpm.graph.def.Node.leave(Node.java:382) at org.jbpm.graph.node.StartState.leave(StartState.java:70) at org.jbpm.graph.exe.Token.signal(Token.java:195) at org.jbpm.graph.exe.Token.signal(Token.java:140) at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:271) at nl.mindef.c2sc.titaan.uni.UNI.run(Unknown Source) at uni.gui.app.main.main.UniRunner.start(UniRunner.java:209) at uni.gui.app.main.data.rbb.RbbDevice.start(RbbDevice.java:113) at uni.gui.app.main.handlers.dashboard.StartProcessHandler.execute(StartProcessHandler.java:46) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:281) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:178) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:253) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:253) at uni.gui.app.main.views.DashboardView$1.widgetSelected(DashboardView.java:99) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at uni.gui.app.base.Application.start(Application.java:27) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at org.eclipse.equinox.launcher.Main.run(Main.java:1236) at org.eclipse.equinox.launcher.Main.main(Main.java:1212) Caused by: java.lang.NullPointerException: Null Pointer in Method Invocation at bsh.Name.invokeMethod(Unknown Source) at bsh.BSHMethodInvocation.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.Interpreter.eval(Unknown Source) at bsh.Interpreter.eval(Unknown Source) at bsh.Interpreter.eval(Unknown Source) at org.jbpm.graph.action.Script.eval(Script.java:130)