Virgo hangs when stopping web bundle [message #871405] |
Sun, 13 May 2012 07:57  |
Eclipse User |
|
|
|
Hello,
I have an annoying problem with Virgo 3.0.2.RELEASE. I have an application with a dozen of bundles deployed as a Virgo plan. I'm using Spring DM and Apache Shiro for security. Shiro is configured in Spring application context and declares a web filter.
The problem is that when trying to redeploy my application by refreshing plan file, Virgo hangs for about a minute or two while stopping the web bundle:
[2012-05-13 13:30:34.720] fs-watcher <WE0002I> Stopping web bundle 'ares.plan-1.0.0.SNAPSHOT-gui-core' version '1.0.0.SNAPSHOT' with context path '/ares-gui'.
With jconsole I found out that the hanging thread is this one:
Name: stop children - Catalina:j2eeType=WebModule,name=//localhost/ares-gui,J2EEApplication=none,J2EEServer=none
State: TIMED_WAITING on java.lang.Object@5110d623
Total blocked: 0 Total waited: 1
Stack trace:
java.lang.Object.wait(Native Method)
org.springframework.osgi.service.importer.support.internal.support.RetryTemplate.execute(RetryTemplate.java:106)
org.springframework.osgi.service.importer.support.internal.aop.ServiceDynamicInterceptor.lookupService(ServiceDynamicInterceptor.java:430)
org.springframework.osgi.service.importer.support.internal.aop.ServiceDynamicInterceptor.getTarget(ServiceDynamicInterceptor.java:415)
org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
$Proxy200.destroy(Unknown Source)
org.springframework.web.filter.DelegatingFilterProxy.destroyDelegate(DelegatingFilterProxy.java:249)
org.springframework.web.filter.DelegatingFilterProxy.destroy(DelegatingFilterProxy.java:177)
org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:307)
org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4619)
- locked java.util.HashMap@48a2cd4e
org.apache.catalina.core.StandardContext$4.run(StandardContext.java:5457)
java.lang.Thread.run(Thread.java:662)
Here's my web.xml (shiroFilter is from Spring application context and is imported as OSGi service through Spring DM):
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="(removed link)"
xmlns="(removed link)" xmlns:web="(removed link)"
id="WebApp_ID" version="2.5">
<display-name>Academic Repository Environment for Students
</display-name>
<context-param>
<description>Vaadin production mode</description>
<param-name>productionMode</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>META-INF/spring/applicationContext.xml</param-value>
</context-param>
<context-param>
<param-name>contextClass</param-name>
<param-value>org.eclipse.virgo.web.dm.ServerOsgiBundleXmlWebApplicationContext
</param-value>
</context-param>
<servlet>
<servlet-name>ARES</servlet-name>
<servlet-class>ares.gui.core.ApplicationServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ARES</servlet-name>
<url-pattern>/*</url-pattern>
<url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Does anyone have any idea?
|
|
|
|
Powered by
FUDForum. Page generated in 0.05209 seconds