Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Virgo » Virgo hangs when stopping web bundle(Virgo hangs when stopping web bundle using Spring DM, Apache Shiro and web filter)
Virgo hangs when stopping web bundle [message #871405] Sun, 13 May 2012 11:57 Go to next message
Roman Janusz is currently offline Roman Janusz
Messages: 2
Registered: May 2012
Junior Member
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?
Re: Virgo hangs when stopping web bundle [message #872262 is a reply to message #871405] Tue, 15 May 2012 19:45 Go to previous message
Roman Janusz is currently offline Roman Janusz
Messages: 2
Registered: May 2012
Junior Member
OK, I found out what's wrong.
The web filter was defined in different bundle than the web bundle and was imported into the web bundle as an OSGi service through Spring DM and thus, it was a Proxy, which caused trouble.
Previous Topic:Spring OSGI version in virgo 3.5.0.M4
Next Topic:Issue with Version range in Import package
Goto Forum:
  


Current Time: Sat Oct 25 19:10:18 GMT 2014

Powered by FUDForum. Page generated in 0.01921 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software