1

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

"http-thread-pool-11180(427)" daemon prio=6 tid=0x000000002e1ec800 nid=0x1e90 waiting for monitor entry [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) 开始。有人遇到过这些错误吗?

4

1 回答 1

1

邮件列表线程: http: //grails.1312388.n4.nabble.com/Thread-Blocking-at-Groovy-ExpandoMetaclass-method-in-a-Grails-App-td4572990.html

于 2012-04-20T08:50:49.713 回答