|
I am experiencing an odd bug with Grails and
resources.groovy. Here’s my resources.groovy declaration: http://ftp-a1.zipwhip.com/2010-06-09_1321.png
So the way that this works, is that we use a broker to process
signals. The broker uses a SubscriptionProcessor to process the subscriptions.
It uses a SubscriptionProcessorLocator to locate the appropriate processor. The
processors are beans. This is a screenshot of the
SubscriberCountSubscriptionProcessor that is referenced in the Locator with “ref”
in resources.groovy: http://ftp-a1.zipwhip.com/2010-06-09_1325.png This is a screenshot of the Echo version: http://ftp-a1.zipwhip.com/2010-06-09_1327.png Now. Here’s the screenshot of the bug! Working: http://ftp-a1.zipwhip.com/2010-06-09_1331.png Not Working: http://ftp-a1.zipwhip.com/2010-06-09_1332.png It says that the MetaClass of a UserCountProcessor is a EchoProcessor!
The metaClass is wrong! How is this even possible? BTW, if you want to know the details of the SpringResolver
or the SubscriptionProcessorLocator: http://ftp-a1.zipwhip.com/2010-06-09_1334.png So! I’m totally confused. Has anyone ever experienced
this? Turns out the one on the bottom always fails: http://ftp-a1.zipwhip.com/2010-06-09_1321.png
If I switch the order of “echo” and “subscriberCount”
the one on the bottom has the wrong meta class! Is it how I’m using “ref” ?? NOTE: The springResolver object has been working for me for
about 6 months without issue… -Michael PS: We passed a million users yesterday! |
|
Forgot to list the stack trace: java.lang.IllegalArgumentException:
object is not an instance of declaring class 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:597) at
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86) at
groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234) at
groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1049) at
groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:923) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:880) at
groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:706) at
com.zipwhip.subscriptions.dotcmd.DotCommandSubscriptionProcessorBase.invokeMethod(DotCommandSubscriptionProcessorBase.groovy) at
org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at
org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55) at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143) at
com.zipwhip.subscriptions.dotcmd.DotCommandSubscriptionProcessorBase.processSignalAfterFilters(DotCommandSubscriptionProcessorBase.groovy:66) at
com.zipwhip.subscriptions.FilteredSubscriptionProcessorBase.processSignal(FilteredSubscriptionProcessorBase.java:24) at
com.zipwhip.subscriptions.DefaultSubscriptionBroker.routeSignal(DefaultSubscriptionBroker.java:62) at
com.zipwhip.subscriptions.DefaultSubscriptionBroker.routeSignal(DefaultSubscriptionBroker.java:47) at
com.zipwhip.subscriptions.DefaultSubscriptionBroker.routeSignal(DefaultSubscriptionBroker.java:30) 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:597) at
org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229) at
org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52) at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at
SubscriptionEventService$_processRequest_closure1.doCall(SubscriptionEventService.groovy:49) 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:597) at
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86) at
groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234) at
groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1049) at
groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:923) at
groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:880) at
groovy.lang.Closure.call(Closure.java:279) at
groovy.lang.Closure.call(Closure.java:292) at
com.zipwhip.performance.QOSMonitor.doWithAgent(QOSMonitor.java:37) at
com.zipwhip.performance.QOSMonitor.doWithAgent(QOSMonitor.java:31) 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:597) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229) at
org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52) at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:129) at
SubscriptionEventService.processRequest(SubscriptionEventService.groovy:46) at
SubscriptionEventService$processRequest.callCurrent(Unknown Source) at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143) at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:151) at
SubscriptionEventService.onMessage(SubscriptionEventService.groovy:61) 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:597) at
org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273) at
org.springframework.jms.listener.adapter.MessageListenerAdapter.invokeListenerMethod(MessageListenerAdapter.java:463) at org.codehaus.grails.jms.ClosureMessageListenerAdapter.super$2$invokeListenerMethod(ClosureMessageListenerAdapter.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:597) at
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86) at
groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234) at
groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1049) at
groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:923) at
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:127) at
org.codehaus.grails.jms.ClosureMessageListenerAdapter.invokeListenerMethod(ClosureMessageListenerAdapter.groovy:21) at
org.springframework.jms.listener.adapter.MessageListenerAdapter.onMessage(MessageListenerAdapter.java:355) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:534) at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495) at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467) at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323) at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261) at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:977) at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:969) at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:871) at
java.lang.Thread.run(Thread.java:619) From: Michael Smyers
[mailto:[hidden email]] I am experiencing an odd bug with Grails and
resources.groovy. Here’s my resources.groovy declaration: http://ftp-a1.zipwhip.com/2010-06-09_1321.png
So the way that this works, is that we use a broker to
process signals. The broker uses a SubscriptionProcessor to process the
subscriptions. It uses a SubscriptionProcessorLocator to locate the appropriate
processor. The processors are beans. This is a screenshot of the
SubscriberCountSubscriptionProcessor that is referenced in the Locator with
“ref” in resources.groovy: http://ftp-a1.zipwhip.com/2010-06-09_1325.png This is a screenshot of the Echo version: http://ftp-a1.zipwhip.com/2010-06-09_1327.png Now. Here’s the screenshot of the bug! Working: http://ftp-a1.zipwhip.com/2010-06-09_1331.png Not Working: http://ftp-a1.zipwhip.com/2010-06-09_1332.png It says that the MetaClass of a UserCountProcessor is a
EchoProcessor! The metaClass is wrong! How is this even possible? BTW, if you want to know the details of the SpringResolver
or the SubscriptionProcessorLocator: http://ftp-a1.zipwhip.com/2010-06-09_1334.png So! I’m totally confused. Has anyone ever experienced this? Turns out the one on the bottom always fails: http://ftp-a1.zipwhip.com/2010-06-09_1321.png
If I switch the order of “echo” and “subscriberCount” the one on the bottom has
the wrong meta class! Is it how I’m using “ref” ?? NOTE: The springResolver object has been working for me for
about 6 months without issue… -Michael PS: We passed a million users yesterday! |
|
More information: I took out the locator: And created this test case: http://ftp-a1.zipwhip.com/2010-06-09_1430.png But I am getting this in the logs:
com.zipwhip.subscriptions.dotcmd.EchoDotCommandSubscriptionProcessor com.zipwhip.subscriptions.dotcmd.EchoDotCommandSubscriptionProcessor This seems pretty fundamentally
wrong? I’ve already upgraded to Grails 1.3.1 from Grails 1.2.0 to see if that
would resolve the issue. Echo and UserCount absolutely are
not related. They are separate classes with a common base class. -M From: Michael Smyers
[mailto:[hidden email]] Forgot to list the stack trace: java.lang.IllegalArgumentException:
object is not an instance of declaring class
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:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1049)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:923)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:880)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:706)
at
com.zipwhip.subscriptions.dotcmd.DotCommandSubscriptionProcessorBase.invokeMethod(DotCommandSubscriptionProcessorBase.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at
org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
at
com.zipwhip.subscriptions.dotcmd.DotCommandSubscriptionProcessorBase.processSignalAfterFilters(DotCommandSubscriptionProcessorBase.groovy:66)
at
com.zipwhip.subscriptions.FilteredSubscriptionProcessorBase.processSignal(FilteredSubscriptionProcessorBase.java:24)
at
com.zipwhip.subscriptions.DefaultSubscriptionBroker.routeSignal(DefaultSubscriptionBroker.java:62)
at
com.zipwhip.subscriptions.DefaultSubscriptionBroker.routeSignal(DefaultSubscriptionBroker.java:47)
at
com.zipwhip.subscriptions.DefaultSubscriptionBroker.routeSignal(DefaultSubscriptionBroker.java:30)
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:597)
at
org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at
SubscriptionEventService$_processRequest_closure1.doCall(SubscriptionEventService.groovy:49)
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:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1049)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:923)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:880)
at groovy.lang.Closure.call(Closure.java:279)
at groovy.lang.Closure.call(Closure.java:292)
at com.zipwhip.performance.QOSMonitor.doWithAgent(QOSMonitor.java:37)
at com.zipwhip.performance.QOSMonitor.doWithAgent(QOSMonitor.java:31)
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:597)
at
org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
at
org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:129)
at SubscriptionEventService.processRequest(SubscriptionEventService.groovy:46)
at SubscriptionEventService$processRequest.callCurrent(Unknown Source)
at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:151)
at SubscriptionEventService.onMessage(SubscriptionEventService.groovy:61)
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:597)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273)
at org.springframework.jms.listener.adapter.MessageListenerAdapter.invokeListenerMethod(MessageListenerAdapter.java:463)
at
org.codehaus.grails.jms.ClosureMessageListenerAdapter.super$2$invokeListenerMethod(ClosureMessageListenerAdapter.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:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1049)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:923)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:127)
at
org.codehaus.grails.jms.ClosureMessageListenerAdapter.invokeListenerMethod(ClosureMessageListenerAdapter.groovy:21)
at
org.springframework.jms.listener.adapter.MessageListenerAdapter.onMessage(MessageListenerAdapter.java:355)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:534)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:977)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:969)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:871)
at java.lang.Thread.run(Thread.java:619) From: Michael Smyers
[mailto:[hidden email]] I am experiencing an odd bug with Grails and
resources.groovy. Here’s my resources.groovy declaration: http://ftp-a1.zipwhip.com/2010-06-09_1321.png
So the way that this works, is that we use a broker to
process signals. The broker uses a SubscriptionProcessor to process the
subscriptions. It uses a SubscriptionProcessorLocator to locate the appropriate
processor. The processors are beans. This is a screenshot of the
SubscriberCountSubscriptionProcessor that is referenced in the Locator with
“ref” in resources.groovy: http://ftp-a1.zipwhip.com/2010-06-09_1325.png This is a screenshot of the Echo version: http://ftp-a1.zipwhip.com/2010-06-09_1327.png Now. Here’s the screenshot of the bug! Working: http://ftp-a1.zipwhip.com/2010-06-09_1331.png Not Working: http://ftp-a1.zipwhip.com/2010-06-09_1332.png It says that the MetaClass of a UserCountProcessor is a EchoProcessor!
The metaClass is wrong! How is this even possible? BTW, if you want to know the details of the SpringResolver
or the SubscriptionProcessorLocator: http://ftp-a1.zipwhip.com/2010-06-09_1334.png So! I’m totally confused. Has anyone ever experienced this? Turns out the one on the bottom always fails: http://ftp-a1.zipwhip.com/2010-06-09_1321.png
If I switch the order of “echo” and “subscriberCount” the one on the bottom has
the wrong meta class! Is it how I’m using “ref” ?? NOTE: The springResolver object has been working for me for
about 6 months without issue… -Michael PS: We passed a million users yesterday! |
|
The two classes were Java files.
The base class was a Groovy file. I resolved the issue by
cut/paste the code from the Groovy file into a Java file, and it worked. I now
get this in the syslog: com.zipwhip.subscriptions.dotcmd.EchoDotCommandSubscriptionProcessor com.zipwhip.subscriptions.dotcmd.UserCountDotCommandSubscriptionProcessor as expected. From: Michael Smyers
[mailto:[hidden email]] More information: I took out the locator: And created this test case: http://ftp-a1.zipwhip.com/2010-06-09_1430.png But I am getting this in the logs:
com.zipwhip.subscriptions.dotcmd.EchoDotCommandSubscriptionProcessor com.zipwhip.subscriptions.dotcmd.EchoDotCommandSubscriptionProcessor This seems pretty fundamentally
wrong? I’ve already upgraded to Grails 1.3.1 from Grails 1.2.0 to see if that would
resolve the issue. Echo and UserCount absolutely
are not related. They are separate classes with a common base class. -M From: Michael Smyers
[mailto:[hidden email]] Forgot to list the stack trace: java.lang.IllegalArgumentException:
object is not an instance of declaring class
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:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1049)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:923)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:880)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:706)
at
com.zipwhip.subscriptions.dotcmd.DotCommandSubscriptionProcessorBase.invokeMethod(DotCommandSubscriptionProcessorBase.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at
org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
at com.zipwhip.subscriptions.dotcmd.DotCommandSubscriptionProcessorBase.processSignalAfterFilters(DotCommandSubscriptionProcessorBase.groovy:66)
at
com.zipwhip.subscriptions.FilteredSubscriptionProcessorBase.processSignal(FilteredSubscriptionProcessorBase.java:24)
at com.zipwhip.subscriptions.DefaultSubscriptionBroker.routeSignal(DefaultSubscriptionBroker.java:62)
at
com.zipwhip.subscriptions.DefaultSubscriptionBroker.routeSignal(DefaultSubscriptionBroker.java:47)
at com.zipwhip.subscriptions.DefaultSubscriptionBroker.routeSignal(DefaultSubscriptionBroker.java:30)
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:597)
at
org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
at
org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at SubscriptionEventService$_processRequest_closure1.doCall(SubscriptionEventService.groovy:49)
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:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1049)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:923)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:880)
at groovy.lang.Closure.call(Closure.java:279)
at groovy.lang.Closure.call(Closure.java:292)
at com.zipwhip.performance.QOSMonitor.doWithAgent(QOSMonitor.java:37)
at com.zipwhip.performance.QOSMonitor.doWithAgent(QOSMonitor.java:31)
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:597)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
at
org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:129)
at SubscriptionEventService.processRequest(SubscriptionEventService.groovy:46)
at SubscriptionEventService$processRequest.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:151)
at SubscriptionEventService.onMessage(SubscriptionEventService.groovy:61)
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:597)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273)
at
org.springframework.jms.listener.adapter.MessageListenerAdapter.invokeListenerMethod(MessageListenerAdapter.java:463)
at org.codehaus.grails.jms.ClosureMessageListenerAdapter.super$2$invokeListenerMethod(ClosureMessageListenerAdapter.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:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1049)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:923)
at
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:127)
at
org.codehaus.grails.jms.ClosureMessageListenerAdapter.invokeListenerMethod(ClosureMessageListenerAdapter.groovy:21)
at
org.springframework.jms.listener.adapter.MessageListenerAdapter.onMessage(MessageListenerAdapter.java:355)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:534)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:977)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:969)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:871)
at java.lang.Thread.run(Thread.java:619) From: Michael Smyers
[mailto:[hidden email]] I am experiencing an odd bug with Grails and
resources.groovy. Here’s my resources.groovy declaration: http://ftp-a1.zipwhip.com/2010-06-09_1321.png
So the way that this works, is that we use a broker to
process signals. The broker uses a SubscriptionProcessor to process the
subscriptions. It uses a SubscriptionProcessorLocator to locate the appropriate
processor. The processors are beans. This is a screenshot of the
SubscriberCountSubscriptionProcessor that is referenced in the Locator with
“ref” in resources.groovy: http://ftp-a1.zipwhip.com/2010-06-09_1325.png This is a screenshot of the Echo version: http://ftp-a1.zipwhip.com/2010-06-09_1327.png Now. Here’s the screenshot of the bug! Working: http://ftp-a1.zipwhip.com/2010-06-09_1331.png Not Working: http://ftp-a1.zipwhip.com/2010-06-09_1332.png It says that the MetaClass of a UserCountProcessor is a
EchoProcessor! The metaClass is wrong! How is this even possible? BTW, if you want to know the details of the SpringResolver
or the SubscriptionProcessorLocator: http://ftp-a1.zipwhip.com/2010-06-09_1334.png So! I’m totally confused. Has anyone ever experienced this? Turns out the one on the bottom always fails: http://ftp-a1.zipwhip.com/2010-06-09_1321.png
If I switch the order of “echo” and “subscriberCount” the one on the bottom has
the wrong meta class! Is it how I’m using “ref” ?? NOTE: The springResolver object has been working for me for about
6 months without issue… -Michael PS: We passed a million users yesterday! |
| Powered by Nabble | Edit this page |
