Uploaded image for project: 'Weld'
  1. Weld
  2. WELD-2405

Subclassing intercepted component implementing interface with default method fails

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 3.0.0.Final
    • Fix Version/s: 3.0.1.Final, 2.4.5.Final
    • Labels:
      None
    • Environment:

      java version "1.8.0_131"
      Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
      Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

      MacOS Sierra

    • Steps to Reproduce:
      Hide

      Cherry pick this commit and run org.jboss.weld.tests.unit.ejb.subclass.SubclassedComponentDescriptorTest

      Show
      Cherry pick this commit and run org.jboss.weld.tests.unit.ejb.subclass.SubclassedComponentDescriptorTest

      Description

      Seems like the creation of an enhanced proxy from a class implementing an interface with a default method leads to a broken class.

      Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 22
      Exception Details:
        Location:
          org/jboss/weld/tests/unit/ejb/subclass/Qux$Proxy$_$$_WeldSubclass._()V @13: if_icmpeq
        Reason:
          Expected stackmap frame at this location.
        Bytecode:
          0x0000000: 2ab4 0017 59b8 001f 5ab6 0025 039f 0009
          0x0000010: 582a b700 6eb1 2ab2 0074 b200 7a03 bd00
          0x0000020: 46b9 004e 0600 b1                      
       
      	at java.lang.Class.getDeclaredConstructors0(Native Method)
      	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
      	at java.lang.Class.getDeclaredConstructors(Class.java:2020)
      	at org.jboss.weld.annotated.slim.backed.SecurityActions.getDeclaredConstructors(SecurityActions.java:57)
      	at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedConstructors.computeValue(BackedAnnotatedType.java:166)
      	at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedConstructors.computeValue(BackedAnnotatedType.java:163)
      	at org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:46)
      	at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$EagerlyInitializedLazyValueHolder.<init>(BackedAnnotatedType.java:159)
      	at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedConstructors.<init>(BackedAnnotatedType.java:163)
      	at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedConstructors.<init>(BackedAnnotatedType.java:163)
      	at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.<init>(BackedAnnotatedType.java:64)
      	at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.of(BackedAnnotatedType.java:47)
      	at org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.apply(ClassTransformer.java:81)
      	at org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.apply(ClassTransformer.java:76)
      	at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.lambda$null$0(ReentrantMapBackedComputingCache.java:55)
      	at org.jboss.weld.util.WeakLazyValueHolder$1.computeValue(WeakLazyValueHolder.java:35)
      	at org.jboss.weld.util.WeakLazyValueHolder.get(WeakLazyValueHolder.java:53)
      	at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.getValue(ReentrantMapBackedComputingCache.java:72)
      	at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.getCastValue(ReentrantMapBackedComputingCache.java:78)
      	at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:174)
      	... 36 more
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  mkouba Martin Kouba
                  Reporter:
                  hypnoce Francois JACQUES
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: