Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-9760

NPE when trait with type parameter is implemented as raw type

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 2.5.14, 3.0.7, 4.0.0-alpha-2
    • None
    • None

    Description

      Consider the following:

      class C implements T {
        static main(args) {
          new C().one
        }
      }
      trait T<X> {
        X getOne() {}
      }
      

      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.

      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)
      

      Attachments

        Activity

          People

            emilles Eric Milles
            emilles Eric Milles
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 20m
                20m