Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8252266

[lworld] Attribute emission in the reference projection class

    Details

    • Type: Bug
    • Status: New
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: repo-valhalla
    • Fix Version/s: repo-valhalla
    • Component/s: specification
    • Labels:
    • Subcomponent:
    • CPU:
      generic
    • OS:
      generic

      Description

      JDK-8244713 was raised to verify that we don't accidentally carry over the attributes from V.class into V$ref class and it achieves that stated purpose.

      See https://bugs.openjdk.java.net/browse/JDK-8244713?focusedCommentId=14364710&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14364710

      for a detailed description of how the various attributes applicable to ClassFile listed in "JVMS Table 4.7-C. Predefined class file attributes" are handled.

      As of JDK-8244713, we are concerned only with attributes applicable to ClassFile (and not field_info, method_info and Code) since ATM the V$ref class is devoid of any members (in contravention to SoV translation scheme which calls for members to be sorted in a particular fashion - this will be implemented in
      JDK-8244313

      When JDK-8244313 is implemented, the attributes associated with
      fields, methods and Code attributes would land up (presumably) (only) in the particular class file to where they are destined.

      That still leaves the question of what is the right behavior for attributes attached to ClassFile and whether what is described in
      https://bugs.openjdk.java.net/browse/JDK-8244713?focusedCommentId=14364710&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14364710 is the final behavior we want.

      The present ticket is raised for the spec lead to address this question in due course. Please raise a ticket against javac is changes are called for.

      I think the behavior implemented in https://bugs.openjdk.java.net/browse/JDK-8244713?focusedCommentId=14364710&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14364710 is mostly reasonable.

      Two open questions:

      (1) Should V$ref.class be flagged synthetic ? It is not ATM since we will be eventually emitting non-synthetic methods into it.

      (2) Should annotations be carried over ? They are not ATM.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                dlsmith Dan Smith
                Reporter:
                sadayapalam Srikanth Adayapalam
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: