[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3105) JBSEAM-979 (changesets 8237 and 8251) brought serious regression to pageflows declaration processing

Przemyslaw Jaskierski (JIRA) jira-events at lists.jboss.org
Thu Jun 12 16:23:34 EDT 2008


JBSEAM-979 (changesets 8237 and 8251) brought serious regression to pageflows declaration processing
----------------------------------------------------------------------------------------------------

                 Key: JBSEAM-3105
                 URL: http://jira.jboss.com/jira/browse/JBSEAM-3105
             Project: Seam
          Issue Type: Sub-task
          Components: BPM
         Environment: 2.1.0-SNAPSHOT from 2008-06-12, JDK6
            Reporter: Przemyslaw Jaskierski
            Priority: Blocker


Pete, your two commits (changesets 8237 and 8251) apparently brought serious regression to pageflows declaration processing:

JBPM support is somewhat nasty, so subprocesses' jpdl need to be declared/processed before uber-process which use them in <sub-process name="xyz">.

Your changes brought regression here, because now there is NO WAY to assure that these subprocesses are processed before uber-process (ok, maybe this code was broken before, but it worked :)  .

Why?

Because there is no guarantee that order of jpdls declaration from <bpm:pageflow-definitions> is preserved. 

In http://fisheye.jboss.org/browse/Seam/trunk/src/main/org/jboss/seam/bpm/Jbpm.java?r=8237 we can see that there is an iteration over a Set when processing pageflow files. This should be iteration over indexed collection, i.e. List filled with pageflow file names in the order of their apperance in components.xml.

Before these two commits, something like this behaved properly:

<bpm:pageflow-definitions>
            <value>pageflows/user/registerUserSubProcess.jpdl.xml</value>
            <value>pageflows/ordering/orderPreparingWizard.jpdl.xml</value>
</bpm:pageflow-definitions>

Now, they are processed in the reversed (random) order, spitting:


* 2008-06-12 21:41:40,164 [main]  
  ERROR JpdlXmlReader.readProcessDefinition():167
  couldn't parse process definition
java.lang.NullPointerException
	at org.jbpm.graph.node.DbSubProcessResolver.findSubProcess(DbSubProcessResolver.java:43)
	at org.jboss.seam.bpm.Jbpm$SeamSubProcessResolver.findSubProcess(Jbpm.java:348)
	at org.jbpm.graph.node.ProcessState.read(ProcessState.java:108)
	at org.jbpm.jpdl.xml.JpdlXmlReader.readNodes(JpdlXmlReader.java:260)
	at org.jboss.seam.bpm.PageflowParser.readNodes(PageflowParser.java:41)
	at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:156)
	at org.jboss.seam.bpm.Jbpm.parseInputSource(Jbpm.java:333)
	at org.jboss.seam.bpm.Jbpm.getPageflowDefinitionFromResource(Jbpm.java:163)
	at org.jboss.seam.bpm.Jbpm.installPageflowDefinitions(Jbpm.java:252)
	at org.jboss.seam.bpm.Jbpm.startup(Jbpm.java:79)
	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.jboss.seam.util.Reflections.invoke(Reflections.java:21)
	at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125)
	at org.jboss.seam.Component.callComponentMethod(Component.java:2195)
	at org.jboss.seam.Component.callCreateMethod(Component.java:2118)
	at org.jboss.seam.Component.newInstance(Component.java:2078)
	at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304)
	at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278)
	at org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:95)
	at org.jboss.seam.init.Initialization.init(Initialization.java:630)
	at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Jun 12, 2008 9:41:40 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener
org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.bpm.jbpm
	at org.jboss.seam.Component.newInstance(Component.java:2090)
	at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304)
	at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278)
	at org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:95)
	at org.jboss.seam.init.Initialization.init(Initialization.java:630)
	at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: org.jbpm.jpdl.JpdlException: [[ERROR] Unable to parse process definition pageflows/ordering/orderPreparingWizard.jpdl.xml]
	at org.jboss.seam.bpm.Jbpm.getPageflowDefinitionFromResource(Jbpm.java:167)
	at org.jboss.seam.bpm.Jbpm.installPageflowDefinitions(Jbpm.java:252)
	at org.jboss.seam.bpm.Jbpm.startup(Jbpm.java:79)
	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.jboss.seam.util.Reflections.invoke(Reflections.java:21)
	at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125)
	at org.jboss.seam.Component.callComponentMethod(Component.java:2195)
	at org.jboss.seam.Component.callCreateMethod(Component.java:2118)
	at org.jboss.seam.Component.newInstance(Component.java:2078)
	... 20 more
Jun 12, 2008 9:41:40 PM org.apache.catalina.core.StandardContext start



 

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

        



More information about the seam-issues mailing list