2021-01-22 13:10:45 +00:00
|
|
|
|
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
|
|
|
|
|
|
2022-07-22 08:25:03 +00:00
|
|
|
|
New in release OpenJDK 18.0.2 (2022-07-19):
|
|
|
|
|
===========================================
|
|
|
|
|
Live versions of these release notes can be found at:
|
|
|
|
|
* https://builds.shipilev.net/backports-monitor/release-notes-18.0.2.txt
|
|
|
|
|
|
|
|
|
|
* Security fixes
|
|
|
|
|
- JDK-8272243: Improve DER parsing
|
|
|
|
|
- JDK-8272249: Better properties of loaded Properties
|
|
|
|
|
- JDK-8277608: Address IP Addressing
|
|
|
|
|
- JDK-8281859, CVE-2022-21540: Improve class compilation
|
|
|
|
|
- JDK-8281866, CVE-2022-21541: Enhance MethodHandle invocations
|
|
|
|
|
- JDK-8282676: Improve subject handling
|
|
|
|
|
- JDK-8283190: Improve MIDI processing
|
|
|
|
|
- JDK-8284370: Improve zlib usage
|
|
|
|
|
- JDK-8285407, CVE-2022-34169: Improve Xalan supports
|
|
|
|
|
* Other changes
|
|
|
|
|
- JDK-8240903: Add test to check that jmod hashes are reproducible
|
|
|
|
|
- JDK-8256368: Avoid repeated upcalls into Java to re-resolve MH/VH linkers/invokers
|
|
|
|
|
- JDK-8270480: Better path to expressing Xpaths
|
|
|
|
|
- JDK-8271008: appcds/*/MethodHandlesAsCollectorTest.java tests time out because of excessive GC (CodeCache GC Threshold) in loom
|
|
|
|
|
- JDK-8271055: Crash during deoptimization with "assert(bb->is_reachable()) failed: getting result from unreachable basicblock" with -XX:+VerifyStack
|
|
|
|
|
- JDK-8272493: Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2
|
|
|
|
|
- JDK-8274524: SSLSocket.close() hangs if it is called during the ssl handshake
|
|
|
|
|
- JDK-8275337: C1: assert(false) failed: live_in set of first block must be empty
|
|
|
|
|
- JDK-8277055: Assert "missing inlining msg" with -XX:+PrintIntrinsics
|
|
|
|
|
- JDK-8277072: ObjectStreamClass caches keep ClassLoaders alive
|
|
|
|
|
- JDK-8277893: Arraycopy stress tests
|
|
|
|
|
- JDK-8278065: Refactor subclassAudits to use ClassValue
|
|
|
|
|
- JDK-8278381: [GCC 11] Address::make_raw() does not initialize rspec
|
|
|
|
|
- JDK-8278549: UNIX sun/font coding misses SUSE distro detection on recent distro SUSE 15
|
|
|
|
|
- JDK-8278794: Infinite loop in DeflaterOutputStream.finish()
|
|
|
|
|
- JDK-8279219: [REDO] C2 crash when allocating array of size too large
|
|
|
|
|
- JDK-8279668: x86: AVX2 versions of vpxor should be asserted
|
|
|
|
|
- JDK-8279822: CI: Constant pool entries in error state are not supported
|
|
|
|
|
- JDK-8279958: Provide configure hints for Alpine/apk package managers
|
|
|
|
|
- JDK-8280041: Retry loop issues in java.io.ClassCache
|
|
|
|
|
- JDK-8280476: [macOS] : hotspot arm64 bug exposed by latest clang
|
|
|
|
|
- JDK-8280600: C2: assert(!had_error) failed: bad dominance
|
|
|
|
|
- JDK-8280674: Bump version numbers for July CPU
|
|
|
|
|
- JDK-8280799: С2: assert(false) failed: cyclic dependency prevents range check elimination
|
|
|
|
|
- JDK-8280867: Cpuid1Ecx feature parsing is incorrect for AMD CPUs
|
|
|
|
|
- JDK-8280901: MethodHandle::linkToNative stub is missing w/ -Xint
|
|
|
|
|
- JDK-8280956: Re-examine copyright headers on files in src/java.desktop/macosx/native/libawt_lwawt/awt/a11y
|
|
|
|
|
- JDK-8281168: Micro-optimize VarForm.getMemberName for interpreter
|
|
|
|
|
- JDK-8281181: Do not use CPU Shares to compute active processor count
|
|
|
|
|
- JDK-8281266: [JVMCI] MetaUtil.toInternalName() doesn't handle hidden classes correctly
|
|
|
|
|
- JDK-8281274: deal with ActiveProcessorCount in os::Linux::print_container_info
|
|
|
|
|
- JDK-8281318: Improve jfr/event/allocation tests reliability
|
|
|
|
|
- JDK-8281544: assert(VM_Version::supports_avx512bw()) failed for Tests jdk/incubator/vector/
|
|
|
|
|
- JDK-8281615: Deadlock caused by jdwp agent
|
|
|
|
|
- JDK-8281638: jfr/event/allocation tests fail with release VMs after JDK-8281318 due to lack of -XX:+UnlockDiagnosticVMOptions
|
|
|
|
|
- JDK-8281771: Crash in java_lang_invoke_MethodType::print_signature
|
|
|
|
|
- JDK-8281811: assert(_base == Tuple) failed: Not a Tuple after JDK-8280799
|
|
|
|
|
- JDK-8281822: Test failures on non-DTrace builds due to incomplete DTrace* flags handling
|
|
|
|
|
- JDK-8282042: [testbug] FileEncodingTest.java depends on default encoding
|
|
|
|
|
- JDK-8282045: When loop strip mining fails, safepoints are removed from loop anyway
|
|
|
|
|
- JDK-8282080: Lambda deserialization fails for Object method references on interfaces
|
|
|
|
|
- JDK-8282170: JVMTI SetBreakpoint metaspace allocation test
|
|
|
|
|
- JDK-8282172: CompileBroker::log_metaspace_failure is called from non-Java/compiler threads
|
|
|
|
|
- JDK-8282194: C1: Missing side effects of dynamic constant linkage
|
|
|
|
|
- JDK-8282219: jdk/java/lang/ProcessBuilder/Basic.java fails on AIX
|
|
|
|
|
- JDK-8282225: GHA: Allow one concurrent run per PR only
|
|
|
|
|
- JDK-8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers
|
|
|
|
|
- JDK-8282295: SymbolPropertyEntry::set_method_type fails with assert
|
|
|
|
|
- JDK-8282300: Throws NamingException instead of InvalidNameException after JDK-8278972
|
|
|
|
|
- JDK-8282312: Minor corrections to evbroadcasti32x4 intrinsic on x86
|
|
|
|
|
- JDK-8282444: Module finder incorrectly assumes default file system path-separator character
|
|
|
|
|
- JDK-8282551: Properly initialize L32X64MixRandom state
|
|
|
|
|
- JDK-8282583: Update BCEL md to include the copyright notice
|
|
|
|
|
- JDK-8282590: C2: assert(addp->is_AddP() && addp->outcnt() > 0) failed: Don't process dead nodes
|
|
|
|
|
- JDK-8282592: C2: assert(false) failed: graph should be schedulable
|
|
|
|
|
- JDK-8282628: Potential memory leak in sun.font.FontConfigManager.getFontConfig()
|
|
|
|
|
- JDK-8282874: Bad performance on gather/scatter API caused by different IntSpecies of indexMap
|
|
|
|
|
- JDK-8282887: Potential memory leak in sun.util.locale.provider.HostLocaleProviderAdapterImpl.getNumberPattern() on Windows
|
|
|
|
|
- JDK-8282929: Localized monetary symbols are not reflected in `toLocalizedPattern` return value
|
|
|
|
|
- JDK-8283017: GHA: Workflows break with update release versions
|
|
|
|
|
- JDK-8283022: com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java failing with -Xcomp after 8273297
|
|
|
|
|
- JDK-8283037: Update jdk18u fix version to 18.0.2
|
|
|
|
|
- JDK-8283187: C2: loop candidate for superword not always unrolled fully if superword fails
|
|
|
|
|
- JDK-8283217: Leak FcObjectSet in getFontConfigLocations() in fontpath.c
|
|
|
|
|
- JDK-8283379: Memory leak in FileHeaderHelper
|
|
|
|
|
- JDK-8283408: Fix a C2 crash when filling arrays with unsafe
|
|
|
|
|
- JDK-8283422: Create a new test for JDK-8254790
|
|
|
|
|
- JDK-8283451: C2: assert(_base == Long) failed: Not a Long
|
|
|
|
|
- JDK-8283469: Don't use memset to initialize members in FileMapInfo and fix memory leak
|
|
|
|
|
- JDK-8283555: G1: Concurrent mark accesses uninitialized BOT of closed archive regions
|
|
|
|
|
- JDK-8283641: Large value for CompileThresholdScaling causes assert
|
|
|
|
|
- JDK-8283725: Launching java with "-Xlog:gc*=trace,safepoint*=trace,class*=trace" crashes the JVM
|
|
|
|
|
- JDK-8284012: Correction version-numbers.conf after merge
|
|
|
|
|
- JDK-8284023: java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo
|
|
|
|
|
- JDK-8284033: Leak XVisualInfo in getAllConfigs in awt_GraphicsEnv.c
|
|
|
|
|
- JDK-8284094: Memory leak in invoker_completeInvokeRequest()
|
|
|
|
|
- JDK-8284369: TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4
|
|
|
|
|
- JDK-8284389: Improve stability of GHA Pre-submit testing by caching cygwin installer
|
|
|
|
|
- JDK-8284458: CodeHeapState::aggregate() leaks blob_name
|
|
|
|
|
- JDK-8284507: GHA: Only check test results if testing was not skipped
|
|
|
|
|
- JDK-8284532: Memory leak in BitSet::BitMapFragmentTable in JFR leak profiler
|
|
|
|
|
- JDK-8284549: JFR: FieldTable leaks FieldInfoTable member
|
|
|
|
|
- JDK-8284620: CodeBuffer may leak _overflow_arena
|
|
|
|
|
- JDK-8284622: Update versions of some Github Actions used in JDK workflow
|
|
|
|
|
- JDK-8284808: change milestone to fcs for releases: jdk-11.0.16, jdk-17.0.4, jdk-18.0.2
|
|
|
|
|
- JDK-8284848: C2: Compiler blackhole arguments should be treated as globally escaping
|
|
|
|
|
- JDK-8284866: Add test to JDK-8273056
|
|
|
|
|
- JDK-8284992: Fix misleading Vector API doc for LSHR operator
|
|
|
|
|
- JDK-8285394: Compiler blackholes can be eliminated due to stale ciMethod::intrinsic_id()
|
|
|
|
|
- JDK-8285515: (dc) DatagramChannel.disconnect fails with "Invalid argument" on macOS 12.4
|
|
|
|
|
- JDK-8285517: System.getenv() returns unexpected value if environment variable has non ASCII character
|
|
|
|
|
- JDK-8285523: Improve test java/io/FileOutputStream/OpenNUL.java
|
|
|
|
|
- JDK-8285686: Upgrade to FreeType 2.12.0
|
|
|
|
|
- JDK-8285828: runtime/execstack/TestCheckJDK.java fails with zipped debug symbols
|
|
|
|
|
- JDK-8285921: serviceability/dcmd/jvmti/AttachFailed/AttachReturnError.java fails on Alpine
|
|
|
|
|
- JDK-8285956: (fs) Excessive default poll interval in PollingWatchService
|
|
|
|
|
- JDK-8286013: Incorrect test configurations for compiler/stable/TestStableShort.java
|
|
|
|
|
- JDK-8286029: Add classpath exemption to globals_vectorApiSupport_***.S.inc
|
|
|
|
|
- JDK-8286198: [linux] Fix process-memory information
|
|
|
|
|
- JDK-8286283: assert(func2 == 0 && func3 == 0) failed: not unary
|
|
|
|
|
- JDK-8286444: javac errors after JDK-8251329 are not helpful enough to find root cause
|
|
|
|
|
- JDK-8286594: (zipfs) Mention paths with dot elements in ZipException and cleanups
|
|
|
|
|
- JDK-8286601: Mac Aarch: Excessive warnings to be ignored for build jdk
|
|
|
|
|
- JDK-8286855: javac error on invalid jar should only print filename
|
|
|
|
|
- JDK-8287119: Add Distrust.java to ProblemList
|
|
|
|
|
- JDK-8287162: (zipfs) Performance regression related to support for POSIX file permissions
|
|
|
|
|
- JDK-8287175: Backout 8270480: Better path to expressing Xpaths
|
|
|
|
|
- JDK-8287202: GHA: Add macOS aarch64 to the list of default platforms for workflow_dispatch event
|
|
|
|
|
- JDK-8287336: GHA: Workflows break on patch versions
|
|
|
|
|
- JDK-8287378: GHA: Update cygwin to fix issues in langtools tests on Windows
|
|
|
|
|
- JDK-8287644: [18u] Backport of JDK-8240903 causes test errors
|
|
|
|
|
|
|
|
|
|
Notes on individual issues:
|
|
|
|
|
===========================
|
|
|
|
|
|
|
|
|
|
hotspot/runtime:
|
|
|
|
|
|
|
|
|
|
JDK-8288367: CPU Shares Ignored When Computing Active Processor Count
|
|
|
|
|
=====================================================================
|
|
|
|
|
Previous JDK releases used an incorrect interpretation of the Linux
|
|
|
|
|
cgroups parameter cpu.shares". This might cause the JVM to use fewer
|
|
|
|
|
CPUs than available, leading to an under utilization of CPU resources
|
|
|
|
|
when the JVM is used inside a container.
|
|
|
|
|
|
|
|
|
|
Starting from this JDK release, by default, the JVM no longer
|
|
|
|
|
considers "cpu.shares" when deciding the number of threads to be used
|
|
|
|
|
by the various thread pools. The `-XX:+UseContainerCpuShares`
|
|
|
|
|
command-line option can be used to revert to the previous
|
|
|
|
|
behavior. This option is deprecated and may be removed in a future JDK
|
|
|
|
|
release.
|
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
New in release OpenJDK 18.0.1.1 (2022-04-22):
|
|
|
|
|
=============================================
|
2022-01-24 14:29:45 +00:00
|
|
|
|
* Other changes
|
2022-07-11 14:10:14 +00:00
|
|
|
|
- JDK-8283350: (tz) Update Timezone Data to 2022a
|
|
|
|
|
- JDK-8284548: Invalid XPath expression causes StringIndexOutOfBoundsException
|
|
|
|
|
- JDK-8284920: Incorrect Token type causes XPath expression to return incorrect results
|
|
|
|
|
- JDK-8285391: Update the release version for respin April CPU22_04 for release jdk18.0.1.1
|
|
|
|
|
- JDK-8285445: cannot open file "NUL:"
|
|
|
|
|
- JDK-8285454: Update the JBS version for respin of April CPU22_04
|
2022-01-24 14:29:45 +00:00
|
|
|
|
|
|
|
|
|
Notes on individual issues:
|
|
|
|
|
===========================
|
|
|
|
|
|
|
|
|
|
core-libs/java.io:
|
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
JDK-8285660: New System Property to Disable Windows Alternate Data Stream Support in java.io.File
|
|
|
|
|
=================================================================================================
|
|
|
|
|
The Windows implementation of `java.io.File` allows access to NTFS
|
|
|
|
|
Alternate Data Streams (ADS) by default. Such streams have a structure
|
|
|
|
|
like “filename:streamname”. A system property `jdk.io.File.enableADS`
|
|
|
|
|
has been added to control this behavior. To disable ADS support in
|
|
|
|
|
`java.io.File`, the system property `jdk.io.File.enableADS` should be
|
|
|
|
|
set to `false` (case ignored). Stricter path checking however prevents
|
|
|
|
|
the use of special devices such as `NUL:`
|
|
|
|
|
|
|
|
|
|
New in release OpenJDK 18.0.1 (2022-04-19):
|
2021-10-20 17:32:18 +00:00
|
|
|
|
===========================================
|
|
|
|
|
Live versions of these release notes can be found at:
|
2022-07-11 14:10:14 +00:00
|
|
|
|
* https://builds.shipilev.net/backports-monitor/release-notes-18.0.1.txt
|
2021-10-20 17:32:18 +00:00
|
|
|
|
|
|
|
|
|
* Security fixes
|
2022-07-11 14:10:14 +00:00
|
|
|
|
- JDK-8269938: Enhance XML processing passes redux
|
|
|
|
|
- JDK-8270504, CVE-2022-21426: Better XPath expression handling
|
|
|
|
|
- JDK-8272255: Completely handle MIDI files
|
|
|
|
|
- JDK-8272261: Improve JFR recording file processing
|
|
|
|
|
- JDK-8272588: Enhanced recording parsing
|
|
|
|
|
- JDK-8272594: Better record of recordings
|
|
|
|
|
- JDK-8274221: More definite BER encodings
|
|
|
|
|
- JDK-8275151, CVE-2022-21443: Improved Object Identification
|
|
|
|
|
- JDK-8277227: Better identification of OIDs
|
|
|
|
|
- JDK-8277233, CVE-2022-21449: Improve ECDSA signature support
|
|
|
|
|
- JDK-8277672, CVE-2022-21434: Better invocation handler handling
|
|
|
|
|
- JDK-8278356: Improve file creation
|
|
|
|
|
- JDK-8278449: Improve keychain support
|
|
|
|
|
- JDK-8278798: Improve supported intrinsic
|
|
|
|
|
- JDK-8278805: Enhance BMP image loading
|
|
|
|
|
- JDK-8278972, CVE-2022-21496: Improve URL supports
|
|
|
|
|
- JDK-8281388: Change wrapping of EncryptedPrivateKeyInfo
|
2021-10-20 17:32:18 +00:00
|
|
|
|
* Other changes
|
2022-07-11 14:10:14 +00:00
|
|
|
|
- JDK-8258814: Compilation logging crashes for thread suspension / debugging tests
|
|
|
|
|
- JDK-8267341: macos attempt_reserve_memory_at(arg1, arg2, true) failure
|
|
|
|
|
- JDK-8272996: JNDI DNS provider fails to resolve SRV entries when IPV6 stack is enabled
|
|
|
|
|
- JDK-8273139: C2: assert(f <= 1 && f >= 0) failed: Incorrect frequency
|
|
|
|
|
- JDK-8274751: Drag And Drop hangs on Windows
|
|
|
|
|
- JDK-8276819: javax/print/PrintServiceLookup/FlushCustomClassLoader.java fails to free
|
|
|
|
|
- JDK-8276990: Memory leak in invoker.c fillInvokeRequest() during JDI operations
|
|
|
|
|
- JDK-8277488: Add expiry exception for Digicert (geotrustglobalca) expiring in May 2022
|
|
|
|
|
- JDK-8277795: ldap connection timeout not honoured under contention
|
|
|
|
|
- JDK-8278186: org.jcp.xml.dsig.internal.dom.Utils.parseIdFromSameDocumentURI throws StringIndexOutOfBoundsException when calling substring method
|
|
|
|
|
- JDK-8278384: Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT
|
|
|
|
|
- JDK-8278472: Invalid value set to CANDIDATEFORM structure
|
|
|
|
|
- JDK-8278851: Correct signer logic for jars signed with multiple digestalgs
|
|
|
|
|
- JDK-8278869: Bump version numbers for OPENJDK 18.0.1
|
|
|
|
|
- JDK-8279223: Define version in .jcheck/conf
|
|
|
|
|
- JDK-8279225: [arm32] C1 longs comparison operation destroys argument registers
|
|
|
|
|
- JDK-8279412: [JVMCI] failed speculations list must outlive any nmethod that refers to it
|
|
|
|
|
- JDK-8279437: [JVMCI] exception in HotSpotJVMCIRuntime.translate can exit the VM
|
|
|
|
|
- JDK-8279445: Update JMH devkit to 1.34
|
|
|
|
|
- JDK-8280123: C2: Infinite loop in CMoveINode::Ideal during IGVN
|
|
|
|
|
- JDK-8280414: Memory leak in DefaultProxySelector
|
|
|
|
|
- JDK-8280526: x86_32 Math.sqrt performance regression with -XX:UseSSE={0,1}
|
|
|
|
|
- JDK-8280550: SplittableRandom#nextDouble(double,double) can return result >= bound
|
|
|
|
|
- JDK-8280785: change milestone to fcs for releases: jdk-11.0.15, jdk-17.0.3, jdk-18.0.1
|
|
|
|
|
- JDK-8280910: Update openjdk project in jcheck to "jdk-updates" for jdk18u
|
|
|
|
|
- JDK-8280950: RandomGenerator:NextDouble() default behavior non conformant after JDK-8280550 fix
|
|
|
|
|
- JDK-8281093: Violating Attribute-Value Normalization in the XML specification 1.0
|
|
|
|
|
- JDK-8281183: RandomGenerator:NextDouble() default behavior partially fixed by JDK-8280950
|
|
|
|
|
- JDK-8281262: Windows builds in different directories are not fully reproducible
|
|
|
|
|
- JDK-8281275: Upgrading from 8 to 11 no longer accepts '/' as filepath separator in gc paths
|
|
|
|
|
- JDK-8282300: Throws NamingException instead of InvalidNameException after JDK-8278972
|
|
|
|
|
- JDK-8282397: createTempFile method of java.io.File is failing when called with suffix of spaces character
|
|
|
|
|
|
|
|
|
|
New in release OpenJDK 18.0.0 (2022-03-22):
|
2021-01-22 13:10:45 +00:00
|
|
|
|
===========================================
|
2021-09-27 01:42:03 +00:00
|
|
|
|
Major changes are listed below. Some changes may have been backported
|
2022-07-11 14:10:14 +00:00
|
|
|
|
to earlier releases following their first appearance in OpenJDK 18.
|
|
|
|
|
|
|
|
|
|
The full list of changes in 18u can be found at:
|
|
|
|
|
- * https://builds.shipilev.net/backports-monitor/release-notes-18.txt
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
|
|
|
|
NEW FEATURES
|
|
|
|
|
============
|
|
|
|
|
|
|
|
|
|
Language Features
|
|
|
|
|
=================
|
|
|
|
|
|
|
|
|
|
Pattern Matching for switch
|
2021-01-22 13:10:45 +00:00
|
|
|
|
===========================
|
2022-07-11 14:10:14 +00:00
|
|
|
|
https://openjdk.org/jeps/406
|
|
|
|
|
https://openjdk.org/jeps/420
|
2021-01-22 13:10:45 +00:00
|
|
|
|
|
2021-09-27 01:42:03 +00:00
|
|
|
|
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.
|
2021-01-22 13:10:45 +00:00
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
This was a preview feature (http://openjdk.java.net/jeps/12) in
|
|
|
|
|
OpenJDK 17 (JEP 406) and sees a second preview in OpenJDK 18 (JEP
|
|
|
|
|
420).
|
2021-01-22 13:10:45 +00:00
|
|
|
|
|
2021-09-27 01:42:03 +00:00
|
|
|
|
Library Features
|
|
|
|
|
================
|
2021-01-22 13:10:45 +00:00
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
UTF-8 by Default
|
|
|
|
|
================
|
|
|
|
|
https://openjdk.org/jeps/400
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
Specify UTF-8 as the default charset of the standard Java APIs. With
|
|
|
|
|
this change, APIs that depend upon the default charset will behave
|
|
|
|
|
consistently across all implementations, operating systems, locales,
|
|
|
|
|
and configurations.
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
Reimplement Core Reflection with Method Handles
|
|
|
|
|
===============================================
|
|
|
|
|
https://openjdk.org/jeps/416
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
Reimplement java.lang.reflect.Method, Constructor, and Field on top of
|
|
|
|
|
java.lang.invoke method handles. Making method handles the underlying
|
|
|
|
|
mechanism for reflection will reduce the maintenance and development
|
|
|
|
|
cost of both the java.lang.reflect and java.lang.invoke APIs.
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
|
|
|
|
Vector API
|
|
|
|
|
==========
|
2022-07-11 14:10:14 +00:00
|
|
|
|
https://openjdk.org/jeps/338
|
|
|
|
|
https://openjdk.org/jeps/414
|
|
|
|
|
https://openjdk.org/jeps/417
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
|
|
|
|
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)
|
2022-07-11 14:10:14 +00:00
|
|
|
|
introduced in OpenJDK 16 (JEP 338). A second round of incubation took
|
|
|
|
|
place in OpenJDK 17 (JEP 414) and OpenJDK 18 (JEP 417) sees a third.
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
Internet-Address Resolution SPI
|
|
|
|
|
===============================
|
|
|
|
|
https://openjdk.org/jeps/418
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
Define a service-provider interface (SPI) for host name and address
|
|
|
|
|
resolution, so that java.net.InetAddress can make use of resolvers
|
|
|
|
|
other than the platform's built-in resolver.
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
|
|
|
|
Foreign Function & Memory API
|
|
|
|
|
=============================
|
2022-07-11 14:10:14 +00:00
|
|
|
|
https://openjdk.org/jeps/412
|
|
|
|
|
https://openjdk.org/jeps/419
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
|
|
|
|
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)
|
2022-07-11 14:10:14 +00:00
|
|
|
|
introduced in OpenJDK 17 (JEP 412), and is an evolution of the Foreign
|
|
|
|
|
Memory Access API (OpenJDK 14 through 16) and Foreign Linker API
|
|
|
|
|
(OpenJDK 16) (see release notes for java-17-openjdk). OpenJDK 18 sees
|
|
|
|
|
a second round of incubation (JEP 419).
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
|
|
|
|
Tools
|
|
|
|
|
=====
|
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
Simple Web Server
|
2021-09-27 01:42:03 +00:00
|
|
|
|
=================
|
2022-07-11 14:10:14 +00:00
|
|
|
|
https://openjdk.org/jeps/408
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
Provide a command-line tool, `jwebserver`, to start a minimal web
|
|
|
|
|
server that serves static files only. No CGI or servlet-like
|
|
|
|
|
functionality is available. This tool will be useful for prototyping,
|
|
|
|
|
ad-hoc coding, and testing purposes, particularly in educational
|
|
|
|
|
contexts.
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
Code Snippets in Java API Documentation
|
|
|
|
|
=======================================
|
|
|
|
|
https://openjdk.org/jeps/413
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
Introduce an @snippet tag for JavaDoc's Standard Doclet, to simplify
|
|
|
|
|
the inclusion of example source code in API documentation.
|
2021-09-27 01:42:03 +00:00
|
|
|
|
|
|
|
|
|
DEPRECATIONS
|
|
|
|
|
============
|
|
|
|
|
|
2022-07-11 14:10:14 +00:00
|
|
|
|
Deprecate Finalization for Removal
|
2021-09-27 01:42:03 +00:00
|
|
|
|
==================================
|
2022-07-11 14:10:14 +00:00
|
|
|
|
https://openjdk.org/jeps/421
|
|
|
|
|
|
|
|
|
|
Deprecate finalization for removal in a future release. Finalization
|
|
|
|
|
remains enabled by default for now, but can be disabled to facilitate
|
|
|
|
|
early testing. In a future release it will be disabled by default, and
|
|
|
|
|
in a later release it will be removed. Maintainers of libraries and
|
|
|
|
|
applications that rely upon finalization should consider migrating to
|
|
|
|
|
other resource management techniques such as the try-with-resources
|
|
|
|
|
statement and cleaners.
|