From iris.clark at oracle.com Mon Mar 2 19:17:36 2020 From: iris.clark at oracle.com (Iris Clark) Date: Mon, 2 Mar 2020 11:17:36 -0800 (PST) Subject: JSR 389 (Java SE 14) -- Final Release Specification, RI, and TCK -- DRAFT Message-ID: <6f76c7fe-2a93-45c3-a3f6-4d086899ace1@default> Hi. The draft Final Release Specification is available here: https://cr.openjdk.java.net/~iris/se/14/spec/fr/java-se-14-fr-spec-01/ It is identical to DRAFT 36 with the exception of subtitles which were changed from "Specification -- DRAFT 36" to "Final Release Specification -- DRAFT 1". The draft Reference Implementation, based on JDK 14 build 36, is available here: https://jdk.java.net/java-se-ri/14 The RI is under the GPL license. The draft TCK has already been made available to EG members. The most recent promotion is build 13, based on JDK 14 build 36. The final TCK is expected soon thereafter. No significant changes are expected between the builds. The Public Review Final Approval Ballot was unanimously approved on 24 Feb 2020 [0]. I plan to submit the Specification, RI, and TCK to the JCP PMO for the Final Release in mid-March. Thanks, Iris [0]: https://jcp.org/en/jsr/results?id=6226 From sritter at azul.com Tue Mar 10 12:54:23 2020 From: sritter at azul.com (Simon Ritter) Date: Tue, 10 Mar 2020 12:54:23 +0000 Subject: Test failure using Java SE EG TCK Message-ID: <924f690f-20ba-59cd-7ec1-b10641496f28@azul.com> Hi, we have been using the JCK test suite available to the Java SE EG through the Java Partner Login.? When using the FCS version (build 14, dated 03/04/2020) we get the following failure. Who would be the best people to forward this to so that we can ensure this either resolved or excluded for the JCK of Java SE 14 GA? Regards, Simon. Test Challenger Name and Company: Azul Systems, Inc. Specification Name(s) and Version(s): Java Platform SE 14 API Specification Test Suite Name and Version:?JCK-compiler-14 Exclude List Version: n/a Tests Names:? api/javax_lang/model/element/TypeElement/GetRecCompDefault.html api/javax_lang/model/util/SimpleElementVisitor14/SEVRecComp.html api/javax_lang/model/util/ElementKindVisitor14/EKVRecord14.html api/javax_lang/model/util/ElementScanner14/ScanExecutableParams_Preview.html api/javax_lang/model/util/ElementKindVisitor6/EKVRecord.html api/javax_lang/model/util/ElementFilter/EFRecComp.html api/javax_lang/model/util/ElementScanner14/ScanTypeParams_Preview.html api/javax_lang/model/element/RecordComponentElement/GetSimpleName.html api/javax_lang/model/util/ElementFilter/EFRecComp1.html api/javax_lang/model/util/ElementKindVisitor14/EKVBindingVar.html api/javax_lang/model/util/ElementScanner14/ESRecordComponent.html api/javax_lang/model/element/TypeElement/GetRecComponents.html api/javax_lang/model/element/Element/GetEnclosedElements.html api/javax_lang/model/util/ElementKindVisitor6/EKVBindingVar.html api/javax_lang/model/element/RecordComponentElement/GetEnclosingElement.html api/javax_lang/model/util/ElementKindVisitor14/EKVRecordComponent.html api/javax_lang/model/element/RecordComponentElement/GetAccessor.html api/javax_lang/model/util/AbstractElementVisitor14/AEVRecComp.html Complaint (argument for why test is invalid):? All tests in challenge fail being run by Java 14 Reference Implementation with the message shown in the next section.? Several classes in the compiler suite have been built using javac of the different version than 14-GA which blocks test class loading by javasoft.sqe.jck.lib.javax.annotation.processing.ProcessorMultiTestWrapper.? javap shows minor version 65535 for these classes and minor version 0 for all other classes. Error message: Class linking error while trying to load test class "...": java.lang.UnsupportedClassVersionError: Preview features are not enabled for ... (class file version 58.65535). Quick demo: $ jdk-14.jdk/Contents/Home/bin/javap -verbose JCK-compiler-14/classes/javasoft/sqe/tests/api/javax/lang/model/element/TypeElement/GetRecCompDefaultTests.class | grep version ??minor version: 65535 ??major version: 58 From alex.buckley at oracle.com Tue Mar 10 16:09:06 2020 From: alex.buckley at oracle.com (Alex Buckley) Date: Tue, 10 Mar 2020 09:09:06 -0700 Subject: Test failure using Java SE EG TCK In-Reply-To: <924f690f-20ba-59cd-7ec1-b10641496f28@azul.com> References: <924f690f-20ba-59cd-7ec1-b10641496f28@azul.com> Message-ID: The v58.65535 class file version indicates that the tests' class files depend on preview features. I suspect the tests' source code refers to API elements associated with records, a preview feature in Java SE 14. The key thing to know is that Foo.java may refer to reflective APIs which understand/support a preview feature (such as javax.lang.model.*) _without_ Foo.class depending on preview features. This was a goal of JEP 12 in order to allow popular libraries to use SE APIs to reflect over class files which depend on preview feature, without forcing the libraries' own class files to depend on preview features too [1]. On the other hand, if Foo.java refers directly to `java.lang.Record`, then Foo.class must be marked as depending on preview features. If Foo.java is a JCK test, then that marking is undesirable, and the source code has to refer to `java.lang.Record` indirectly, via a `Class` object. I'm not sure how JCK test feedback is handled, but I recommend that the JCK team look again at which API elements the tests are referring to. Alex [1] http://openjdk.java.net/jeps/12#Relationship-to-Java-SE-APIs On 3/10/2020 5:54 AM, Simon Ritter wrote: > Hi, > we have been using the JCK test suite available to the Java SE EG > through the Java Partner Login.? When using the FCS version (build 14, > dated 03/04/2020) we get the following failure. > > Who would be the best people to forward this to so that we can ensure > this either resolved or excluded for the JCK of Java SE 14 GA? > > Regards, > > Simon. > > Test Challenger Name and Company: Azul Systems, Inc. > > Specification Name(s) and Version(s): Java Platform SE 14 API > Specification > > Test Suite Name and Version:?JCK-compiler-14 > > Exclude List Version: n/a > > Tests Names: > > api/javax_lang/model/element/TypeElement/GetRecCompDefault.html > api/javax_lang/model/util/SimpleElementVisitor14/SEVRecComp.html > api/javax_lang/model/util/ElementKindVisitor14/EKVRecord14.html > api/javax_lang/model/util/ElementScanner14/ScanExecutableParams_Preview.html > api/javax_lang/model/util/ElementKindVisitor6/EKVRecord.html > api/javax_lang/model/util/ElementFilter/EFRecComp.html > api/javax_lang/model/util/ElementScanner14/ScanTypeParams_Preview.html > api/javax_lang/model/element/RecordComponentElement/GetSimpleName.html > api/javax_lang/model/util/ElementFilter/EFRecComp1.html > api/javax_lang/model/util/ElementKindVisitor14/EKVBindingVar.html > api/javax_lang/model/util/ElementScanner14/ESRecordComponent.html > api/javax_lang/model/element/TypeElement/GetRecComponents.html > api/javax_lang/model/element/Element/GetEnclosedElements.html > api/javax_lang/model/util/ElementKindVisitor6/EKVBindingVar.html > api/javax_lang/model/element/RecordComponentElement/GetEnclosingElement.html > api/javax_lang/model/util/ElementKindVisitor14/EKVRecordComponent.html > api/javax_lang/model/element/RecordComponentElement/GetAccessor.html > api/javax_lang/model/util/AbstractElementVisitor14/AEVRecComp.html > > Complaint (argument for why test is invalid): > All tests in challenge fail being run by Java 14 Reference > Implementation with the message shown in the next section. > Several classes in the compiler suite have been built using javac of > the different version than 14-GA which blocks test class loading by > javasoft.sqe.jck.lib.javax.annotation.processing.ProcessorMultiTestWrapper. > javap shows minor version 65535 for these classes and minor version > 0 for all other classes. > > Error message: > Class linking error while trying to load test class "...": > java.lang.UnsupportedClassVersionError: Preview features are not > enabled for ... (class file version 58.65535). > > Quick demo: > $ jdk-14.jdk/Contents/Home/bin/javap -verbose > JCK-compiler-14/classes/javasoft/sqe/tests/api/javax/lang/model/element/TypeElement/GetRecCompDefaultTests.class > | grep version > ??minor version: 65535 > ??major version: 58 >