Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Critical
-
Resolution: Fixed
-
Affects Version/s: 1.8.2
-
Fix Version/s: 1.8.3, 1.9-beta-4
-
Component/s: None
-
Labels:None
-
Environment:OpenJDK (All Known Versions)
-
Number of attachments :
Description
Example say you have a method like:
def <T> T mockController(Class<T> controllerClass) {
doStuff {
println controllerClass
....
}
}
The closure passed to doStuff contains within its byte code a generated getter called "getControllerClass" with the following type signature:
public Class<T> getControllerClass() { CallSite[] arrayOfCallSite = $getCallSiteArray(); return (Class)ScriptBytecodeAdapter.castToType(this.controllerClass.get(), $get$$class$java$lang$Class()); return null; }
The generic type T is not declared anywhere. This causes exceptions on OpenJDK such as:
java.lang.NullPointerException at com.sun.beans.TypeResolver.resolve(TypeResolver.java:321) at com.sun.beans.TypeResolver.resolve(TypeResolver.java:351) at com.sun.beans.TypeResolver.resolve(TypeResolver.java:310) at com.sun.beans.TypeResolver.resolve(TypeResolver.java:157) at com.sun.beans.TypeResolver.resolveInClass(TypeResolver.java:78) at java.beans.FeatureDescriptor.getReturnType(FeatureDescriptor.java:368) at java.beans.Introspector.getTargetEventInfo(Introspector.java:1020) at java.beans.Introspector.getBeanInfo(Introspector.java:424) at java.beans.Introspector.getBeanInfo(Introspector.java:189) at grails.test.mixin.web.ControllerUnitTestMixin.mockController(ControllerUnitTestMixin.groovy:268)
This issue is the cause of http://jira.grails.org/browse/GRAILS-8031
Activity
Graeme Rocher
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Fix Version/s | 1.8.3 [ 17657 ] |
Graeme Rocher
made changes -
| Description |
Example say you have a method like:
{code} def <T> T mockController(Class<T> controllerClass) { doStuff { println controllerClass .... } } {code} The closure passed to doStuff will generate a getter called "getServiceClass" with the following type signature: {code} public Class<T> getControllerClass() { CallSite[] arrayOfCallSite = $getCallSiteArray(); return (Class)ScriptBytecodeAdapter.castToType(this.controllerClass.get(), $get$$class$java$lang$Class()); return null; } {code} The generic type T is not declared anywhere. This causes exceptions on OpenJDK such as: {code} java.lang.NullPointerException at com.sun.beans.TypeResolver.resolve(TypeResolver.java:321) at com.sun.beans.TypeResolver.resolve(TypeResolver.java:351) at com.sun.beans.TypeResolver.resolve(TypeResolver.java:310) at com.sun.beans.TypeResolver.resolve(TypeResolver.java:157) at com.sun.beans.TypeResolver.resolveInClass(TypeResolver.java:78) at java.beans.FeatureDescriptor.getReturnType(FeatureDescriptor.java:368) at java.beans.Introspector.getTargetEventInfo(Introspector.java:1020) at java.beans.Introspector.getBeanInfo(Introspector.java:424) at java.beans.Introspector.getBeanInfo(Introspector.java:189) at grails.test.mixin.web.ControllerUnitTestMixin.mockController(ControllerUnitTestMixin.groovy:268) {code} This issue is the cause of http://jira.grails.org/browse/GRAILS-8031 |
Example say you have a method like:
{code} def <T> T mockController(Class<T> controllerClass) { doStuff { println controllerClass .... } } {code} The closure passed to doStuff contains within its byte code a generated getter called "getControllerClass" with the following type signature: {code} public Class<T> getControllerClass() { CallSite[] arrayOfCallSite = $getCallSiteArray(); return (Class)ScriptBytecodeAdapter.castToType(this.controllerClass.get(), $get$$class$java$lang$Class()); return null; } {code} The generic type T is not declared anywhere. This causes exceptions on OpenJDK such as: {code} java.lang.NullPointerException at com.sun.beans.TypeResolver.resolve(TypeResolver.java:321) at com.sun.beans.TypeResolver.resolve(TypeResolver.java:351) at com.sun.beans.TypeResolver.resolve(TypeResolver.java:310) at com.sun.beans.TypeResolver.resolve(TypeResolver.java:157) at com.sun.beans.TypeResolver.resolveInClass(TypeResolver.java:78) at java.beans.FeatureDescriptor.getReturnType(FeatureDescriptor.java:368) at java.beans.Introspector.getTargetEventInfo(Introspector.java:1020) at java.beans.Introspector.getBeanInfo(Introspector.java:424) at java.beans.Introspector.getBeanInfo(Introspector.java:189) at grails.test.mixin.web.ControllerUnitTestMixin.mockController(ControllerUnitTestMixin.groovy:268) {code} This issue is the cause of http://jira.grails.org/browse/GRAILS-8031 |
blackdrag blackdrag
made changes -
| Status | Open [ 1 ] | Closed [ 6 ] |
| Assignee | Jochen Theodorou [ blackdrag ] | |
| Fix Version/s | 1.9-beta-4 [ 17656 ] | |
| Resolution | Fixed [ 1 ] |
should be fixed now