[JBoss JIRA] Created: (JBPM-1686) NPE when reading a process definition with a decision name which contains the "/" character
by Julien Kronegg (JIRA)
NPE when reading a process definition with a decision name which contains the "/" character
-------------------------------------------------------------------------------------------
Key: JBPM-1686
URL: https://jira.jboss.org/jira/browse/JBPM-1686
Project: JBoss jBPM
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: jPDL 3.2.2
Environment: JDK1.6.0, Eclipse 3.3
Reporter: Julien Kronegg
Priority: Minor
When a process definition is read and when it contains a decision named with a "/" character, a NullPointerException is raised:
import org.jbpm.graph.def.ProcessDefinition;
public class TestDecisionNPE {
public static final void main(String[] args){
ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
" <transition to='d/e' />" +
" </start-state>" +
" <decision name='d/e'>" +
" <transition name='one' to='a'>" +
" <condition>#{a == 1}</condition>" +
" </transition>" +
" <transition name='three' to='c'>" +
" <condition>#{a == 3}</condition>" +
" </transition>" +
" </decision>" +
" <state name='a' />" +
" <state name='c' />" +
"</process-definition>");
}
}
raises:
GRAVE: couldn't parse process definition
java.lang.NullPointerException
at org.jbpm.graph.def.ProcessDefinition.findNode(ProcessDefinition.java:345)
at org.jbpm.graph.def.ProcessDefinition.findNode(ProcessDefinition.java:299)
at org.jbpm.jpdl.xml.JpdlXmlReader.resolveTransitionDestination(JpdlXmlReader.java:774)
at org.jbpm.jpdl.xml.JpdlXmlReader.resolveTransitionDestinations(JpdlXmlReader.java:740)
at org.jbpm.jpdl.xml.JpdlXmlReader.resolveTransitionDestinations(JpdlXmlReader.java:732)
at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:162)
at org.jbpm.graph.def.ProcessDefinition.parseXmlString(ProcessDefinition.java:151)
at test.TestDecisionNPE.main(TestDecisionNPE.java:7)
Exception in thread "main" org.jbpm.jpdl.JpdlException: [[ERROR] couldn't parse process definition]
at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:172)
at org.jbpm.graph.def.ProcessDefinition.parseXmlString(ProcessDefinition.java:151)
at test.TestDecisionNPE.main(TestDecisionNPE.java:7)
This is due to a "node = nodeCollection.getNode(namePart);" in ProcessDefinition.findNode(): a Decision has no nodes, so the nodeCollection is null.
It should be :
1. a more descriptive exception message, such as "could not get the node with name XXX"
2. a validation step which prevent the node name to contain "/" characters, e.g. throw an exception "the node name cannot contain a "/" character"
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 10 months
[JBoss JIRA] Created: (JBPM-1280) QA job executor
by Tom Baeyens (JIRA)
QA job executor
---------------
Key: JBPM-1280
URL: http://jira.jboss.com/jira/browse/JBPM-1280
Project: JBoss jBPM
Issue Type: Task
Security Level: Public (Everyone can see)
Components: PVM
Reporter: Tom Baeyens
First, we need to establish what we're going to QA and how. I see 3 distinct types of tests for the job executor
1) Using JobSession to create jobs and then use the JobExecutor API's to control the execution of those jobs. This way, all these tests can and should be done in a single thread.
* a commit for processing an asynchronous message
* a commit for processing a timer
* a commit for the combination of a an asynchronous message and a timer
* a commit with a custom resource in the standard transaction
* test a rollback caused by a user code exception in an asynchronous continuation
* test a rollback caused by a user code exception in an timer
* test a rollback caused by a user code exception with a custom resource in the standard transaction
* test a rollback caused by an optimistic locking exception in an asynchronous continuation
* test a rollback caused by an optimistic locking exception in an timer
* test a rollback caused by an optimistic locking with a custom resource in the standard transaction
2) If we only use the public, stable API's, we'll be a lot more limited in what we're able to test. We can e.g. run this test suite against the jBPM 3 codebase.
* create and execute a process with a couple of asynchronous continuation in it.
* create and execute a process with asynchronous continuations in a concurrent section.
* create and execute a process with a couple of timers in it.
* create and execute a process with a couple of timers in a concurrent section
* a combination of a timer and an asynchronous continuation
3) Load and stress tests. Also these should only make use of public API's and ways to deploy processes. So that this test suite is configurable/runnable on different environments (and also against the jBPM 3 codebase)
--
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, 10 months
[JBoss JIRA] Created: (JBPM-1141) The jBPM 'websale' sample application fails - project JIRA for SOA-446
by Len DiMaggio (JIRA)
The jBPM 'websale' sample application fails - project JIRA for SOA-446
----------------------------------------------------------------------
Key: JBPM-1141
URL: http://jira.jboss.com/jira/browse/JBPM-1141
Project: JBoss jBPM
Issue Type: Bug
Components: Training
Affects Versions: jBPM jPDL 3.2.2
Environment: JBoss Developer Studio
Build id: 1.0.0.GA
SOA-P GA
/opt/GA/soa-4.2.0.GA.zip
/opt/GA/standalone-soa-4.2.0.GA.zip
RHEL5
Linux ldimaggi.csb 2.6.18-53.1.13.el5 #1 SMP Mon Feb 11 13:27:52 EST 2008 i686 i686 i386 GNU/Linux
Sun Java 1.5
java version "1.5.0_14"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
Java HotSpot(TM) Client VM (build 1.5.0_14-b03, mixed mode)
RDBMS
H2, version: 1.0.66 (2008-01-18)
CPU
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 13
model name : Intel(R) Pentium(R) M processor 1.70GHz
stepping : 6
cpu MHz : 1700.000
cache size : 2048 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr mce cx8 mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est tm2
bogomips : 3398.35
Reporter: Len DiMaggio
Assigned To: Tom Baeyens
Details are in:
http://jira.jboss.com/jira/browse/SOA-446
--
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, 10 months
[JBoss JIRA] Created: (JBPM-1156) jBPM example: customTaskInstance fails with classcast exception
by Len DiMaggio (JIRA)
jBPM example: customTaskInstance fails with classcast exception
----------------------------------------------------------------
Key: JBPM-1156
URL: http://jira.jboss.com/jira/browse/JBPM-1156
Project: JBoss jBPM
Issue Type: Bug
Reporter: Len DiMaggio
Assigned To: Tom Baeyens
Priority: Minor
jBPM example: customTaskInstance fails with this exception:
See: http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4088401#4088401
java.lang.ClassCastException: org.jbpm.taskmgmt.exe.TaskInstance
at org.jbpm.taskinstance.CustomTaskControllerHandler.initializeTaskVariables(CustomTaskControllerHandler.java:66)
at org.jbpm.taskmgmt.def.TaskController.initializeVariables(TaskController.java:82)
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.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.taskmgmt.def.TaskController$$EnhancerByCGLIB$$1af08496.initializeVariables(<generated>)
at org.jbpm.taskmgmt.exe.TaskInstance.initializeVariables(TaskInstance.java:145)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:136)
at org.jbpm.graph.node.TaskNode.execute(TaskNode.java:168)
at org.jbpm.graph.def.Node.enter(Node.java:319)
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.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$55e0744d.enter(<generated>)
at org.jbpm.graph.def.Transition.take(Transition.java:151)
at org.jbpm.graph.def.Node.leave(Node.java:394)
at org.jbpm.graph.node.StartState.leave(StartState.java:70)
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.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$55e0744d.leave(<generated>)
at org.jbpm.graph.exe.Token.signal(Token.java:195)
at org.jbpm.graph.exe.Token.signal(Token.java:140)
at org.jbpm.taskinstance.CustomTaskInstanceTest.createNewProcessInstance(CustomTaskInstanceTest.java:162)
at org.jbpm.taskinstance.CustomTaskInstanceTest.testCustomTaskInstance(CustomTaskInstanceTest.java:125)
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 junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
<classpathentry kind="lib" path="/opt/GA/jboss-soa-p-standalone.4.2.0/jbpm-jpdl/jbpm-jpdl.jar"/>
<classpathentry kind="lib" path="/opt/GA/jboss-soa-p.4.2.0/seam/lib/jbpm-3.1.4.jar"/>
<classpathentry kind="lib" path="/opt/GA/jboss-soa-p-standalone.4.2.0/jbpm-jpdl/lib/hibernate3.jar"/>
<classpathentry kind="lib" path="/opt/GA/jboss-soa-p-standalone.4.2.0/jbpm-jpdl/lib/dom4j.jar"/>
<classpathentry kind="lib" path="/opt/GA/jboss-soa-p-standalone.4.2.0/jbpm-jpdl/jbpm-identity.jar"/>
--
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, 10 months