JBoss Community

Close ProcessEngine upon BPM console undeployment

created by Alejandro Guizar in jBPM Development - View the full discussion

Regarding JBPM-2881, it seems the process engine is not closed when the BPM console is undeployed. ProcessEngineImpl stops the job executor on close. However, the job dispatcher thread is still running after the web application stops, as evidenced by the following stack trace.

22/06/2010 08:43:28 PM org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already.
Could not load org.jbpm.pvm.internal.tx.StandardTransaction.
The eventual following stack trace is caused by an  error thrown for debugging purposes
as well as to attempt to terminate the thread which caused the illegal access,
and has no functional impact.
java.lang.IllegalStateException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1402)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
    at org.jbpm.pvm.internal.util.ReflectUtil.classForName(ReflectUtil.java:453)
    at org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor.construct(ObjectDescriptor.java:141)
    at org.jbpm.pvm.internal.wire.WireContext.construct(WireContext.java:487)
    at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:466)
    at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:455)
    at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:429)
    at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:339)
    at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:706)
    at org.jbpm.pvm.internal.env.BasicEnvironment.get(BasicEnvironment.java:132)
    at org.jbpm.pvm.internal.env.BasicEnvironment.get(BasicEnvironment.java:123)
    at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:46)
    at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
    at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
    at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:56)
    at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
    at org.jbpm.pvm.internal.jobexecutor.DispatcherThread.acquireJobs(DispatcherThread.java:126)
    at org.jbpm.pvm.internal.jobexecutor.DispatcherThread.run(DispatcherThread.java:67)

I did not develop the console integration and lack the knowledge required to place the ProcessEngine.close() call properly. Any pointers in this direction would be very helpful.

Reply to this message by going to Community

Start a new discussion in jBPM Development at Community