Update release notes to document the major changes between OpenJDK 11 & 17.
This commit is contained in:
		
							parent
							
								
									53cd241c34
								
							
						
					
					
						commit
						37b7b79aff
					
				
							
								
								
									
										634
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										634
									
								
								NEWS
									
									
									
									
									
								
							| @ -3,152 +3,526 @@ Key: | ||||
| JDK-X  - https://bugs.openjdk.java.net/browse/JDK-X | ||||
| CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY | ||||
| 
 | ||||
| New in release OpenJDK 15.0.2 (2021-01-19): | ||||
| New in release OpenJDK 17.0.0 (2021-09-14): | ||||
| =========================================== | ||||
| Live versions of these release notes can be found at: | ||||
|   * https://builds.shipilev.net/backports-monitor/release-notes-15.0.2.txt | ||||
| The full list of changes in the interim releases from 11u to 17u can be found at: | ||||
|   * https://builds.shipilev.net/backports-monitor/release-notes-12.txt | ||||
|   * https://builds.shipilev.net/backports-monitor/release-notes-13.txt | ||||
|   * https://builds.shipilev.net/backports-monitor/release-notes-14.txt | ||||
|   * https://builds.shipilev.net/backports-monitor/release-notes-15.txt | ||||
|   * https://builds.shipilev.net/backports-monitor/release-notes-16.txt | ||||
|   * https://builds.shipilev.net/backports-monitor/release-notes-17.txt | ||||
| 
 | ||||
| * Security fixes | ||||
|   - JDK-8247619: Improve Direct Buffering of Characters | ||||
| * Other changes | ||||
|   - JDK-8197981: Missing return statement in __sync_val_compare_and_swap_8 | ||||
|   - JDK-8239105: Add exception for expiring Digicert root certificates to VerifyCACerts test | ||||
|   - JDK-8247741: Test test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOption.java fails when -XX:+IgnoreUnrecognizedVMOptions is set | ||||
|   - JDK-8248411: [aarch64] Insufficient error handling when CodeBuffer is exhausted | ||||
|   - JDK-8248596: [TESTBUG] compiler/loopopts/PartialPeelingUnswitch.java times out with Graal enabled | ||||
|   - JDK-8248667: Need support for building native libraries located in the test/lib directory | ||||
|   - JDK-8249176: Update GlobalSignR6CA test certificates | ||||
|   - JDK-8249192: MonitorInfo stores raw oops across safepoints | ||||
|   - JDK-8249217: Unexpected StackOverflowError in "process reaper" thread still happens | ||||
|   - JDK-8249781: AArch64: AOT compiled code crashes if C2 allocates r27 | ||||
|   - JDK-8250257: Bump release strings for JDK 15.0.2 | ||||
|   - JDK-8251397: NPE on ClassValue.ClassValueMap.cacheArray | ||||
|   - JDK-8251859: sun/security/validator/PKIXValAndRevCheckTests.java fails | ||||
|   - JDK-8253191: C2: Masked byte comparisons with large masks produce wrong result on x86 | ||||
|   - JDK-8253375: OSX build fails with Xcode 12.0 (12A7209) | ||||
|   - JDK-8253566: clazz.isAssignableFrom will return false for interface implementors | ||||
|   - JDK-8253756: C2 CompilerThread0 crash in Node::add_req(Node*) | ||||
|   - JDK-8253791: Issue with useAppleColor check in CSystemColors.m | ||||
|   - JDK-8253960: Memory leak in Java_java_lang_ClassLoader_defineClass0() | ||||
|   - JDK-8254081: java/security/cert/PolicyNode/GetPolicyQualifiers.java fails due to an expired certificate | ||||
|   - JDK-8254166: Zero: return-type warning in zeroInterpreter_zero.cpp | ||||
|   - JDK-8254177: (tz) Upgrade time-zone data to tzdata2020b | ||||
|   - JDK-8254319: Shenandoah: Interpreter native-LRB needs to activate during HAS_FORWARDED | ||||
|   - JDK-8254320: Shenandoah: C2 native LRB should activate for non-cset objects | ||||
|   - JDK-8254790: SIGSEGV in string_indexof_char and stringL_indexof_char intrinsics | ||||
|   - JDK-8254854: [cgroups v1] Metric limits not properly detected on some join controller combinations | ||||
|   - JDK-8254982: (tz) Upgrade time-zone data to tzdata2020c | ||||
|   - JDK-8255065: Zero: accessor_entry misses the IRIW case | ||||
|   - JDK-8255067: Restore Copyright line in file modified by 8253191 | ||||
|   - JDK-8255226: (tz) Upgrade time-zone data to tzdata2020d | ||||
|   - JDK-8255599: Change jdk 15.0.2 milestone to fcs for build b04 | ||||
|   - JDK-8255603: Memory/Performance regression after JDK-8210985 | ||||
|   - JDK-8256051: nmethod_entry_barrier stub miscalculates xmm spill size on x86_32 | ||||
|   - JDK-8256427: Test com/sun/jndi/dns/ConfigTests/PortUnreachable.java does not work on AIX | ||||
|   - JDK-8256618: Zero: Linux x86_32 build still fails | ||||
|   - JDK-8257181: s390x builds are very noisy with gc-sections messages | ||||
|   - JDK-8257641: Shenandoah: Query is_at_shenandoah_safepoint() from control thread should return false | ||||
|   - JDK-8257701: Shenandoah: objArrayKlass metadata is not marked with chunked arrays | ||||
| Major changes are listed below.  Some changes may have been backported | ||||
| to earlier releases following their first appearance in OpenJDK 12 | ||||
| through to 17. | ||||
| 
 | ||||
| Notes on individual issues: | ||||
| NEW FEATURES | ||||
| ============ | ||||
| 
 | ||||
| Language Features | ||||
| ================= | ||||
| 
 | ||||
| Switch Expressions | ||||
| ================== | ||||
| https://openjdk.java.net/jeps/325 | ||||
| https://openjdk.java.net/jeps/354 | ||||
| https://openjdk.java.net/jeps/361 | ||||
| 
 | ||||
| Extend the `switch` statement so that it can be used as either a | ||||
| statement or an expression, and that both forms can use either a | ||||
| "traditional" or "simplified" scoping and control flow behavior.  Both | ||||
| forms can use either traditional `case ... :` labels (with fall | ||||
| through) or new `case ... ->` labels (with no fall through), with a | ||||
| further new statement for yielding a value from a `switch` | ||||
| expression. These changes will simplify everyday coding, and also | ||||
| prepare the way for the use of pattern matching in `switch`. | ||||
| 
 | ||||
| This was a preview feature (http://openjdk.java.net/jeps/12) in | ||||
| OpenJDK 12 & 13 and became final in OpenJDK 14. | ||||
| 
 | ||||
| Text Blocks | ||||
| =========== | ||||
| https://openjdk.java.net/jeps/355 | ||||
| https://openjdk.java.net/jeps/368 | ||||
| https://openjdk.java.net/jeps/378 | ||||
| 
 | ||||
| Add text blocks to the Java language. A text block is a multi-line | ||||
| string literal that avoids the need for most escape sequences, | ||||
| automatically formats the string in a predictable way, and gives the | ||||
| developer control over format when desired. | ||||
| 
 | ||||
| This was a preview feature (http://openjdk.java.net/jeps/12) in | ||||
| OpenJDK 13 & 14 and became final in OpenJDK 15. | ||||
| 
 | ||||
| Pattern Matching for instanceof | ||||
| =============================== | ||||
| https://openjdk.java.net/jeps/305 | ||||
| https://openjdk.java.net/jeps/375 | ||||
| https://openjdk.java.net/jeps/394 | ||||
| http://cr.openjdk.java.net/~briangoetz/amber/pattern-match.html | ||||
| 
 | ||||
| Enhance the Java programming language with pattern matching for the | ||||
| `instanceof` operator. Pattern matching allows common logic in a | ||||
| program, namely the conditional extraction of components from objects, | ||||
| to be expressed more concisely and safely. | ||||
| 
 | ||||
| This was a preview feature (http://openjdk.java.net/jeps/12) in | ||||
| OpenJDK 14 & 15 and became final in OpenJDK 16. | ||||
| 
 | ||||
| Records | ||||
| ======= | ||||
| https://openjdk.java.net/jeps/359 | ||||
| https://openjdk.java.net/jeps/384 | ||||
| https://openjdk.java.net/jeps/395 | ||||
| 
 | ||||
| Enhance the Java programming language with records.  Records provide a | ||||
| compact syntax for declaring classes which are transparent holders for | ||||
| shallowly immutable data. | ||||
| 
 | ||||
| This was a preview feature (http://openjdk.java.net/jeps/12) in | ||||
| OpenJDK 14 & 15 and became final in OpenJDK 16. | ||||
| 
 | ||||
| Sealed Classes | ||||
| ============== | ||||
| https://openjdk.java.net/jeps/360 | ||||
| https://openjdk.java.net/jeps/397 | ||||
| https://openjdk.java.net/jeps/409 | ||||
| https://cr.openjdk.java.net/~briangoetz/amber/datum.html | ||||
| 
 | ||||
| Enhance the Java programming language with sealed classes and | ||||
| interfaces. Sealed classes and interfaces restrict which other classes | ||||
| or interfaces may extend or implement them. | ||||
| 
 | ||||
| This was a preview feature (http://openjdk.java.net/jeps/12) in | ||||
| OpenJDK 15 & 16 and became final in OpenJDK 17. | ||||
| 
 | ||||
| Restore Always-Strict Floating-Point Semantics | ||||
| ============================================== | ||||
| https://openjdk.java.net/jeps/306 | ||||
| 
 | ||||
| Make floating-point operations consistently strict, rather than have | ||||
| both strict floating-point semantics (`strictfp`) and subtly different | ||||
| default floating-point semantics. This will restore the original | ||||
| floating-point semantics to the language and VM, matching the | ||||
| semantics before the introduction of strict and default floating-point | ||||
| modes in Java SE 1.2. | ||||
| 
 | ||||
| Pattern Matching for switch | ||||
| =========================== | ||||
| https://openjdk.java.net/jeps/406 | ||||
| 
 | ||||
| core-libs/java.time: | ||||
| Enhance the Java programming language with pattern matching for | ||||
| `switch` expressions and statements, along with extensions to the | ||||
| language of patterns. Extending pattern matching to `switch` allows an | ||||
| expression to be tested against a number of patterns, each with a | ||||
| specific action, so that complex data-oriented queries can be | ||||
| expressed concisely and safely. | ||||
| 
 | ||||
| JDK-8254177: US/Pacific-New Zone name removed as part of tzdata2020b | ||||
| ==================================================================== | ||||
| Following JDK's update to tzdata2020b, the long-obsolete files | ||||
| pacificnew and systemv have been removed. As a result, the | ||||
| "US/Pacific-New" zone name declared in the pacificnew data file is no | ||||
| longer available for use. | ||||
| This is a preview feature (http://openjdk.java.net/jeps/12) in OpenJDK | ||||
| 17. | ||||
| 
 | ||||
| Information regarding the update can be viewed at | ||||
| https://mm.icann.org/pipermail/tz-announce/2020-October/000059.html | ||||
| Library Features | ||||
| ================ | ||||
| 
 | ||||
| New in release OpenJDK 15.0.1 (2020-10-20): | ||||
| =========================================== | ||||
| Live versions of these release notes can be found at: | ||||
|   * https://builds.shipilev.net/backports-monitor/release-notes-15.0.1.txt | ||||
| JVM Constants API | ||||
| ================= | ||||
| https://openjdk.java.net/jeps/334 | ||||
| 
 | ||||
| * Security fixes | ||||
|   - JDK-8233624: Enhance JNI linkage | ||||
|   - JDK-8236196: Improve string pooling | ||||
|   - JDK-8236862, CVE-2020-14779: Enhance support of Proxy class | ||||
|   - JDK-8237990, CVE-2020-14781: Enhanced LDAP contexts | ||||
|   - JDK-8237995, CVE-2020-14782: Enhance certificate processing | ||||
|   - JDK-8240124: Better VM Interning | ||||
|   - JDK-8241114, CVE-2020-14792: Better range handling | ||||
|   - JDK-8242680, CVE-2020-14796: Improved URI Support | ||||
|   - JDK-8242685, CVE-2020-14797: Better Path Validation | ||||
|   - JDK-8242695, CVE-2020-14798: Enhanced buffer support | ||||
|   - JDK-8243302: Advanced class supports | ||||
|   - JDK-8244136, CVE-2020-14803: Improved Buffer supports | ||||
|   - JDK-8244479: Further constrain certificates | ||||
|   - JDK-8244955: Additional Fix for JDK-8240124 | ||||
|   - JDK-8245407: Enhance zoning of times | ||||
|   - JDK-8245412: Better class definitions | ||||
|   - JDK-8245417: Improve certificate chain handling | ||||
|   - JDK-8248574: Improve jpeg processing | ||||
|   - JDK-8249927: Specify limits of jdk.serialProxyInterfaceLimit | ||||
|   - JDK-8253019: Enhanced JPEG decoding | ||||
| * Other changes | ||||
|   - JDK-8232114: JVM crashed at imjpapi.dll in native code | ||||
|   - JDK-8243470: [macos] bring back O2 opt level for unsafe.cpp | ||||
|   - JDK-8247251: Assert '(_pcs_length == 0 || last_pc()->pc_offset() < pc_offset) failed: must specify a new, larger pc offset' failure | ||||
|   - JDK-8248495: [macos] zerovm is broken due to libffi headers location | ||||
|   - JDK-8248745: Add jarsigner and keytool tests for restricted algorithms | ||||
|   - JDK-8249165: Remove unneeded nops introduced by 8234160 changes | ||||
|   - JDK-8249183: JVM crash in "AwtFrame::WmSize" method | ||||
|   - JDK-8249266: Bump release strings for JDK 15.0.1 | ||||
|   - JDK-8249266: Change jdk 15.0.1 milestone to fcs for build b02 | ||||
|   - JDK-8250612: jvmciCompilerToVM.cpp declares jio_printf with "void" return type, should be "int" | ||||
|   - JDK-8250665: Wrong translation for the month name of May in ar_JO,LB,SY | ||||
|   - JDK-8250861: Crash in MinINode::Ideal(PhaseGVN*, bool) | ||||
|   - JDK-8250876: Fix issues with cross-compile on macos | ||||
|   - JDK-8250928: JFR: Improve hash algorithm for stack traces | ||||
|   - JDK-8251359: Shenandoah: filter null oops before calling enqueue/SATB barrier | ||||
|   - JDK-8251458: Parse::do_lookupswitch fails with "assert(_cnt >= 0) failed" | ||||
|   - JDK-8251859: sun/security/validator/PKIXValAndRevCheckTests.java fails | ||||
|   - JDK-8251910: Shenandoah: Handshake threads between weak-roots and reset phases | ||||
|   - JDK-8252120: compiler/oracle/TestCompileCommand.java misspells "occured" | ||||
|   - JDK-8252292: 8240795 may cause anti-dependence to be missed | ||||
|   - JDK-8252359: HotSpot Not Identifying it is Running in a Container | ||||
|   - JDK-8252367: Undo JDK-8245000: Windows GDI functions don't support large pages | ||||
|   - JDK-8252368: Undo JDK-8245002: Windows GDI functions don't support NUMA interleaving | ||||
|   - JDK-8252470: java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java fails on Windows | ||||
|   - JDK-8252660: Shenandoah: support manageable SoftMaxHeapSize option | ||||
|   - JDK-8252754: Hash code calculation of JfrStackTrace is inconsistent | ||||
|   - JDK-8253222: Shenandoah: unused AlwaysTrueClosure after JDK-8246591 | ||||
|   - JDK-8253224: Shenandoah: ShenandoahStrDedupQueue destructor calls virtual num_queues() | ||||
|   - JDK-8253226: Shenandoah: remove unimplemented ShenandoahStrDedupQueue::verify | ||||
|   - JDK-8253284: Zero OrderAccess barrier mappings are incorrect | ||||
|   - JDK-8253714: [cgroups v2] Soft memory limit incorrectly using memory.high | ||||
|   - JDK-8253727: [cgroups v2] Memory and swap limits reported incorrectly | ||||
|   - JDK-8253778: ShenandoahSafepoint::is_at_shenandoah_safepoint should not access VMThread state from other threads | ||||
|   - JDK-8254144: Non-x86 Zero builds fail with return-type warning in os_linux_zero.cpp | ||||
|   - JDK-8254560: Shenandoah: Concurrent Strong Roots logging is incorrect | ||||
| Introduce an API to model nominal descriptions of key class-file and | ||||
| run-time artifacts, in particular constants that are loadable from the | ||||
| constant pool. | ||||
| 
 | ||||
| Notes on individual issues: | ||||
| Reimplement the Legacy Socket API | ||||
| ================================= | ||||
| https://openjdk.java.net/jeps/353 | ||||
| 
 | ||||
| Replace the underlying implementation used by the `java.net.Socket` | ||||
| and `java.net.ServerSocket` APIs with a simpler and more modern | ||||
| implementation that is easy to maintain and debug. The new | ||||
| implementation will be easy to adapt to work with user-mode threads, | ||||
| a.k.a. fibers, currently being explored in Project Loom | ||||
| (https://openjdk.java.net/projects/loom). | ||||
| 
 | ||||
| JFR Event Streaming | ||||
| =================== | ||||
| https://openjdk.java.net/jeps/349 | ||||
| 
 | ||||
| Expose JDK Flight Recorder data for continuous monitoring. | ||||
| 
 | ||||
| Non-Volatile Mapped Byte Buffers | ||||
| ================================ | ||||
| https://openjdk.java.net/jeps/352 | ||||
| 
 | ||||
| Add new JDK-specific file mapping modes so that the `FileChannel` API | ||||
| can be used to create `MappedByteBuffer` instances that refer to | ||||
| non-volatile memory. | ||||
| 
 | ||||
| Helpful NullPointerExceptions | ||||
| ============================= | ||||
| https://openjdk.java.net/jeps/358 | ||||
| 
 | ||||
| Improve the usability of `NullPointerException`s generated by the JVM | ||||
| by describing precisely which variable was `null`. | ||||
| 
 | ||||
| Foreign-Memory Access API | ||||
| ========================= | ||||
| https://openjdk.java.net/jeps/370 | ||||
| https://openjdk.java.net/jeps/383 | ||||
| https://openjdk.java.net/jeps/393 | ||||
| 
 | ||||
| Introduce an API to allow Java programs to safely and efficiently | ||||
| access foreign memory outside of the Java heap. | ||||
| 
 | ||||
| This was a incubation feature (https://openjdk.java.net/jeps/11) in | ||||
| OpenJDK 14, 15 & 16, now superseded by the Foreign Function & Memory | ||||
| API in OpenJDK 17 (see below). | ||||
| 
 | ||||
| Edwards-Curve Digital Signature Algorithm (EdDSA) | ||||
| ================================================= | ||||
| https://openjdk.java.net/jeps/339 | ||||
| 
 | ||||
| Implement cryptographic signatures using the Edwards-Curve Digital | ||||
| Signature Algorithm (EdDSA) as described by RFC 8032 | ||||
| (https://tools.ietf.org/html/rfc8032). | ||||
| 
 | ||||
| Hidden Classes | ||||
| ============== | ||||
| https://openjdk.java.net/jeps/371 | ||||
| 
 | ||||
| Introduce hidden classes, which are classes that cannot be used | ||||
| directly by the bytecode of other classes. Hidden classes are intended | ||||
| for use by frameworks that generate classes at run time and use them | ||||
| indirectly, via reflection. A hidden class may be defined as a member | ||||
| of an access control nest (https://openjdk.java.net/jeps/181), and may | ||||
| be unloaded independently of other classes. | ||||
| 
 | ||||
| Reimplement the Legacy DatagramSocket API | ||||
| ========================================= | ||||
| https://openjdk.java.net/jeps/373 | ||||
| 
 | ||||
| Replace the underlying implementations of the | ||||
| `java.net.DatagramSocket` and `java.net.MulticastSocket` APIs with | ||||
| simpler and more modern implementations that are easy to maintain and | ||||
| debug. The new implementations will be easy to adapt to work with | ||||
| virtual threads, currently being explored in Project Loom | ||||
| (https://openjdk.java.net/projects/loom). This is a follow-on to JEP | ||||
| 353 (see above), which already reimplemented the legacy Socket API. | ||||
| 
 | ||||
| Vector API | ||||
| ========== | ||||
| https://openjdk.java.net/jeps/338 | ||||
| https://openjdk.java.net/jeps/414 | ||||
| 
 | ||||
| Provide an initial iteration of an incubator module, | ||||
| `jdk.incubator.vector`, to express vector computations that reliably | ||||
| compile at runtime to optimal vector hardware instructions on | ||||
| supported CPU architectures and thus achieve superior performance to | ||||
| equivalent scalar computations. | ||||
| 
 | ||||
| This is an incubation feature (https://openjdk.java.net/jeps/11) | ||||
| introduced in OpenJDK 16. | ||||
| 
 | ||||
| Unix-Domain Socket Channels | ||||
| =========================== | ||||
| https://openjdk.java.net/jeps/380 | ||||
| 
 | ||||
| security-libs/java.security: | ||||
| Add Unix-domain (`AF_UNIX`) socket support to the socket channel and | ||||
| server-socket channel APIs in the `java.nio.channels` package. Extend | ||||
| the inherited channel mechanism to support Unix-domain socket channels | ||||
| and server socket channels. | ||||
| 
 | ||||
| JDK-8250756: Added Entrust Root Certification Authority - G4 certificate | ||||
| ======================================================================== | ||||
| The Entrust root certificate has been added to the cacerts truststore: | ||||
| Foreign Linker API (Incubator) | ||||
| ============================== | ||||
| https://openjdk.java.net/jeps/389 | ||||
| 
 | ||||
| Alias Name: entrustrootcag4 | ||||
| Distinguished Name: CN=Entrust Root Certification Authority - G4, OU="(c) 2015 Entrust,  Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US | ||||
| Introduce an API that offers statically-typed, pure-Java access to | ||||
| native code. This API, together with the Foreign-Memory API (see | ||||
| above), will considerably simplify the otherwise error-prone process | ||||
| of binding to a native library. | ||||
| 
 | ||||
| JDK-8250860: Added 3 SSL Corporation Root CA Certificates | ||||
| This was an incubation feature (https://openjdk.java.net/jeps/11) | ||||
| introduced in OpenJDK 16, now superseded by the Foreign Function & | ||||
| Memory API in OpenJDK 17 (see below). | ||||
| 
 | ||||
| Strongly Encapsulate JDK Internals by Default | ||||
| ============================================= | ||||
| https://openjdk.java.net/jeps/396 | ||||
| https://openjdk.java.net/jeps/403 | ||||
| 
 | ||||
| Strongly encapsulate all internal elements of the JDK by default, | ||||
| except for critical internal APIs such as `sun.misc.Unsafe`.  It will | ||||
| no longer be possible to relax the strong encapsulation of internal | ||||
| elements via a single command-line option, as was possible in OpenJDK | ||||
| 9 through 16. | ||||
| 
 | ||||
| Enhanced Pseudo-Random Number Generators | ||||
| ======================================== | ||||
| https://openjdk.java.net/jeps/356 | ||||
| 
 | ||||
| Provide new interface types and implementations for pseudo-random | ||||
| number generators (PRNGs), including jumpable PRNGs and an additional | ||||
| class of splittable PRNG algorithms (LXM). | ||||
| 
 | ||||
| Foreign Function & Memory API | ||||
| ============================= | ||||
| https://openjdk.java.net/jeps/412 | ||||
| 
 | ||||
| Introduce an API by which Java programs can interoperate with code and | ||||
| data outside of the Java runtime. By efficiently invoking foreign | ||||
| functions (i.e., code outside the JVM), and by safely accessing | ||||
| foreign memory (i.e., memory not managed by the JVM), the API enables | ||||
| Java programs to call native libraries and process native data without | ||||
| the brittleness and danger of JNI. | ||||
| 
 | ||||
| This API is an incubation feature (https://openjdk.java.net/jeps/11) | ||||
| introduced in OpenJDK 17, and is an evolution of the Foreign Memory | ||||
| Access API (OpenJDK 14 through 16) and Foreign Linker API (OpenJDK | ||||
| 16) (see above). | ||||
| 
 | ||||
| Context-Specific Deserialization Filters | ||||
| ======================================== | ||||
| https://openjdk.java.net/jeps/415 | ||||
| 
 | ||||
| Allow applications to configure context-specific and | ||||
| dynamically-selected deserialization filters via a JVM-wide filter | ||||
| factory that is invoked to select a filter for each individual | ||||
| deserialization operation. | ||||
| 
 | ||||
| Tools | ||||
| ===== | ||||
| 
 | ||||
| Packaging Tool | ||||
| ============== | ||||
| https://openjdk.java.net/jeps/343 | ||||
| https://openjdk.java.net/jeps/392 | ||||
| 
 | ||||
| Provide the `jpackage` tool, for packaging self-contained Java | ||||
| applications. | ||||
| 
 | ||||
| JVM Features | ||||
| ============ | ||||
| 
 | ||||
| Shenandoah: A Low-Pause-Time Garbage Collector | ||||
| ============================================== | ||||
| https://openjdk.java.net/jeps/189 | ||||
| https://openjdk.java.net/jeps/379 | ||||
| 
 | ||||
| Add a new garbage collection (GC) algorithm named Shenandoah which | ||||
| reduces GC pause times by doing evacuation work concurrently with the | ||||
| running Java threads.  Pause times with Shenandoah are independent of | ||||
| heap size, meaning you will have the same consistent pause times | ||||
| whether your heap is 200 MB or 200 GB. | ||||
| 
 | ||||
| Shenandoah has been provided in Red Hat builds of OpenJDK 8 since | ||||
| 8u131 in April 2017 and in all 11u builds. | ||||
| 
 | ||||
| Upstream, it was introduced in OpenJDK 12 as an experimental feature | ||||
| and became a production feature in OpenJDK 15. It was backported to | ||||
| OpenJDK 11 with the 11.0.9 release in October 2020. | ||||
| 
 | ||||
| Abortable Mixed Collections for G1 | ||||
| ================================== | ||||
| https://openjdk.java.net/jeps/344 | ||||
| 
 | ||||
| Make G1 mixed collections abortable if they might exceed the pause | ||||
| target. | ||||
| 
 | ||||
| Promptly Return Unused Committed Memory from G1 | ||||
| =============================================== | ||||
| https://openjdk.java.net/jeps/346 | ||||
| 
 | ||||
| Enhance the G1 garbage collector to automatically return Java heap | ||||
| memory to the operating system when idle. | ||||
| 
 | ||||
| Dynamic CDS Archives | ||||
| ==================== | ||||
| https://openjdk.java.net/jeps/310 | ||||
| https://openjdk.java.net/jeps/350 | ||||
| 
 | ||||
| Extend application class-data sharing to allow the dynamic archiving | ||||
| of classes at the end of Java application execution. The archived | ||||
| classes will include all loaded application classes and library | ||||
| classes that are not present in the default, base-layer CDS archive. | ||||
| 
 | ||||
| ZGC: Uncommit Unused Memory (Experimental) | ||||
| ========================================== | ||||
| https://openjdk.java.net/jeps/351 | ||||
| 
 | ||||
| Enhance ZGC to return unused heap memory to the operating system. | ||||
| 
 | ||||
| NUMA-Aware Memory Allocation for G1 | ||||
| =================================== | ||||
| https://openjdk.java.net/jeps/345 | ||||
| 
 | ||||
| Improve G1 performance on large machines by implementing NUMA-aware | ||||
| memory allocation. | ||||
| 
 | ||||
| ZGC on macOS (Experimental) | ||||
| =========================== | ||||
| https://openjdk.java.net/jeps/364 | ||||
| 
 | ||||
| Port the ZGC garbage collector to macOS. | ||||
| 
 | ||||
| ZGC on Windows (Experimental) | ||||
| ============================= | ||||
| https://openjdk.java.net/jeps/365 | ||||
| 
 | ||||
| Port the ZGC garbage collector to Windows. | ||||
| 
 | ||||
| ZGC: A Scalable Low-Latency Garbage Collector (Production) | ||||
| ========================================================== | ||||
| https://openjdk.java.net/jeps/377 | ||||
| 
 | ||||
| Change the Z Garbage Collector from an experimental feature into a | ||||
| product feature. | ||||
| 
 | ||||
| ZGC: Concurrent Thread-Stack Processing | ||||
| ======================================= | ||||
| https://openjdk.java.net/jeps/376 | ||||
| 
 | ||||
| Move ZGC thread-stack processing from safepoints to a concurrent | ||||
| phase. | ||||
| 
 | ||||
| Elastic Metaspace | ||||
| ================= | ||||
| https://openjdk.java.net/jeps/387 | ||||
| 
 | ||||
| Return unused HotSpot class-metadata (i.e., metaspace) memory to the | ||||
| operating system more promptly, reduce metaspace footprint, and | ||||
| simplify the metaspace code in order to reduce maintenance costs. | ||||
| 
 | ||||
| Ports | ||||
| ===== | ||||
| 
 | ||||
| Alpine Linux Port | ||||
| ================= | ||||
| https://openjdk.java.net/jeps/386 | ||||
| 
 | ||||
| Port the JDK to Alpine Linux, and to other Linux distributions that | ||||
| use musl as their primary C library, on both the x64 and AArch64 | ||||
| architectures, | ||||
| 
 | ||||
| Windows/AArch64 Port | ||||
| ==================== | ||||
| https://openjdk.java.net/jeps/388 | ||||
| 
 | ||||
| Port the JDK to Windows/AArch64. | ||||
| 
 | ||||
| New macOS Rendering Pipeline | ||||
| ============================ | ||||
| https://openjdk.java.net/jeps/382 | ||||
| 
 | ||||
| Implement a Java 2D internal rendering pipeline for macOS using the | ||||
| Apple Metal API as alternative to the existing pipeline, which uses | ||||
| the deprecated Apple OpenGL API. | ||||
| 
 | ||||
| macOS/AArch64 Port | ||||
| ================== | ||||
| https://openjdk.java.net/jeps/391 | ||||
| 
 | ||||
| Port the JDK to macOS/AArch64. | ||||
| 
 | ||||
| DEPRECATIONS | ||||
| ============ | ||||
| 
 | ||||
| Deprecate the ParallelScavenge + SerialOld GC Combination | ||||
| ========================================================= | ||||
| The following root certificates have been added to the cacerts truststore for the SSL Corporation: | ||||
| https://openjdk.java.net/jeps/366 | ||||
| 
 | ||||
| Alias Name: sslrootrsaca | ||||
| Distinguished Name: CN=SSL.com Root Certification Authority RSA, O=SSL Corporation, L=Houston, ST=Texas, C=US | ||||
| Deprecate the combination of the Parallel Scavenge and Serial Old | ||||
| garbage collection algorithms. | ||||
| 
 | ||||
| Alias Name: sslrootevrsaca | ||||
| Distinguished Name: CN=SSL.com EV Root Certification Authority RSA R2, O=SSL Corporation, L=Houston, ST=Texas, C=US | ||||
| Deprecate and Disable Biased Locking | ||||
| ==================================== | ||||
| https://openjdk.java.net/jeps/374 | ||||
| 
 | ||||
| Alias Name: sslrooteccca | ||||
| Distinguished Name: CN=SSL.com Root Certification Authority ECC, O=SSL Corporation, L=Houston, ST=Texas, C=US | ||||
| Disable biased locking by default, and deprecate all related | ||||
| command-line options. | ||||
| 
 | ||||
| Warnings for Value-Based Classes | ||||
| ================================ | ||||
| https://openjdk.java.net/jeps/390 | ||||
| 
 | ||||
| Designate the primitive wrapper classes as value-based and deprecate | ||||
| their constructors for removal, prompting new deprecation | ||||
| warnings. Provide warnings about improper attempts to synchronize on | ||||
| instances of any value-based classes in the Java Platform. | ||||
| 
 | ||||
| Deprecate the Applet API for Removal | ||||
| ==================================== | ||||
| https://openjdk.java.net/jeps/398 | ||||
| 
 | ||||
| Deprecate the Applet API for removal.  It is essentially irrelevant | ||||
| since all web-browser vendors have either removed support for Java | ||||
| browser plug-ins or announced plans to do so. | ||||
| 
 | ||||
| Deprecate the Security Manager for Removal | ||||
| ========================================== | ||||
| https://openjdk.java.net/jeps/411 | ||||
| 
 | ||||
| Deprecate the Security Manager for removal in a future release. The | ||||
| Security Manager dates from Java 1.0. It has not been the primary | ||||
| means of securing client-side Java code for many years, and it has | ||||
| rarely been used to secure server-side code. To move Java forward, we | ||||
| intend to deprecate the Security Manager for removal in concert with | ||||
| the legacy Applet API (see above).  . | ||||
| 
 | ||||
| REMOVALS | ||||
| ======== | ||||
| 
 | ||||
| Remove the Concurrent Mark Sweep (CMS) Garbage Collector | ||||
| ======================================================== | ||||
| https://openjdk.java.net/jeps/363 | ||||
| 
 | ||||
| Remove the Concurrent Mark Sweep (CMS) garbage collector. | ||||
| 
 | ||||
| Remove the Pack200 Tools and API | ||||
| ================================ | ||||
| https://openjdk.java.net/jeps/336 | ||||
| https://openjdk.java.net/jeps/367 | ||||
| 
 | ||||
| Remove the `pack200` and `unpack200` tools, and the `Pack200` API in | ||||
| the `java.util.jar` package.  These tools and API were deprecated for | ||||
| removal in OpenJDK 11 with the express intent to remove them in a | ||||
| future release. | ||||
| 
 | ||||
| Remove the Nashorn JavaScript Engine | ||||
| ==================================== | ||||
| https://openjdk.java.net/jeps/372 | ||||
| 
 | ||||
| Remove the Nashorn JavaScript script engine and APIs, and the `jjs` | ||||
| tool. The engine, the APIs, and the tool were deprecated for removal | ||||
| in OpenJDK 11 with the express intent to remove them in a future | ||||
| release. | ||||
| 
 | ||||
| Remove the Solaris and SPARC Ports | ||||
| ================================== | ||||
| https://openjdk.java.net/jeps/362 | ||||
| https://openjdk.java.net/jeps/381 | ||||
| 
 | ||||
| Remove the source code and build support for the Solaris/SPARC, | ||||
| Solaris/x64, and Linux/SPARC ports.  These ports were deprecated for | ||||
| removal in OpenJDK 14 (JEP 362) and removed in OpenJDK 15 (JEP 381). | ||||
| 
 | ||||
| Remove RMI Activation | ||||
| ===================== | ||||
| https://openjdk.java.net/jeps/385 | ||||
| https://openjdk.java.net/jeps/407 | ||||
| https://docs.oracle.com/en/java/javase/14/docs/specs/rmi/activation.html | ||||
| 
 | ||||
| Remove the Remote Method Invocation (RMI) Activation mechanism, while | ||||
| preserving the rest of RMI.  RMI Activation is an obsolete part of RMI | ||||
| that has been optional since OpenJDK 8 and was deprecated in OpenJDK | ||||
| 15. | ||||
| 
 | ||||
| Remove the Experimental AOT and JIT Compiler | ||||
| ============================================ | ||||
| https://openjdk.java.net/jeps/410 | ||||
| 
 | ||||
| Remove the experimental Java-based ahead-of-time (AOT) and | ||||
| just-in-time (JIT) compiler.  This compiler has seen little use since | ||||
| its introduction and the effort required to maintain it is | ||||
| significant.  Retain the experimental Java-level JVM compiler | ||||
| interface (JVMCI) so that developers can continue to use | ||||
| externally-built versions of the compiler for JIT compilation. | ||||
|  | ||||
| @ -298,7 +298,7 @@ | ||||
| %global top_level_dir_name   %{origin} | ||||
| %global top_level_dir_name_backup %{top_level_dir_name}-backup | ||||
| %global buildver        35 | ||||
| %global rpmrelease      2 | ||||
| %global rpmrelease      3 | ||||
| # Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit | ||||
| %if %is_system_jdk | ||||
| # Using 10 digits may overflow the int used for priority, so we combine the patch and build versions | ||||
| @ -2267,6 +2267,9 @@ cjc.mainProgram(args) | ||||
| %endif | ||||
| 
 | ||||
| %changelog | ||||
| * Mon Sep 27 2021 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.0.0.35-3.rolling | ||||
| - Update release notes to document the major changes between OpenJDK 11 & 17. | ||||
| 
 | ||||
| * Thu Sep 16 2021 Martin Balao <mbalao@redhat.com> - 1:17.0.0.0.35-2.rolling | ||||
| - Add patch to disable non-FIPS crypto in the SUN and SunEC security providers. | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user