/[packages]/backports/8/java-latest-openjdk/current/SOURCES/NEWS
ViewVC logotype

Diff of /backports/8/java-latest-openjdk/current/SOURCES/NEWS

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1760831 by neoclust, Wed Mar 3 20:46:04 2021 UTC revision 1760832 by neoclust, Sun Dec 5 21:26:42 2021 UTC
# Line 3  Key: Line 3  Key:
3  JDK-X  - https://bugs.openjdk.java.net/browse/JDK-X  JDK-X  - https://bugs.openjdk.java.net/browse/JDK-X
4  CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY  CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
5    
6  New in release OpenJDK 15.0.2 (2021-01-19):  New in release OpenJDK 17.0.1 (2021-10-19):
7  ===========================================  ===========================================
8  Live versions of these release notes can be found at:  Live versions of these release notes can be found at:
9    * https://builds.shipilev.net/backports-monitor/release-notes-15.0.2.txt    * https://builds.shipilev.net/backports-monitor/release-notes-17.0.1.txt
10    
11  * Security fixes  * Security fixes
12    - JDK-8247619: Improve Direct Buffering of Characters    - JDK-8263314: Enhance XML Dsig modes
13      - JDK-8265167, CVE-2021-35556: Richer Text Editors
14      - JDK-8265574: Improve handling of sheets
15      - JDK-8265580, CVE-2021-35559: Enhanced style for RTF kit
16      - JDK-8265776: Improve Stream handling for SSL
17      - JDK-8266097, CVE-2021-35561: Better hashing support
18      - JDK-8266103: Better specified spec values
19      - JDK-8266109: More Resilient Classloading
20      - JDK-8266115: More Manifest Jar Loading
21      - JDK-8266137, CVE-2021-35564: Improve Keystore integrity
22      - JDK-8266689, CVE-2021-35567: More Constrained Delegation
23      - JDK-8267086: ArrayIndexOutOfBoundsException in java.security.KeyFactory.generatePublic
24      - JDK-8267712: Better LDAP reference processing
25      - JDK-8267729, CVE-2021-35578: Improve TLS client handshaking
26      - JDK-8267735, CVE-2021-35586: Better BMP support
27      - JDK-8268193: Improve requests of certificates
28      - JDK-8268199: Correct certificate requests
29      - JDK-8268205: Enhance DTLS client handshake
30      - JDK-8268500: Better specified ParameterSpecs
31      - JDK-8268506: More Manifest Digests
32      - JDK-8269618, CVE-2021-35603: Better session identification
33      - JDK-8269624: Enhance method selection support
34      - JDK-8270398: Enhance canonicalization
35      - JDK-8270404: Better canonicalization
36  * Other changes  * Other changes
37    - JDK-8197981: Missing return statement in __sync_val_compare_and_swap_8    - JDK-8225082: Remove IdenTrust certificate that is expiring in September 2021
38    - JDK-8239105: Add exception for expiring Digicert root certificates to VerifyCACerts test    - JDK-8243543: jtreg test security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java fails
39    - JDK-8247741: Test test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOption.java fails when -XX:+IgnoreUnrecognizedVMOptions is set    - JDK-8248899: security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java fails, Certificate has been revoked
40    - JDK-8248411: [aarch64] Insufficient error handling when CodeBuffer is exhausted    - JDK-8261088: Repeatable annotations without @Target cannot have containers that target module declarations
41    - JDK-8248596: [TESTBUG] compiler/loopopts/PartialPeelingUnswitch.java times out with Graal enabled    - JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during "PrinterJob.print"
42    - JDK-8248667: Need support for building native libraries located in the test/lib directory    - JDK-8263531: Remove unused buffer int
43    - JDK-8249176: Update GlobalSignR6CA test certificates    - JDK-8266182: Automate manual steps listed in the test jdk/sun/security/pkcs12/ParamsTest.java
44    - JDK-8249192: MonitorInfo stores raw oops across safepoints    - JDK-8267625: AARCH64: typo in LIR_Assembler::emit_profile_type
45    - JDK-8249217: Unexpected StackOverflowError in "process reaper" thread still happens    - JDK-8267666: Add option to jcmd GC.heap_dump to use existing file
46    - JDK-8249781: AArch64: AOT compiled code crashes if C2 allocates r27    - JDK-8268019: C2: assert(no_dead_loop) failed: dead loop detected
47    - JDK-8250257: Bump release strings for JDK 15.0.2    - JDK-8268261: C2: assert(n != __null) failed: Bad immediate dominator info.
48    - JDK-8251397: NPE on ClassValue.ClassValueMap.cacheArray    - JDK-8268427: Improve AlgorithmConstraints:checkAlgorithm performance
49    - JDK-8251859: sun/security/validator/PKIXValAndRevCheckTests.java fails    - JDK-8268963: [IR Framework] Some default regexes matching on PrintOptoAssembly in IRNode.java do not work on all platforms
50    - JDK-8253191: C2: Masked byte comparisons with large masks produce wrong result on x86    - JDK-8269297: Bump version numbers for JDK 17.0.1
51    - JDK-8253375: OSX build fails with Xcode 12.0 (12A7209)    - JDK-8269478: Shenandoah: gc/shenandoah/mxbeans tests should be more resilient
52    - JDK-8253566: clazz.isAssignableFrom will return false for interface implementors    - JDK-8269574: C2: Avoid redundant uncommon traps in GraphKit::builtin_throw() for JVMTI exception events
53    - JDK-8253756: C2 CompilerThread0 crash in Node::add_req(Node*)    - JDK-8269763: The JEditorPane is blank after JDK-8265167
54    - JDK-8253791: Issue with useAppleColor check in CSystemColors.m    - JDK-8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu usage in containers
55    - JDK-8253960: Memory leak in Java_java_lang_ClassLoader_defineClass0()    - JDK-8269882: stack-use-after-scope in NewObjectA
56    - JDK-8254081: java/security/cert/PolicyNode/GetPolicyQualifiers.java fails due to an expired certificate    - JDK-8269897: Shenandoah: Resolve UNKNOWN access strength, where possible
57    - JDK-8254166: Zero: return-type warning in zeroInterpreter_zero.cpp    - JDK-8269934: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status
58    - JDK-8254177: (tz) Upgrade time-zone data to tzdata2020b    - JDK-8269993: [Test]: java/net/httpclient/DigestEchoClientSSL.java contains redundant @run tags
59    - JDK-8254319: Shenandoah: Interpreter native-LRB needs to activate during HAS_FORWARDED    - JDK-8270094: Shenandoah: Provide human-readable labels for test configurations
60    - JDK-8254320: Shenandoah: C2 native LRB should activate for non-cset objects    - JDK-8270096: Shenandoah: Optimize gc/shenandoah/TestRefprocSanity.java for interpreter mode
61    - JDK-8254790: SIGSEGV in string_indexof_char and stringL_indexof_char intrinsics    - JDK-8270098: ZGC: ZBarrierSetC2::clone_at_expansion fails with "Guard against surprises" assert
62    - JDK-8254854: [cgroups v1] Metric limits not properly detected on some join controller combinations    - JDK-8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm Setup
63    - JDK-8254982: (tz) Upgrade time-zone data to tzdata2020c    - JDK-8270280: security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA.java  OCSP response error
64    - JDK-8255065: Zero: accessor_entry misses the IRIW case    - JDK-8270344: Session resumption errors
65    - JDK-8255067: Restore Copyright line in file modified by 8253191    - JDK-8271203: C2: assert(iff->Opcode() == Op_If || iff->Opcode() == Op_CountedLoopEnd || iff->Opcode() == Op_RangeCheck) failed: Check this code when new subtype is added
66    - JDK-8255226: (tz) Upgrade time-zone data to tzdata2020d    - JDK-8271276: C2: Wrong JVM state used for receiver null check
67    - JDK-8255599: Change jdk 15.0.2 milestone to fcs for build b04    - JDK-8271335: Updating RE Configs for BUILD REQUEST 17.0.1+4
68    - JDK-8255603: Memory/Performance regression after JDK-8210985    - JDK-8271589: fatal error with variable shift count integer rotate operation.
69    - JDK-8256051: nmethod_entry_barrier stub miscalculates xmm spill size on x86_32    - JDK-8271723: Unproblemlist runtime/InvocationTests/invokevirtualTests.java
70    - JDK-8256427: Test com/sun/jndi/dns/ConfigTests/PortUnreachable.java does not work on AIX    - JDK-8271730: Client authentication using RSASSA-PSS fails after correct certificate requests
71    - JDK-8256618: Zero: Linux x86_32 build still fails    - JDK-8271925: ZGC: Arraycopy stub passes invalid oop to load barrier
72    - JDK-8257181: s390x builds are very noisy with gc-sections messages    - JDK-8272124: Cgroup v1 initialization causes NullPointerException when cgroup path contains colon
73    - JDK-8257641: Shenandoah: Query is_at_shenandoah_safepoint() from control thread should return false    - JDK-8272131: PhaseMacroExpand::generate_slow_arraycopy crash when clone null CallProjections.fallthrough_ioproj
74    - JDK-8257701: Shenandoah: objArrayKlass metadata is not marked with chunked arrays    - JDK-8272326: java/util/Random/RandomTestMoments.java had two Gaussian fails
75      - JDK-8272332: --with-harfbuzz=system doesn't add -lharfbuzz after JDK-8255790
76      - JDK-8272472: StackGuardPages test doesn't build with glibc 2.34
77      - JDK-8272581: sun/security/pkcs11/Provider/MultipleLogins.sh fails after JDK-8266182
78      - JDK-8272602: [macos] not all KEY_PRESSED events sent when control modifier is used
79      - JDK-8272700: [macos] Build failure with Xcode 13.0 after JDK-8264848
80      - JDK-8272708: [Test]: Cleanup: test/jdk/security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java no longer needs ocspEnabled
81      - JDK-8272806: [macOS] "Apple AWT Internal Exception" when input method is changed
82      - JDK-8273358: macOS Monterey does not have the font Times needed by Serif
83    
84  Notes on individual issues:  Notes on individual issues:
85  ===========================  ===========================
86    
87  core-libs/java.time:  security-libs/java.security:
88    
89  JDK-8254177: US/Pacific-New Zone name removed as part of tzdata2020b  JDK-8271434: Removed IdenTrust Root Certificate
90  ====================================================================  ===============================================
91  Following JDK's update to tzdata2020b, the long-obsolete files  The following root certificate from IdenTrust has been removed from
92  pacificnew and systemv have been removed. As a result, the  the `cacerts` keystore:
 "US/Pacific-New" zone name declared in the pacificnew data file is no  
 longer available for use.  
93    
94  Information regarding the update can be viewed at  Alias Name: identrustdstx3 [jdk]
95  https://mm.icann.org/pipermail/tz-announce/2020-October/000059.html  Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co.
96    
97  New in release OpenJDK 15.0.1 (2020-10-20):  New in release OpenJDK 17.0.0 (2021-09-14):
98  ===========================================  ===========================================
99  Live versions of these release notes can be found at:  The full list of changes in the interim releases from 11u to 17u can be found at:
100    * https://builds.shipilev.net/backports-monitor/release-notes-15.0.1.txt    * https://builds.shipilev.net/backports-monitor/release-notes-12.txt
101      * https://builds.shipilev.net/backports-monitor/release-notes-13.txt
102      * https://builds.shipilev.net/backports-monitor/release-notes-14.txt
103      * https://builds.shipilev.net/backports-monitor/release-notes-15.txt
104      * https://builds.shipilev.net/backports-monitor/release-notes-16.txt
105      * https://builds.shipilev.net/backports-monitor/release-notes-17.txt
106    
107    Major changes are listed below.  Some changes may have been backported
108    to earlier releases following their first appearance in OpenJDK 12
109    through to 17.
110    
111    NEW FEATURES
112    ============
113    
114    Language Features
115    =================
116    
117    Switch Expressions
118    ==================
119    https://openjdk.java.net/jeps/325
120    https://openjdk.java.net/jeps/354
121    https://openjdk.java.net/jeps/361
122    
123    Extend the `switch` statement so that it can be used as either a
124    statement or an expression, and that both forms can use either a
125    "traditional" or "simplified" scoping and control flow behavior.  Both
126    forms can use either traditional `case ... :` labels (with fall
127    through) or new `case ... ->` labels (with no fall through), with a
128    further new statement for yielding a value from a `switch`
129    expression. These changes will simplify everyday coding, and also
130    prepare the way for the use of pattern matching in `switch`.
131    
132    This was a preview feature (http://openjdk.java.net/jeps/12) in
133    OpenJDK 12 & 13 and became final in OpenJDK 14.
134    
135    Text Blocks
136    ===========
137    https://openjdk.java.net/jeps/355
138    https://openjdk.java.net/jeps/368
139    https://openjdk.java.net/jeps/378
140    
141    Add text blocks to the Java language. A text block is a multi-line
142    string literal that avoids the need for most escape sequences,
143    automatically formats the string in a predictable way, and gives the
144    developer control over format when desired.
145    
146    This was a preview feature (http://openjdk.java.net/jeps/12) in
147    OpenJDK 13 & 14 and became final in OpenJDK 15.
148    
149    Pattern Matching for instanceof
150    ===============================
151    https://openjdk.java.net/jeps/305
152    https://openjdk.java.net/jeps/375
153    https://openjdk.java.net/jeps/394
154    http://cr.openjdk.java.net/~briangoetz/amber/pattern-match.html
155    
156    Enhance the Java programming language with pattern matching for the
157    `instanceof` operator. Pattern matching allows common logic in a
158    program, namely the conditional extraction of components from objects,
159    to be expressed more concisely and safely.
160    
161    This was a preview feature (http://openjdk.java.net/jeps/12) in
162    OpenJDK 14 & 15 and became final in OpenJDK 16.
163    
164    Records
165    =======
166    https://openjdk.java.net/jeps/359
167    https://openjdk.java.net/jeps/384
168    https://openjdk.java.net/jeps/395
169    
170    Enhance the Java programming language with records.  Records provide a
171    compact syntax for declaring classes which are transparent holders for
172    shallowly immutable data.
173    
174    This was a preview feature (http://openjdk.java.net/jeps/12) in
175    OpenJDK 14 & 15 and became final in OpenJDK 16.
176    
177    Sealed Classes
178    ==============
179    https://openjdk.java.net/jeps/360
180    https://openjdk.java.net/jeps/397
181    https://openjdk.java.net/jeps/409
182    https://cr.openjdk.java.net/~briangoetz/amber/datum.html
183    
184    Enhance the Java programming language with sealed classes and
185    interfaces. Sealed classes and interfaces restrict which other classes
186    or interfaces may extend or implement them.
187    
188    This was a preview feature (http://openjdk.java.net/jeps/12) in
189    OpenJDK 15 & 16 and became final in OpenJDK 17.
190    
191    Restore Always-Strict Floating-Point Semantics
192    ==============================================
193    https://openjdk.java.net/jeps/306
194    
195    Make floating-point operations consistently strict, rather than have
196    both strict floating-point semantics (`strictfp`) and subtly different
197    default floating-point semantics. This will restore the original
198    floating-point semantics to the language and VM, matching the
199    semantics before the introduction of strict and default floating-point
200    modes in Java SE 1.2.
201    
202  * Security fixes  Pattern Matching for switch
203    - JDK-8233624: Enhance JNI linkage  ===========================
204    - JDK-8236196: Improve string pooling  https://openjdk.java.net/jeps/406
   - 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  
205    
206  Notes on individual issues:  Enhance the Java programming language with pattern matching for
207    `switch` expressions and statements, along with extensions to the
208    language of patterns. Extending pattern matching to `switch` allows an
209    expression to be tested against a number of patterns, each with a
210    specific action, so that complex data-oriented queries can be
211    expressed concisely and safely.
212    
213    This is a preview feature (http://openjdk.java.net/jeps/12) in OpenJDK
214    17.
215    
216    Library Features
217    ================
218    
219    JVM Constants API
220    =================
221    https://openjdk.java.net/jeps/334
222    
223    Introduce an API to model nominal descriptions of key class-file and
224    run-time artifacts, in particular constants that are loadable from the
225    constant pool.
226    
227    Reimplement the Legacy Socket API
228    =================================
229    https://openjdk.java.net/jeps/353
230    
231    Replace the underlying implementation used by the `java.net.Socket`
232    and `java.net.ServerSocket` APIs with a simpler and more modern
233    implementation that is easy to maintain and debug. The new
234    implementation will be easy to adapt to work with user-mode threads,
235    a.k.a. fibers, currently being explored in Project Loom
236    (https://openjdk.java.net/projects/loom).
237    
238    JFR Event Streaming
239    ===================
240    https://openjdk.java.net/jeps/349
241    
242    Expose JDK Flight Recorder data for continuous monitoring.
243    
244    Non-Volatile Mapped Byte Buffers
245    ================================
246    https://openjdk.java.net/jeps/352
247    
248    Add new JDK-specific file mapping modes so that the `FileChannel` API
249    can be used to create `MappedByteBuffer` instances that refer to
250    non-volatile memory.
251    
252    Helpful NullPointerExceptions
253    =============================
254    https://openjdk.java.net/jeps/358
255    
256    Improve the usability of `NullPointerException`s generated by the JVM
257    by describing precisely which variable was `null`.
258    
259    Foreign-Memory Access API
260    =========================
261    https://openjdk.java.net/jeps/370
262    https://openjdk.java.net/jeps/383
263    https://openjdk.java.net/jeps/393
264    
265    Introduce an API to allow Java programs to safely and efficiently
266    access foreign memory outside of the Java heap.
267    
268    This was a incubation feature (https://openjdk.java.net/jeps/11) in
269    OpenJDK 14, 15 & 16, now superseded by the Foreign Function & Memory
270    API in OpenJDK 17 (see below).
271    
272    Edwards-Curve Digital Signature Algorithm (EdDSA)
273    =================================================
274    https://openjdk.java.net/jeps/339
275    
276    Implement cryptographic signatures using the Edwards-Curve Digital
277    Signature Algorithm (EdDSA) as described by RFC 8032
278    (https://tools.ietf.org/html/rfc8032).
279    
280    Hidden Classes
281    ==============
282    https://openjdk.java.net/jeps/371
283    
284    Introduce hidden classes, which are classes that cannot be used
285    directly by the bytecode of other classes. Hidden classes are intended
286    for use by frameworks that generate classes at run time and use them
287    indirectly, via reflection. A hidden class may be defined as a member
288    of an access control nest (https://openjdk.java.net/jeps/181), and may
289    be unloaded independently of other classes.
290    
291    Reimplement the Legacy DatagramSocket API
292    =========================================
293    https://openjdk.java.net/jeps/373
294    
295    Replace the underlying implementations of the
296    `java.net.DatagramSocket` and `java.net.MulticastSocket` APIs with
297    simpler and more modern implementations that are easy to maintain and
298    debug. The new implementations will be easy to adapt to work with
299    virtual threads, currently being explored in Project Loom
300    (https://openjdk.java.net/projects/loom). This is a follow-on to JEP
301    353 (see above), which already reimplemented the legacy Socket API.
302    
303    Vector API
304    ==========
305    https://openjdk.java.net/jeps/338
306    https://openjdk.java.net/jeps/414
307    
308    Provide an initial iteration of an incubator module,
309    `jdk.incubator.vector`, to express vector computations that reliably
310    compile at runtime to optimal vector hardware instructions on
311    supported CPU architectures and thus achieve superior performance to
312    equivalent scalar computations.
313    
314    This is an incubation feature (https://openjdk.java.net/jeps/11)
315    introduced in OpenJDK 16.
316    
317    Unix-Domain Socket Channels
318  ===========================  ===========================
319    https://openjdk.java.net/jeps/380
320    
321  security-libs/java.security:  Add Unix-domain (`AF_UNIX`) socket support to the socket channel and
322    server-socket channel APIs in the `java.nio.channels` package. Extend
323    the inherited channel mechanism to support Unix-domain socket channels
324    and server socket channels.
325    
326    Foreign Linker API (Incubator)
327    ==============================
328    https://openjdk.java.net/jeps/389
329    
330    Introduce an API that offers statically-typed, pure-Java access to
331    native code. This API, together with the Foreign-Memory API (see
332    above), will considerably simplify the otherwise error-prone process
333    of binding to a native library.
334    
335    This was an incubation feature (https://openjdk.java.net/jeps/11)
336    introduced in OpenJDK 16, now superseded by the Foreign Function &
337    Memory API in OpenJDK 17 (see below).
338    
339    Strongly Encapsulate JDK Internals by Default
340    =============================================
341    https://openjdk.java.net/jeps/396
342    https://openjdk.java.net/jeps/403
343    
344    Strongly encapsulate all internal elements of the JDK by default,
345    except for critical internal APIs such as `sun.misc.Unsafe`.  It will
346    no longer be possible to relax the strong encapsulation of internal
347    elements via a single command-line option, as was possible in OpenJDK
348    9 through 16.
349    
350    Enhanced Pseudo-Random Number Generators
351    ========================================
352    https://openjdk.java.net/jeps/356
353    
354    Provide new interface types and implementations for pseudo-random
355    number generators (PRNGs), including jumpable PRNGs and an additional
356    class of splittable PRNG algorithms (LXM).
357    
358    Foreign Function & Memory API
359    =============================
360    https://openjdk.java.net/jeps/412
361    
362    Introduce an API by which Java programs can interoperate with code and
363    data outside of the Java runtime. By efficiently invoking foreign
364    functions (i.e., code outside the JVM), and by safely accessing
365    foreign memory (i.e., memory not managed by the JVM), the API enables
366    Java programs to call native libraries and process native data without
367    the brittleness and danger of JNI.
368    
369    This API is an incubation feature (https://openjdk.java.net/jeps/11)
370    introduced in OpenJDK 17, and is an evolution of the Foreign Memory
371    Access API (OpenJDK 14 through 16) and Foreign Linker API (OpenJDK
372    16) (see above).
373    
374    Context-Specific Deserialization Filters
375    ========================================
376    https://openjdk.java.net/jeps/415
377    
378    Allow applications to configure context-specific and
379    dynamically-selected deserialization filters via a JVM-wide filter
380    factory that is invoked to select a filter for each individual
381    deserialization operation.
382    
383    Tools
384    =====
385    
386    Packaging Tool
387    ==============
388    https://openjdk.java.net/jeps/343
389    https://openjdk.java.net/jeps/392
390    
391    Provide the `jpackage` tool, for packaging self-contained Java
392    applications.
393    
394    JVM Features
395    ============
396    
397    Shenandoah: A Low-Pause-Time Garbage Collector
398    ==============================================
399    https://openjdk.java.net/jeps/189
400    https://openjdk.java.net/jeps/379
401    
402    Add a new garbage collection (GC) algorithm named Shenandoah which
403    reduces GC pause times by doing evacuation work concurrently with the
404    running Java threads.  Pause times with Shenandoah are independent of
405    heap size, meaning you will have the same consistent pause times
406    whether your heap is 200 MB or 200 GB.
407    
408    Shenandoah has been provided in Red Hat builds of OpenJDK 8 since
409    8u131 in April 2017 and in all 11u builds.
410    
411    Upstream, it was introduced in OpenJDK 12 as an experimental feature
412    and became a production feature in OpenJDK 15. It was backported to
413    OpenJDK 11 with the 11.0.9 release in October 2020.
414    
415    Abortable Mixed Collections for G1
416    ==================================
417    https://openjdk.java.net/jeps/344
418    
419    Make G1 mixed collections abortable if they might exceed the pause
420    target.
421    
422    Promptly Return Unused Committed Memory from G1
423    ===============================================
424    https://openjdk.java.net/jeps/346
425    
426    Enhance the G1 garbage collector to automatically return Java heap
427    memory to the operating system when idle.
428    
429    Dynamic CDS Archives
430    ====================
431    https://openjdk.java.net/jeps/310
432    https://openjdk.java.net/jeps/350
433    
434    Extend application class-data sharing to allow the dynamic archiving
435    of classes at the end of Java application execution. The archived
436    classes will include all loaded application classes and library
437    classes that are not present in the default, base-layer CDS archive.
438    
439    ZGC: Uncommit Unused Memory (Experimental)
440    ==========================================
441    https://openjdk.java.net/jeps/351
442    
443    Enhance ZGC to return unused heap memory to the operating system.
444    
445    NUMA-Aware Memory Allocation for G1
446    ===================================
447    https://openjdk.java.net/jeps/345
448    
449    Improve G1 performance on large machines by implementing NUMA-aware
450    memory allocation.
451    
452  JDK-8250756: Added Entrust Root Certification Authority - G4 certificate  ZGC on macOS (Experimental)
453  ========================================================================  ===========================
454  The Entrust root certificate has been added to the cacerts truststore:  https://openjdk.java.net/jeps/364
455    
456  Alias Name: entrustrootcag4  Port the ZGC garbage collector to macOS.
 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  
457    
458  JDK-8250860: Added 3 SSL Corporation Root CA Certificates  ZGC on Windows (Experimental)
459  =========================================================  =============================
460  The following root certificates have been added to the cacerts truststore for the SSL Corporation:  https://openjdk.java.net/jeps/365
461    
462    Port the ZGC garbage collector to Windows.
463    
464    ZGC: A Scalable Low-Latency Garbage Collector (Production)
465    ==========================================================
466    https://openjdk.java.net/jeps/377
467    
468    Change the Z Garbage Collector from an experimental feature into a
469    product feature.
470    
471  Alias Name: sslrootrsaca  ZGC: Concurrent Thread-Stack Processing
472  Distinguished Name: CN=SSL.com Root Certification Authority RSA, O=SSL Corporation, L=Houston, ST=Texas, C=US  =======================================
473    https://openjdk.java.net/jeps/376
474    
475    Move ZGC thread-stack processing from safepoints to a concurrent
476    phase.
477    
478    Elastic Metaspace
479    =================
480    https://openjdk.java.net/jeps/387
481    
482    Return unused HotSpot class-metadata (i.e., metaspace) memory to the
483    operating system more promptly, reduce metaspace footprint, and
484    simplify the metaspace code in order to reduce maintenance costs.
485    
486    Ports
487    =====
488    
489    Alpine Linux Port
490    =================
491    https://openjdk.java.net/jeps/386
492    
493    Port the JDK to Alpine Linux, and to other Linux distributions that
494    use musl as their primary C library, on both the x64 and AArch64
495    architectures,
496    
497    Windows/AArch64 Port
498    ====================
499    https://openjdk.java.net/jeps/388
500    
501    Port the JDK to Windows/AArch64.
502    
503    New macOS Rendering Pipeline
504    ============================
505    https://openjdk.java.net/jeps/382
506    
507    Implement a Java 2D internal rendering pipeline for macOS using the
508    Apple Metal API as alternative to the existing pipeline, which uses
509    the deprecated Apple OpenGL API.
510    
511    macOS/AArch64 Port
512    ==================
513    https://openjdk.java.net/jeps/391
514    
515    Port the JDK to macOS/AArch64.
516    
517    DEPRECATIONS
518    ============
519    
520    Deprecate the ParallelScavenge + SerialOld GC Combination
521    =========================================================
522    https://openjdk.java.net/jeps/366
523    
524  Alias Name: sslrootevrsaca  Deprecate the combination of the Parallel Scavenge and Serial Old
525  Distinguished Name: CN=SSL.com EV Root Certification Authority RSA R2, O=SSL Corporation, L=Houston, ST=Texas, C=US  garbage collection algorithms.
526    
527  Alias Name: sslrooteccca  Deprecate and Disable Biased Locking
528  Distinguished Name: CN=SSL.com Root Certification Authority ECC, O=SSL Corporation, L=Houston, ST=Texas, C=US  ====================================
529    https://openjdk.java.net/jeps/374
530    
531    Disable biased locking by default, and deprecate all related
532    command-line options.
533    
534    Warnings for Value-Based Classes
535    ================================
536    https://openjdk.java.net/jeps/390
537    
538    Designate the primitive wrapper classes as value-based and deprecate
539    their constructors for removal, prompting new deprecation
540    warnings. Provide warnings about improper attempts to synchronize on
541    instances of any value-based classes in the Java Platform.
542    
543    Deprecate the Applet API for Removal
544    ====================================
545    https://openjdk.java.net/jeps/398
546    
547    Deprecate the Applet API for removal.  It is essentially irrelevant
548    since all web-browser vendors have either removed support for Java
549    browser plug-ins or announced plans to do so.
550    
551    Deprecate the Security Manager for Removal
552    ==========================================
553    https://openjdk.java.net/jeps/411
554    
555    Deprecate the Security Manager for removal in a future release. The
556    Security Manager dates from Java 1.0. It has not been the primary
557    means of securing client-side Java code for many years, and it has
558    rarely been used to secure server-side code. To move Java forward, we
559    intend to deprecate the Security Manager for removal in concert with
560    the legacy Applet API (see above).  .
561    
562    REMOVALS
563    ========
564    
565    Remove the Concurrent Mark Sweep (CMS) Garbage Collector
566    ========================================================
567    https://openjdk.java.net/jeps/363
568    
569    Remove the Concurrent Mark Sweep (CMS) garbage collector.
570    
571    Remove the Pack200 Tools and API
572    ================================
573    https://openjdk.java.net/jeps/336
574    https://openjdk.java.net/jeps/367
575    
576    Remove the `pack200` and `unpack200` tools, and the `Pack200` API in
577    the `java.util.jar` package.  These tools and API were deprecated for
578    removal in OpenJDK 11 with the express intent to remove them in a
579    future release.
580    
581    Remove the Nashorn JavaScript Engine
582    ====================================
583    https://openjdk.java.net/jeps/372
584    
585    Remove the Nashorn JavaScript script engine and APIs, and the `jjs`
586    tool. The engine, the APIs, and the tool were deprecated for removal
587    in OpenJDK 11 with the express intent to remove them in a future
588    release.
589    
590    Remove the Solaris and SPARC Ports
591    ==================================
592    https://openjdk.java.net/jeps/362
593    https://openjdk.java.net/jeps/381
594    
595    Remove the source code and build support for the Solaris/SPARC,
596    Solaris/x64, and Linux/SPARC ports.  These ports were deprecated for
597    removal in OpenJDK 14 (JEP 362) and removed in OpenJDK 15 (JEP 381).
598    
599    Remove RMI Activation
600    =====================
601    https://openjdk.java.net/jeps/385
602    https://openjdk.java.net/jeps/407
603    https://docs.oracle.com/en/java/javase/14/docs/specs/rmi/activation.html
604    
605    Remove the Remote Method Invocation (RMI) Activation mechanism, while
606    preserving the rest of RMI.  RMI Activation is an obsolete part of RMI
607    that has been optional since OpenJDK 8 and was deprecated in OpenJDK
608    15.
609    
610    Remove the Experimental AOT and JIT Compiler
611    ============================================
612    https://openjdk.java.net/jeps/410
613    
614    Remove the experimental Java-based ahead-of-time (AOT) and
615    just-in-time (JIT) compiler.  This compiler has seen little use since
616    its introduction and the effort required to maintain it is
617    significant.  Retain the experimental Java-level JVM compiler
618    interface (JVMCI) so that developers can continue to use
619    externally-built versions of the compiler for JIT compilation.

Legend:
Removed from v.1760831  
changed lines
  Added in v.1760832

  ViewVC Help
Powered by ViewVC 1.1.30