2012-04-20 60 views
1

我们正在加载测试Glassfish 3.1.1 App Server上托管的Grails应用程序(Grails 2.0版本)。在测试中,我们不断地在ExpandoMetaClass'performOperationOnMetaClass方法中阻塞线程。给出堆栈跟踪。这是Grails的一个已知问题吗?在Grails应用程序中使用Groovy ExpandoMetaclass方法阻塞线程

“HTTP线程池-11180(427)” 守护程序PRIO = 6 TID = 0x000000002e1ec800 NID = 0x1e90等待监视器条目[0x000000006944c000]

 java.lang.Thread.State: BLOCKED (on object monitor) 
    at groovy.lang.ExpandoMetaClass.performOperationOnMetaClass(ExpandoMetaClass.java:809) 
    - waiting to lock <0x00000007d1ce8e88> (a groovy.lang.ExpandoMetaClass) 
    at groovy.lang.ExpandoMetaClass.registerInstanceMethod(ExpandoMetaClass.java:873) 
    at groovy.lang.ExpandoMetaClass.setProperty(ExpandoMetaClass.java:788) 
    at org.codehaus.groovy.runtime.InvokerHelper.setProperty(InvokerHelper.java:179) 
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setProperty(ScriptBytecodeAdapter.java:480) 
    at org.codehaus.groovy.grails.plugins.web.filters.FilterConfig.methodMissing(FilterConfig.groovy:86) 
    at sun.reflect.GeneratedMethodAccessor336.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
    at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:828)</code> 

堆栈跟踪为更长,并最终从开始org.codehaus.groovy.grails.plugins.web.taglib.SitemeshTagLib.captureTagContent(SitemeshTagLib.groovy)。有人遇到这些错误?

回答