JDK-8065132 : Parameter annotations not updated when synthetic parameters are prepended
  • Type: Bug
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 8,9
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-11-17
  • Updated: 2015-06-04
  • Resolved: 2014-12-19
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u40Fixed 9Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
import java.lang.annotation.*;

public class T {
    public class S {
        public S(@Foo("0") int i1, int i2, @Foo("2") long l1) { }
    }

    @Retention(RetentionPolicy.RUNTIME)
    static @interface Foo { String value(); }
}

/*

  public T$S(T, int, int, long);
    descriptor: (LT;IIJ)V
    flags: ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=5
         0: aload_0
         1: aload_1
         2: putfield      #1                  // Field this$0:LT;
         5: aload_0
         6: invokespecial #2                  // Method java/lang/Object."<init>":()V
         9: return
      LineNumberTable:
        line 5: 0
    RuntimeVisibleParameterAnnotations:
      parameter 0:
        0: #15(#16=s#17)
      parameter 1:
      parameter 2:
        0: #15(#16=s#18)

*/
Comments
Is reverted in JDK-8067039
19-12-2014

There is a checkin, that means resolution of won't fix is wrong
19-12-2014

Fixing this in 8u40 breaks previous 8-branch javac builds. See JDK-8066725.
11-12-2014

Out for review
19-11-2014

ILW: M (wrong class-file), L (corner case), H (none) -> P4
17-11-2014