[ http://issues.apache.org/jira/browse/COCOON-1694?page=all ]

Pier Fumagalli updated COCOON-1694:
-----------------------------------

    Attachment: patch.txt

Ok, the problem lied in the fact that each persistent cache registers a 
shutdown hook in the runtime, and if someone (like me) likes to Kill the JVM as 
normal unix processes, the hook gets executed before our code can shutdown, and 
EHCache doesn't like to be disposed twice.

This patch fixes the behavior by invoking the shutdown method on the manager 
only if the current cache instance is still alive.

> Error decommissioning component: 
> org.apache.cocoon.components.store.impl.EHDefaultStore
> ---------------------------------------------------------------------------------------
>
>          Key: COCOON-1694
>          URL: http://issues.apache.org/jira/browse/COCOON-1694
>      Project: Cocoon
>         Type: Bug
>   Components: * Cocoon Core
>     Versions: 2.1.8
>     Reporter: Pier Fumagalli
>  Attachments: patch.txt
>
> Every time Cocoon is shut down, I can see this exception:
> [2005/11/22 21:38:34.063] WARN  [manager] Error decommissioning component: 
> org.apache.cocoon.components.store.impl.EHDefaultStore
> java.lang.IllegalStateException: The cocoon-ehcache-1 Cache is not alive.
>         at net.sf.ehcache.Cache.checkStatus(Cache.java:713)
>         at net.sf.ehcache.Cache.dispose(Cache.java:618)
>         at net.sf.ehcache.CacheManager.shutdown(CacheManager.java:382)
>         at 
> org.apache.cocoon.components.store.impl.EHDefaultStore.dispose(EHDefaultStore.java:229)
>         at 
> org.apache.avalon.framework.container.ContainerUtil.dispose(ContainerUtil.java:306)
>         at 
> org.apache.avalon.excalibur.component.DefaultComponentFactory.decommission(DefaultComponentFactory.java:356)
>         at 
> org.apache.avalon.excalibur.component.ThreadSafeComponentHandler.dispose(ThreadSafeComponentHandler.java:165)
>         at 
> org.apache.avalon.excalibur.component.ExcaliburComponentManager.dispose(ExcaliburComponentManager.java:623)
>         at 
> org.apache.cocoon.components.CocoonComponentManager.dispose(CocoonComponentManager.java:509)
>         at 
> org.apache.avalon.framework.container.ContainerUtil.dispose(ContainerUtil.java:306)
>         at org.apache.cocoon.Cocoon.dispose(Cocoon.java:536)
>         at 
> org.apache.avalon.framework.container.ContainerUtil.dispose(ContainerUtil.java:306)
>         at 
> org.apache.cocoon.servlet.CocoonServlet.disposeCocoon(CocoonServlet.java:1554)
>         at 
> org.apache.cocoon.servlet.CocoonServlet.destroy(CocoonServlet.java:518)
>         at org.mortbay.jetty.servlet.ServletHolder.stop(Unknown Source)
>         at org.mortbay.jetty.servlet.ServletHandler.doStop(Unknown Source)
>         at org.mortbay.jetty.servlet.WebApplicationHandler.doStop(Unknown 
> Source)
>         at org.mortbay.util.Container.stop(Unknown Source)
>         at org.mortbay.http.HttpContext.doStop(Unknown Source)
>         at org.mortbay.jetty.servlet.ServletHttpContext.doStop(Unknown Source)
>         at org.mortbay.jetty.servlet.WebApplicationContext.doStop(Unknown 
> Source)
>         at org.mortbay.util.Container.stop(Unknown Source)
>         at org.mortbay.http.HttpContext.stop(Unknown Source)
>         at org.mortbay.http.HttpServer.doStop(Unknown Source)
>         at org.mortbay.util.Container.stop(Unknown Source)
>         at org.mortbay.jetty.Server$ShutdownHookThread.run(Unknown Source)
> Any clue about what's going on?

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to