Eric Milles created GROOVY-9760:
-----------------------------------

             Summary: NPE when trait with type parameter is implemented as raw 
type
                 Key: GROOVY-9760
                 URL: https://issues.apache.org/jira/browse/GROOVY-9760
             Project: Groovy
          Issue Type: Bug
            Reporter: Eric Milles
            Assignee: Eric Milles


Consider the following:
{code:groovy}
class C implements T {
  static main(args) {
    new C().one
  }
}
trait T<X> {
  X getOne() {}
}
{code}

No type argument is supplied to T when C implements it.  Therefore, the method 
{{getOne()}} is written out with an unresolved type param in its signature.

{noformat}
Exception in thread "main" java.lang.NullPointerException
        at com.sun.beans.TypeResolver.resolve(TypeResolver.java:203)
        at com.sun.beans.TypeResolver.resolveInClass(TypeResolver.java:81)
        at 
java.beans.FeatureDescriptor.getReturnType(FeatureDescriptor.java:370)
        at java.beans.Introspector.getTargetEventInfo(Introspector.java:1052)
        at java.beans.Introspector.getBeanInfo(Introspector.java:427)
        at java.beans.Introspector.getBeanInfo(Introspector.java:173)
        at 
groovy.lang.MetaClassImpl.lambda$addProperties$4(MetaClassImpl.java:3416)
        at java.security.AccessController.doPrivileged(Native Method)
        at groovy.lang.MetaClassImpl.addProperties(MetaClassImpl.java:3416)
        at groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:3397)
        at 
org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:273)
        at 
org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:315)
        at 
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:258)
        at 
org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(InvokerHelper.java:987)
        at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallConstructorSite(CallSiteArray.java:82)
        at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
        at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:263)
        at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:268)
{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to