Issue Details (XML | Word | Printable)

Key: GROOVY-2165
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Blocker Blocker
Assignee: Guillaume Laforge
Reporter: Graeme Rocher
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
groovy

GroovyClassLoader dead lock situation with multiple threads

Created: 04/Oct/07 06:31 AM   Updated: 05/Oct/07 05:52 AM   Resolved: 05/Oct/07 05:52 AM
Component/s: None
Affects Version/s: 1.1-beta-3
Fix Version/s: 1.1-rc-1

Time Tracking:
Not Specified


 Description  « Hide

The GroovyClassLoader is causing deadlock in certain situations with Groovy. The problem appears to be the deadlock is between these two:

for (Iterator iter = collector.getLoadedClasses().iterator(); iter.hasNext();) {
Class clazz = (Class) iter.next();
setClassCacheEntry(clazz);
}
protected void setClassCacheEntry(Class cls) {
synchronized (classCache) {
classCache.put(cls.getName(),cls);
}
}

and the call to

protected Class getClassCacheEntry(String name) {
if (name==null) return null;
synchronized (classCache) {
return (Class) classCache.get(name);
}
}
public Class loadClass(final String name, boolean lookupScriptFiles, boolean preferClassOverScript, boolean resolve)
throws ClassNotFoundException, CompilationFailedException
{
// look into cache
Class cls=getClassCacheEntry(name);
}

Here is the full thread dump from a Grails application:

"btpool0-2" prio=5 tid=0x006306a0 nid=0x1952e00 waiting for monitor entry [0xb110e000..0xb1112d10]
        at groovy.lang.GroovyClassLoader.getClassCacheEntry(GroovyClassLoader.java:497)
        - waiting to lock <0x0b0abbf8> (a java.util.HashMap)
        at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:599)
        at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:703)
        at org.codehaus.groovy.grails.compiler.GrailsClassLoader.loadClass(GrailsClassLoader.java:85)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        - locked <0x0b092950> (a org.codehaus.groovy.grails.compiler.GrailsClassLoader)
        at sun.misc.Unsafe.defineClass(Native Method)
        at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:45)
        at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:381)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:377)
        at sun.reflect.MethodAccessorGenerator.generateMethod(MethodAccessorGenerator.java:59)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:28)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at org.codehaus.groovy.runtime.Invoker.invokePojoMethod(Invoker.java:87)
        at org.codehaus.groovy.runtime.Invoker.invokeMethod(Invoker.java:75)
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:74)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:158)
        at org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib$_closure4.doCall(ApplicationTagLib.groovy:129)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:784)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at org.codehaus.groovy.runtime.Invoker.invokePogoMethod(Invoker.java:98)
        at org.codehaus.groovy.runtime.Invoker.invokeMethod(Invoker.java:79)
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:74)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:158)
        at org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib.invokeMethod(ApplicationTagLib.groovy)
        at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:804)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:754)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:66)
        at org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib$_closure3.doCall(ApplicationTagLib.groovy:90)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.Closure.call(Closure.java:292)
        at org.codehaus.groovy.grails.web.pages.GroovyPage.invokeTag(GroovyPage.java:219)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:741)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:66)
        at Developer_grails_apps_thread_grails_app_views_book_list_gsp$_run_closure4.doCall(Developer_grails_apps_thread_grails_app_views_book_list_gsp:40)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.Closure.call(Closure.java:292)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.eachWithIndex(DefaultGroovyMethods.java:842)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.NewInstanceMetaMethod.invoke(NewInstanceMetaMethod.java:91)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at org.codehaus.groovy.runtime.Invoker.invokePojoMethod(Invoker.java:87)
        at org.codehaus.groovy.runtime.Invoker.invokeMethod(Invoker.java:75)
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:74)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:158)
        at Developer_grails_apps_thread_grails_app_views_book_list_gsp.run(Developer_grails_apps_thread_grails_app_views_book_list_gsp:32)
        at org.codehaus.groovy.grails.web.pages.GroovyPageWritable.writeTo(GroovyPageWritable.java:110)
        at org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:109)
        at org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:88)
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:239)
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1140)
        at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:268)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:790)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:367)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:104)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
        at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:155)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:295)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:503)
        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:827)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:511)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:210)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:379)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:361)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

"btpool0-1" prio=5 tid=0x0062eec0 nid=0x1952a00 waiting for monitor entry [0xb1090000..0xb1091d10]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:295)
        - waiting to lock <0x0b092950> (a org.codehaus.groovy.grails.compiler.GrailsClassLoader)
        at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:618)
        at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:480)
        at org.codehaus.groovy.control.ResolveVisitor.resolveToClass(ResolveVisitor.java:419)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromDefaultImports(ResolveVisitor.java:284)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromStaticInnerClasses(ResolveVisitor.java:269)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromStaticInnerClasses(ResolveVisitor.java:269)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromStaticInnerClasses(ResolveVisitor.java:269)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromStaticInnerClasses(ResolveVisitor.java:269)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromStaticInnerClasses(ResolveVisitor.java:269)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromStaticInnerClasses(ResolveVisitor.java:269)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromModule(ResolveVisitor.java:398)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:131)
        at org.codehaus.groovy.control.ResolveVisitor.resolveOrFail(ResolveVisitor.java:116)
        at org.codehaus.groovy.control.ResolveVisitor.resolveOrFail(ResolveVisitor.java:127)
        at org.codehaus.groovy.control.ResolveVisitor.visitConstructorOrMethod(ResolveVisitor.java:95)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:93)
        at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:849)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:48)
        at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:774)
        at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:72)
        at org.codehaus.groovy.control.CompilationUnit$5.call(CompilationUnit.java:537)
        at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:785)
        at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:448)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:290)
        - locked <0x0b0abbf8> (a java.util.HashMap)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:260)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:255)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.compileGroovyPage(GroovyPagesTemplateEngine.java:420)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.buildPageMetaInfo(GroovyPagesTemplateEngine.java:402)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:293)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplateWithResource(GroovyPagesTemplateEngine.java:277)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:167)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.renderPageWithEngine(GroovyPagesServlet.java:148)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.doPage(GroovyPagesServlet.java:131)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.doGet(GroovyPagesServlet.java:95)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:367)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.applyDecorator(GrailsPageFilter.java:74)
        at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:62)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:155)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:295)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:503)
        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:827)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:511)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:210)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:379)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:361)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

"Store org.hibernate.cache.StandardQueryCache Spool Thread" daemon prio=2 tid=0x0062a200 nid=0x1954600 waiting on condition [0xb1010000..0xb1010d10]
        at java.lang.Thread.sleep(Native Method)
        at net.sf.ehcache.store.DiskStore.spoolAndExpiryThreadMain(DiskStore.java:573)
        at net.sf.ehcache.store.DiskStore.access$800(DiskStore.java:65)
        at net.sf.ehcache.store.DiskStore$SpoolAndExpiryThread.run(DiskStore.java:1057)

"Store org.hibernate.cache.UpdateTimestampsCache Spool Thread" daemon prio=2 tid=0x00629f00 nid=0x1953200 waiting on condition [0xb0f8f000..0xb0f8fd10]
        at java.lang.Thread.sleep(Native Method)
        at net.sf.ehcache.store.DiskStore.spoolAndExpiryThreadMain(DiskStore.java:573)
        at net.sf.ehcache.store.DiskStore.access$800(DiskStore.java:65)
        at net.sf.ehcache.store.DiskStore$SpoolAndExpiryThread.run(DiskStore.java:1057)

"Thread-6" daemon prio=5 tid=0x006248f0 nid=0x19b0a00 waiting on condition [0xb0f0e000..0xb0f0ed10]
        at java.lang.Thread.sleep(Native Method)
        at org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:95)

"Timer-0" prio=5 tid=0x00624350 nid=0x18f8600 in Object.wait() [0xb0e8d000..0xb0e8dd10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x0b00d768> (a java.util.TaskQueue)
        at java.util.TimerThread.mainLoop(Timer.java:509)
        - locked <0x0b00d768> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:462)

"btpool0-0 - Acceptor0 SelectChannelConnector@0.0.0.0:8080" prio=5 tid=0x00622020 nid=0x18f8200 runnable [0xb0d8b000..0xb0d8bd10]
        at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
        at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:118)
        at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:69)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
        - locked <0x0cffeaf0> (a sun.nio.ch.Util$1)
        - locked <0x0cffeb00> (a java.util.Collections$UnmodifiableSet)
        - locked <0x0cffeaa8> (a sun.nio.ch.KQueueSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
        at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:432)
        at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:169)
        at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124)
        at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:516)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

"Low Memory Detector" daemon prio=5 tid=0x0060a7c0 nid=0x1819800 runnable [0x00000000..0x00000000]

"CompilerThread1" daemon prio=9 tid=0x00609dc0 nid=0x1819400 waiting on condition [0x00000000..0xb0c0832c]

"CompilerThread0" daemon prio=9 tid=0x00609830 nid=0x1819000 waiting on condition [0x00000000..0xb0b8732c]

"AdapterThread" daemon prio=9 tid=0x00609270 nid=0x1818c00 waiting on condition [0x00000000..0x00000000]

"Signal Dispatcher" daemon prio=9 tid=0x00608d40 nid=0x1818800 waiting on condition [0x00000000..0x00000000]

"Finalizer" daemon prio=8 tid=0x006083c0 nid=0x1813000 in Object.wait() [0xb0a04000..0xb0a04d10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x091fe5c0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x091fe5c0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x00607fc0 nid=0x1812c00 in Object.wait() [0xb0983000..0xb0983d10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x091fe640> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:474)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0x091fe640> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00601630 nid=0x1804a00 waiting on condition [0xb07fa000..0xb08000dc]
        at java.lang.Thread.sleep(Native Method)
        at org.codehaus.groovy.runtime.DefaultGroovyStaticMethods.sleepImpl(DefaultGroovyStaticMethods.java:87)
        at org.codehaus.groovy.runtime.DefaultGroovyStaticMethods.sleep(DefaultGroovyStaticMethods.java:108)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.NewStaticMetaMethod.invoke(NewStaticMetaMethod.java:85)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:141)
        at org.codehaus.groovy.gant.GantMetaClass.invokeMethod(GantMetaClass.java:70)
        at org.codehaus.groovy.gant.GantMetaClass.invokeMethod(GantMetaClass.java:81)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:66)
        at RunApp_groovy$_run_closure3.doCall(RunApp_groovy:108)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:141)
        at org.codehaus.groovy.gant.GantMetaClass.invokeMethod(GantMetaClass.java:70)
        at org.codehaus.groovy.gant.GantMetaClass.invokeMethod(GantMetaClass.java:81)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:66)
        at RunApp_groovy$_run_closure3.doCall(RunApp_groovy)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:141)
        at org.codehaus.groovy.gant.GantMetaClass.invokeMethod(GantMetaClass.java:70)
        at groovy.lang.Closure.call(Closure.java:292)
        at groovy.lang.Script.invokeMethod(Script.java:87)
        at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:804)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:754)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:141)
        at org.codehaus.groovy.gant.GantMetaClass.invokeMethod(GantMetaClass.java:70)
        at org.codehaus.groovy.gant.GantMetaClass.invokeMethod(GantMetaClass.java:81)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:66)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrent0(ScriptBytecodeAdapter.java:99)
        at RunApp_groovy$_run_closure1.doCall(RunApp_groovy:51)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:141)
        at org.codehaus.groovy.gant.GantMetaClass.invokeMethod(GantMetaClass.java:70)
        at org.codehaus.groovy.gant.GantMetaClass.invokeMethod(GantMetaClass.java:81)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:66)
        at RunApp_groovy$_run_closure1.doCall(RunApp_groovy)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:141)
        at org.codehaus.groovy.gant.GantMetaClass.invokeMethod(GantMetaClass.java:70)
        at groovy.lang.Closure.call(Closure.java:292)
        at groovy.lang.Closure.call(Closure.java:287)
        at groovy.lang.Closure.run(Closure.java:368)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:141)
        at org.codehaus.groovy.gant.GantMetaClass.invokeMethod(GantMetaClass.java:70)
        at org.codehaus.groovy.runtime.Invoker.invokePogoMethod(Invoker.java:98)
        at org.codehaus.groovy.runtime.Invoker.invokeMethod(Invoker.java:79)
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:74)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:158)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethod0(ScriptBytecodeAdapter.java:201)
        at gant.Gant.dispatch(Gant.groovy:152)
        at gant.Gant.this$2$dispatch(Gant.groovy)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:540)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at org.codehaus.groovy.runtime.Invoker.invokePogoMethod(Invoker.java:98)
        at org.codehaus.groovy.runtime.Invoker.invokeMethod(Invoker.java:79)
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:74)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:158)
        at gant.Gant.invokeMethod(Gant.groovy)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:66)
        at gant.Gant.process(Gant.groovy:287)
        at gant.Gant.this$2$process(Gant.groovy)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at org.codehaus.groovy.runtime.Invoker.invokePogoMethod(Invoker.java:98)
        at org.codehaus.groovy.runtime.Invoker.invokeMethod(Invoker.java:79)
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:74)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:158)
        at gant.Gant.main(Gant.groovy:298)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:913)
        at groovy.lang.ExpandoMetaClass.invokeStaticMethod(ExpandoMetaClass.java:939)
        at org.codehaus.groovy.runtime.Invoker.invokeMethod(Invoker.java:69)
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:74)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:158)
        at org.codehaus.groovy.grails.cli.GrailsScriptRunner.callPluginOrGrailsScript(GrailsScriptRunner.groovy:191)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:913)
        at groovy.lang.ExpandoMetaClass.invokeStaticMethod(ExpandoMetaClass.java:939)
        at org.codehaus.groovy.runtime.Invoker.invokeStaticMethod(Invoker.java:121)
        at org.codehaus.groovy.runtime.InvokerHelper.invokeStaticMethod(InvokerHelper.java:89)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeStaticMethodN(ScriptBytecodeAdapter.java:218)
        at org.codehaus.groovy.grails.cli.GrailsScriptRunner.main(GrailsScriptRunner.groovy:130)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:101)
        at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)

"VM Thread" prio=9 tid=0x00607790 nid=0x1812800 runnable 

"VM Periodic Task Thread" prio=9 tid=0x0060b320 nid=0x1819c00 waiting on condition 

"Exception Catcher Thread" prio=10 tid=0x00601850 nid=0x1804e00 runnable 

Found one Java-level deadlock:
=============================
"btpool0-2":
  waiting to lock monitor 0x01803660 (object 0x0b0abbf8, a java.util.HashMap),
  which is held by "btpool0-1"
"btpool0-1":
  waiting to lock monitor 0x0180363c (object 0x0b092950, a org.codehaus.groovy.grails.compiler.GrailsClassLoader),
  which is held by "btpool0-2"

Java stack information for the threads listed above:
===================================================
"btpool0-2":
        at groovy.lang.GroovyClassLoader.getClassCacheEntry(GroovyClassLoader.java:497)
        - waiting to lock <0x0b0abbf8> (a java.util.HashMap)
        at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:599)
        at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:703)
        at org.codehaus.groovy.grails.compiler.GrailsClassLoader.loadClass(GrailsClassLoader.java:85)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        - locked <0x0b092950> (a org.codehaus.groovy.grails.compiler.GrailsClassLoader)
        at sun.misc.Unsafe.defineClass(Native Method)
        at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:45)
        at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:381)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:377)
        at sun.reflect.MethodAccessorGenerator.generateMethod(MethodAccessorGenerator.java:59)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:28)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at org.codehaus.groovy.runtime.Invoker.invokePojoMethod(Invoker.java:87)
        at org.codehaus.groovy.runtime.Invoker.invokeMethod(Invoker.java:75)
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:74)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:158)
        at org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib$_closure4.doCall(ApplicationTagLib.groovy:129)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:784)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at org.codehaus.groovy.runtime.Invoker.invokePogoMethod(Invoker.java:98)
        at org.codehaus.groovy.runtime.Invoker.invokeMethod(Invoker.java:79)
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:74)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:158)
        at org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib.invokeMethod(ApplicationTagLib.groovy)
        at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:804)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:754)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:66)
        at org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib$_closure3.doCall(ApplicationTagLib.groovy:90)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.Closure.call(Closure.java:292)
        at org.codehaus.groovy.grails.web.pages.GroovyPage.invokeTag(GroovyPage.java:219)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:741)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:66)
        at Developer_grails_apps_thread_grails_app_views_book_list_gsp$_run_closure4.doCall(Developer_grails_apps_thread_grails_app_views_book_list_gsp:40)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at groovy.lang.Closure.call(Closure.java:292)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.eachWithIndex(DefaultGroovyMethods.java:842)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:64)
        at org.codehaus.groovy.runtime.NewInstanceMetaMethod.invoke(NewInstanceMetaMethod.java:91)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:537)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:772)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:928)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:614)
        at org.codehaus.groovy.runtime.Invoker.invokePojoMethod(Invoker.java:87)
        at org.codehaus.groovy.runtime.Invoker.invokeMethod(Invoker.java:75)
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:74)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:158)
        at Developer_grails_apps_thread_grails_app_views_book_list_gsp.run(Developer_grails_apps_thread_grails_app_views_book_list_gsp:32)
        at org.codehaus.groovy.grails.web.pages.GroovyPageWritable.writeTo(GroovyPageWritable.java:110)
        at org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:109)
        at org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:88)
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:239)
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1140)
        at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:268)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:790)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:367)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:104)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
        at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:155)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:295)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:503)
        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:827)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:511)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:210)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:379)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:361)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
"btpool0-1":
        at java.lang.ClassLoader.loadClass(ClassLoader.java:295)
        - waiting to lock <0x0b092950> (a org.codehaus.groovy.grails.compiler.GrailsClassLoader)
        at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:618)
        at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:480)
        at org.codehaus.groovy.control.ResolveVisitor.resolveToClass(ResolveVisitor.java:419)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromDefaultImports(ResolveVisitor.java:284)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromStaticInnerClasses(ResolveVisitor.java:269)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromStaticInnerClasses(ResolveVisitor.java:269)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromStaticInnerClasses(ResolveVisitor.java:269)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromStaticInnerClasses(ResolveVisitor.java:269)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromStaticInnerClasses(ResolveVisitor.java:269)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromStaticInnerClasses(ResolveVisitor.java:269)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromModule(ResolveVisitor.java:398)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:163)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:131)
        at org.codehaus.groovy.control.ResolveVisitor.resolveOrFail(ResolveVisitor.java:116)
        at org.codehaus.groovy.control.ResolveVisitor.resolveOrFail(ResolveVisitor.java:127)
        at org.codehaus.groovy.control.ResolveVisitor.visitConstructorOrMethod(ResolveVisitor.java:95)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:93)
        at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:849)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:48)
        at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:774)
        at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:72)
        at org.codehaus.groovy.control.CompilationUnit$5.call(CompilationUnit.java:537)
        at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:785)
        at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:448)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:290)
        - locked <0x0b0abbf8> (a java.util.HashMap)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:260)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:255)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.compileGroovyPage(GroovyPagesTemplateEngine.java:420)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.buildPageMetaInfo(GroovyPagesTemplateEngine.java:402)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:293)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplateWithResource(GroovyPagesTemplateEngine.java:277)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:167)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.renderPageWithEngine(GroovyPagesServlet.java:148)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.doPage(GroovyPagesServlet.java:131)
        at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.doGet(GroovyPagesServlet.java:95)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:367)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.applyDecorator(GrailsPageFilter.java:74)
        at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:62)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:155)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:295)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:503)
        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:827)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:511)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:210)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:379)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:361)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

Found 1 deadlock.


Graeme Rocher added a comment - 05/Oct/07 05:52 AM

The deadlock has been resolved by Alex's latest commit