On Wed, 17 Jul 2024 08:59:07 GMT, Adam Sotona <asot...@openjdk.org> wrote:

>> Class-File API is leaving preview.
>> This is a removal of all `@PreviewFeature` annotations from Class-File API.
>> It also bumps all `@since` tags and removes 
>> `jdk.internal.javac.PreviewFeature.Feature.CLASSFILE_API`.
>> 
>> Please review.
>> 
>> Thanks,
>> Adam
>
> Adam Sotona has updated the pull request with a new target base due to a 
> merge or a rebase. The pull request now contains three commits:
> 
>  - Merge branch 'master' into JDK-8334714-final
>  - bumped @since tag
>  - 8334714: Class-File API leaves preview

I think so. See 
https://mail.openjdk.org/pipermail/hotspot-dev/2019-October/039795.html for 
some context. There are also historical evaluations available at 
https://bugs.openjdk.org/browse/JDK-8232890 and 
https://bugs.openjdk.org/browse/JDK-8232967, notably the judgement in 
Compatibility Risk Description:

> Class files with versions < 45.3 predate Java.

> But, does this mean that now, Hotspot blindly accepts classfiles with version 
> 45 with, technically, incorrect data?

It appears so. See note in `ClassFileFormatVersion`: 
https://github.com/openjdk/jdk/blob/5671f836039ef1683e3e9ce5b7cf0fa2f1860e2d/src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java#L413-L414
It seems that now major version 45, regardless of the minor version, is simply 
seen as the Class File format for Java 1.1.

> Also now, [this](https://github.com/Col-E/CAFED00D) library which took 
> special care to parse oak files reports wrong instructions does not parse 
> classfile at all.

Indeed, it would be a good RFE to allow users to override default attribute 
mappers to parse attributes; this would be extremely useful if users wish to 
support previous previews that only differed in the attribute formats.

> `jdk-1.8.0_402\bin\java -cp . Test`
> `Hello World`

For the behavioral inconsistencies, we can backport this special handling 
removal to active jdk update projects or even request specification changes on 
LTS versions (see https://github.com/openjdk/jdk8u-ri) if this is deemed 
important enough.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/19826#issuecomment-2308099862

Reply via email to