我们正在加载测试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)。有人遇到这些错误?
问题 - http://jira.grails.org/browse/GRAILS-9044谢谢 – 2012-04-20 13:07:24