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

Deprecate -XX:+PreserveAllAnnotations

XMLWordPrintable

    • b19
    • generic
    • generic

      PreserveAllAnnotations option appears to be a leftover from the original implementation in JDK 1.5 (most likely it was used to assist testing), and there are no signs of its usage.
      Description of the option says: "Preserve RuntimeInvisibleAnnotations as well as RuntimeVisibleAnnotations".

      If the flag is set classFileParser does not ignore RuntimeInvisibleAnnotations/RuntimeInvisibleTypeAnnotations/RuntimeInvisibleParameterAnnotations attributes, but consider them "RuntimeVisible" (concatenating the annotations with corresponding "RuntimeVisible" annotations).

      JVMS (https://docs.oracle.com/javase/specs/jvms/se21/html/jvms-4.html#jvms-4.7.17):
      The RuntimeInvisibleAnnotations attribute is similar to the RuntimeVisibleAnnotations attribute (§4.7.16), except that the annotations represented by a RuntimeInvisibleAnnotations attribute must not be made available for return by reflective APIs, unless the Java Virtual Machine has been instructed to retain these annotations via some implementation-specific mechanism such as a command line flag. In the absence of such instructions, the Java Virtual Machine ignores this attribute.

      https://docs.oracle.com/javase/specs/jvms/se21/html/jvms-4.html#jvms-4.7.19
      contains similar note for RuntimeInvisibleParameterAnnotations.

      https://docs.oracle.com/javase/specs/jvms/se21/html/jvms-4.html#jvms-4.7.21
      does not contain such note for RuntimeInvisibleTypeAnnotations.

      The option is untested and should be be deprecated in 23, obsoleted in 24 and removed in 25.

        There are no Sub-Tasks for this issue.

            amenkov Alex Menkov
            amenkov Alex Menkov
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: