[JBoss JIRA] Created: (JBPM-1087) Creating a new process project raises FileNotFoundException
by Len DiMaggio (JIRA)
Creating a new process project raises FileNotFoundException
-----------------------------------------------------------
Key: JBPM-1087
URL: http://jira.jboss.com/jira/browse/JBPM-1087
Project: JBoss jBPM
Issue Type: Bug
Affects Versions: jBPM jPDL 3.2.2
Environment: jbpm-jpdl-suite-3.2.2 (for runtime)
Core and Designer plugin 3.0.13
Eclipse Europa - Version: 3.3.1.1
RHEL5
Sun Java 1.5.0_13
Reporter: Len DiMaggio
Assigned To: Tom Baeyens
Priority: Minor
Creating a new process project raises this exception - there doesn't appear to have a functional impact.
./eclipse
jbpm-jpdl-3.2.2
java.io.FileNotFoundException: /opt/jbpm_Nov/jbpm-jpdl-3.2.2/config/META-INF (Is a directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at org.jbpm.ui.wizard.NewProcessProjectWizard.copyJbpmResource(Unknown Source)
at org.jbpm.ui.wizard.NewProcessProjectWizard.copyJbpmResources(Unknown Source)
at org.jbpm.ui.wizard.NewProcessProjectWizard.createInitialContent(Unknown Source)
at org.jbpm.ui.wizard.NewProcessProjectWizard.createJavaProject(Unknown Source)
at org.jbpm.ui.wizard.NewProcessProjectWizard.performFinish(Unknown Source)
at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:742)
at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:373)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:616)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1101)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3319)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2971)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at org.eclipse.ui.actions.NewProjectAction.run(NewProjectAction.java:116)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:546)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:490)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:402)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1101)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3319)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2971)
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(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
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)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 11 months
[JBoss JIRA] Created: (JBPM-1093) Allow more than one action to be executed when entering a page node
by Matthew Lieder (JIRA)
Allow more than one action to be executed when entering a page node
-------------------------------------------------------------------
Key: JBPM-1093
URL: http://jira.jboss.com/jira/browse/JBPM-1093
Project: JBoss jBPM
Issue Type: Feature Request
Components: Core Engine
Affects Versions: jBPM jPDL 3.2.2
Reporter: Matthew Lieder
Assigned To: Tom Baeyens
Only the first <action> is executed when multiple actions are children of <page> and <start-page> elements in a jPDL pageflow. It would be greatly appreciated if the logic could be changed so that all <action> elements are executed (like they are when children of <transition> elements).
Example:
<page name="page1" view-id="/page1.xhtml">
<action expression="#{someMethodThatIsExecuted} />
<action expression="#{someMethodThatIsNotExecuted} />
<transition name="save" to="terminate">
<action expression="#{someMethodThatIsExecuted} />
<action expression="#{someMethodThatIsExecuted} />
</transition>
</page>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 11 months
[JBoss JIRA] Created: (JBPM-1148) jBPM Classloading
by Bjoern Wand (JIRA)
jBPM Classloading
-----------------
Key: JBPM-1148
URL: http://jira.jboss.com/jira/browse/JBPM-1148
Project: JBoss jBPM
Issue Type: Patch
Components: Core Engine
Reporter: Bjoern Wand
Assigned To: Tom Baeyens
jBPM does not use ContextClassloader for classloading. The class ClassLoaderUtil.java has a comment that class loading could be made configurable. This is the patch I provided in the forum and I agreed with Koen Ars th open a JIRA for this.
package org.jbpm.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmException;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.instantiation.ProcessClassLoader;
/**
* provides centralized classloader lookup.
*/
public class ClassLoaderUtil {
private static Log log = LogFactory.getLog(ClassLoaderUtil.class);
public static Class loadClass(String className) {
try {
return getClassLoader().loadClass(className);
} catch (ClassNotFoundException e) {
throw new JbpmException("class not found '" + className + "'", e);
}
}
public static ClassLoader getClassLoader() {
if (JbpmConfiguration.Configs.hasObject("jbpm.classloader")) {
String jbpmClassloader = JbpmConfiguration.Configs.getString("jbpm.classloader");
String jbpmClassloaderClassname = JbpmConfiguration.Configs.getString("jbpm.classloader.classname");
if (jbpmClassloader.equals("jbpm")) {
return ClassLoaderUtil.class.getClassLoader();
} else if (jbpmClassloader.equals("context")) {
return Thread.currentThread().getContextClassLoader();
} else if (jbpmClassloader.equals("custom")) {
try {
if (jbpmClassloaderClassname == null) {
throw new JbpmException(
"'jbpm.classloader' property set to 'custom' but 'jbpm.classloader.classname' is empty!");
}
return (ClassLoader) Thread.currentThread().getContextClassLoader().loadClass(
jbpmClassloaderClassname).newInstance();
} catch (InstantiationException e) {
throw new JbpmException("Error instantiating custom classloader " + jbpmClassloaderClassname, e);
} catch (IllegalAccessException e) {
throw new JbpmException("Error accessing custom classloader " + jbpmClassloaderClassname, e);
} catch (ClassNotFoundException e) {
throw new JbpmException("Custom classloader " + jbpmClassloaderClassname + " not found ", e);
}
} else {
throw new JbpmException("'jbpm.classloader' property set to '" + jbpmClassloader
+ "' but only the values 'jbpm'/'context'/'custom' are supported!");
}
} else {
return ClassLoaderUtil.class.getClassLoader();
}
}
public static InputStream getStream(String resource) {
return getClassLoader().getResourceAsStream(resource);
}
public static Properties getProperties(String resource) {
Properties properties = new Properties();
try {
properties.load(getStream(resource));
} catch (IOException e) {
throw new JbpmException("couldn't load properties file '" + resource + "'", e);
}
return properties;
}
/**
* searches the given resource, first on the root of the classpath and if
* not not found there, in the given directory. public static InputStream
* getStream(String resource, String directory) { InputStream is =
* getClassLoader().getResourceAsStream(resource); if (is==null) { is =
* getClassLoader().getResourceAsStream(directory+"/"+resource); } return
* is; }
*
* public static Properties getProperties(String resource, String directory) {
* Properties properties = new Properties(); try {
* properties.load(getStream(resource, directory)); } catch (IOException e) {
* throw new JbpmException("couldn't load properties file '"+resource+"'",
* e); } return properties; }
*/
public static ClassLoader getProcessClassLoader(ProcessDefinition processDefinition) {
return new ProcessClassLoader(getClassLoader(), processDefinition);
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years
[JBoss JIRA] Created: (JBPM-1173) Fork Node doesn't support conditions on Transitions
by Britt Miner (JIRA)
Fork Node doesn't support conditions on Transitions
---------------------------------------------------
Key: JBPM-1173
URL: http://jira.jboss.com/jira/browse/JBPM-1173
Project: JBoss jBPM
Issue Type: Bug
Components: Core Engine
Affects Versions: jBPM jPDL 3.2
Reporter: Britt Miner
Assigned To: Tom Baeyens
Documentation does not clearly provide any limits to where conditions on Transitions can be used, but the Fork Node doesn't support Transition conditions. For instance
<fork name='FORK_1' >
<transition name='t1' to='NODE_A'>
<condition>#{false}</condition>
</transition>
<transition name='t2' to='NODE_B'/>
</fork>
will fail with a "transition condition #{false} evaluated to 'false'" error when the fork attempts to take transition 't1'. Why provide for this? Someone might want to:
<fork name='FORK_1' >
<transition name='startMyProject' to='...'/>
<transition name='orderEngine to='...'>
<condition>#{needsEngine}</condition>
</transition>
<transition name='orderWheels to='...'>
<condition>#{needsWheels}</condition>
</transition>
...etc...
</fork>
Correcting the issue is as simple as making the following change to org.jbpm.graph.node.Fork.java:
// BRITT --replace the following line with the code below
// to check conditions before adding valid transitions...
//transitionNames = getLeavingTransitionsMap().keySet(); //original line
Iterator iter = leavingTransitions.iterator();
while (iter.hasNext()) {
Transition candidate = (Transition) iter.next();
String conditionExpression = candidate.getCondition();
if (conditionExpression != null) {
Object result = JbpmExpressionEvaluator.evaluate(conditionExpression, executionContext);
if (Boolean.TRUE.equals(result)) {
transitionNames.add(candidate.getName());
}
}else{
transitionNames.add(candidate.getName());
}
}
if (transitionNames.size() == 0) {
transitionNames.add(this.getDefaultLeavingTransition().getName());
this.getDefaultLeavingTransition().removeConditionEnforcement();
log.warn("All transition conditions have evaluated to 'false'. Taking the default transition.");
}
// --BRITT
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 1 month