[MGNLWORKFLOW-247] Unclear error message if the workflow configuration is incorrect Created: 28/May/14  Updated: 04/Jun/14  Resolved: 30/May/14

Status: Closed
Project: Magnolia Workflow Module
Component/s: jBPM
Affects Version/s: 5.3.1
Fix Version/s: 5.3.3, 5.4

Type: Improvement Priority: Neutral
Reporter: Magnolia International Assignee: Espen Jervidalo
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)

 Description   

With an invalid workflow configuraiton, the following error message is shown on startup:

2014-05-28 13:31:32,022 ERROR info.magnolia.module.workflow.WorkflowBaseModule  : Workflow manager failed to start
java.lang.IllegalArgumentException: stream cannot be null
	at org.drools.core.io.impl.InputStreamResource.<init>(InputStreamResource.java:44)
	at org.drools.core.io.impl.InputStreamResource.<init>(InputStreamResource.java:38)
	at org.drools.core.io.impl.ResourceFactoryServiceImpl.newInputStreamResource(ResourceFactoryServiceImpl.java:107)
	at org.kie.internal.io.ResourceFactory.newInputStreamResource(ResourceFactory.java:87)
	at info.magnolia.module.workflow.jbpm.runtime.manager.MgnlRuntimeEnvironment.loadFlows(MgnlRuntimeEnvironment.java:101)
	at info.magnolia.module.workflow.jbpm.runtime.manager.MgnlRuntimeEnvironment.init(MgnlRuntimeEnvironment.java:76)
	at info.magnolia.module.workflow.jbpm.runtime.manager.MgnlRuntimeManager.init(MgnlRuntimeManager.java:65)
	at info.magnolia.module.workflow.jbpm.JbpmWorkflowManager.startEngine(JbpmWorkflowManager.java:130)
	at info.magnolia.module.workflow.WorkflowBaseModule.start(WorkflowBaseModule.java:63)
	at info.magnolia.module.ModuleManagerImpl.startModule(ModuleManagerImpl.java:399)
	at info.magnolia.module.ModuleManagerImpl.startModules(ModuleManagerImpl.java:344)
	at info.magnolia.module.ui.ModuleManagerWebUI.onStartup(ModuleManagerWebUI.java:79)
	at info.magnolia.cms.beans.config.ConfigLoader.load(ConfigLoader.java:149)
	at info.magnolia.init.MagnoliaServletContextListener$1.doExec(MagnoliaServletContextListener.java:248)
	at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:414)
	at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:411)
	at info.magnolia.context.MgnlContext.doInSystemContext(MgnlContext.java:385)
	at info.magnolia.init.MagnoliaServletContextListener.startServer(MagnoliaServletContextListener.java:245)
	at info.magnolia.init.MagnoliaServletContextListener.contextInitialized(MagnoliaServletContextListener.java:171)
	at info.magnolia.init.MagnoliaServletContextListener.contextInitialized(MagnoliaServletContextListener.java:125)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
	at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1558)
	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.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:835)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:771)
	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:620)
	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:567)
	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.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:835)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:771)
	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1455)
	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:75)
	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1296)
	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1388)
	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:819)
	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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:303)
	at sun.rmi.transport.Transport$1.run(Transport.java:159)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:695)

The error message is not clear, and the identification of the problem not possible without debugging.

How to reproduce:
1. Create an invalid workflow definition, for instance, modifying the property resourcePath to an non existing file.
2. Restart magnolia

In this case, the error message must explain that the workflow definition is not correctly configured because of the invlaid resourcePath.


Generated at Mon Feb 12 10:08:12 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.