rave-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anthony Carlucci (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (RAVE-722) Shindig webapp component can't be re-deployed without a container restart
Date Tue, 10 Jul 2012 20:00:47 GMT

     [ https://issues.apache.org/jira/browse/RAVE-722?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Anthony Carlucci resolved RAVE-722.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 0.14
         Assignee: Anthony Carlucci

Shindig's GuiceServletContextListener overrides the ServletContextListener.contextDestroyed
method to perform cleanup tasks when the web application context is destroyed.  However in
Rave, we have a custom GuiceBindingSpringContextLoaderListener class that we use instead of
the aforementioned class, and we apparently never implemented the contextDestroyed function
to invoke the Guice cleanup functions.  Something in Shindig 2.5.0-beta2 finally brought this
issue to light as the contextDestroyed function has been missing all along.
                
> Shindig webapp component can't be re-deployed without a container restart
> -------------------------------------------------------------------------
>
>                 Key: RAVE-722
>                 URL: https://issues.apache.org/jira/browse/RAVE-722
>             Project: Rave
>          Issue Type: Bug
>    Affects Versions: 0.14
>            Reporter: Anthony Carlucci
>            Assignee: Anthony Carlucci
>             Fix For: 0.14
>
>
> Since the upgrade to Shindig 2.5.0-beta2, Rave's ROOT.war web archive can't be re-deployed
to Tomcat without restarting the entire Tomcat process.  It seems like it has to do with Shindig
registering an EhCache class as an MBean, which apparently stays in the JVM between web context
restarts, and Shindig doesn't seem to be removing it or handling that case properly.
> This will affect any deployments of Rave in environments, for example, where you plan
to use Tomcat's auto-deploy feature to only redeploy a web application without restarting
the entire container (such as a CI environment).
> HOW TO REPRODUCE
> ----------------------------------
> 1) Build and deploy Rave using the standard mvn install / mvn cargo:run commands
> 2) Force Tomcat to reload the web application by making a change the the ROOT.war file
located in $RAVE_HOME/rave-portal/target/tomcat6x/webapps.  Any easy way to do this is simply
add a text file into the war.
> 3) Watch the Tomcat logs as the ROOT webapp reloads - you will eventually see the following
error stack:
> [WARNING] [talledLocalContainer] SEVERE: Exception starting filter authFilter
> [WARNING] [talledLocalContainer] com.google.inject.ProvisionException: Guice provision
errors:
> [WARNING] [talledLocalContainer]
> [WARNING] [talledLocalContainer] 1) Error injecting constructor, net.sf.ehcache.CacheException:
javax.management.InstanceAlreadyExistsException: net.sf.ehcache:type=CacheManager,name=ShindigCM
> [WARNING] [talledLocalContainer]   at org.apache.shindig.common.cache.ehcache.EhCacheCacheProvider.<init>(EhCacheCacheProvider.java:75)
> [WARNING] [talledLocalContainer]   while locating org.apache.shindig.common.cache.ehcache.EhCacheCacheProvider
> [WARNING] [talledLocalContainer]   at org.apache.shindig.common.cache.ehcache.EhCacheModule.configure(EhCacheModule.java:32)
> [WARNING] [talledLocalContainer]   while locating org.apache.shindig.common.cache.CacheProvider
> [WARNING] [talledLocalContainer]     for parameter 1 at org.apache.shindig.expressions.Expressions.<init>(Expressions.java:79)
> [WARNING] [talledLocalContainer]   at org.apache.shindig.expressions.Expressions.class(Expressions.java:51)
> [WARNING] [talledLocalContainer]   while locating org.apache.shindig.expressions.Expressions
> [WARNING] [talledLocalContainer]     for parameter 4 at org.apache.shindig.config.JsonContainerConfig.<init>(JsonContainerConfig.java:63)
> [WARNING] [talledLocalContainer]   at org.apache.shindig.config.JsonContainerConfig.class(JsonContainerConfig.java:50)
> [WARNING] [talledLocalContainer]   while locating org.apache.shindig.config.JsonContainerConfig
> [WARNING] [talledLocalContainer]   while locating org.apache.shindig.config.ContainerConfig
> [WARNING] [talledLocalContainer]     for parameter 0 at org.apache.shindig.auth.DefaultSecurityTokenCodec.<init>(DefaultSecurityTokenCodec.java:53)
> [WARNING] [talledLocalContainer]   at org.apache.shindig.auth.DefaultSecurityTokenCodec.class(DefaultSecurityTokenCodec.java:53)
> [WARNING] [talledLocalContainer]   while locating org.apache.shindig.auth.DefaultSecurityTokenCodec
> [WARNING] [talledLocalContainer]   while locating org.apache.shindig.auth.SecurityTokenCodec
> [WARNING] [talledLocalContainer]     for parameter 0 at org.apache.shindig.auth.UrlParameterAuthenticationHandler.<init>(UrlParameterAuthenticationHandler.java:47)
> [WARNING] [talledLocalContainer]   while locating org.apache.shindig.auth.UrlParameterAuthenticationHandler
> [WARNING] [talledLocalContainer]     for parameter 1 at org.apache.shindig.social.core.oauth.AuthenticationHandlerProvider.<init>(AuthenticationHandlerProvider.java:40)
> [WARNING] [talledLocalContainer]   while locating org.apache.shindig.social.core.oauth.AuthenticationHandlerProvider
> [WARNING] [talledLocalContainer]   while locating java.util.List<org.apache.shindig.auth.AuthenticationHandler>
> [WARNING] [talledLocalContainer]     for parameter 0 at org.apache.shindig.auth.AuthenticationServletFilter.setAuthenticationHandlers(AuthenticationServletFilter.java:74)
> [WARNING] [talledLocalContainer]   while locating org.apache.shindig.auth.AuthenticationServletFilter
> [WARNING] [talledLocalContainer]
> [WARNING] [talledLocalContainer] 1 error
> [WARNING] [talledLocalContainer]        at com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:451)
> [WARNING] [talledLocalContainer]        at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:65)
> [WARNING] [talledLocalContainer]        at com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
> [WARNING] [talledLocalContainer]        at org.apache.shindig.common.servlet.InjectedFilter.init(InjectedFilter.java:47)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1385)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
> [WARNING] [talledLocalContainer]        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> [WARNING] [talledLocalContainer]        at java.lang.Thread.run(Thread.java:662)
> [WARNING] [talledLocalContainer] Caused by: net.sf.ehcache.CacheException: javax.management.InstanceAlreadyExistsException:
net.sf.ehcache:type=CacheManager,name=ShindigCM

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message