Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Testcase included:yes
-
Number of attachments :
Description
We are taking a current Spring based application and starting to introduce "Groovy" spring beans. We ran into this ClassCastException when trying to call a generic method on our Groovy bean that has been wrapped by the JdkDynamicAopProxy.
I was able to reproduce with Java/Groovy and the base java.reflect.Proxy classes.
Attached are all of my simple test classes that demostrate the issue as well as a Spock test(GroovyIssuesSpec.groovy) that shows the problem as well.
We've had to create a hack to override how Spring proxies it's beans to ignore the fact that these beans are GroovyObjects(Removing GroovyObject.class from the list of proxiedInterfaces, for some reason works around the issue). The sooner we can get rid of that hack, the better.
Thanks!
We've also been annoyed by this bug. Rather than hacking Spring, we worked around it with an extra layer of indirection. We wanted to use this:
That exhibits the bug described if we use OurImpl directly. However, fronting it with a Java implementation works. We created this java class, after renaming OurImpl to OurGroovyImpl:
Not ideal, but it works.