RELEASE NOTES: JDK 8u102

Notes generated: Mon Apr 01 12:00:20 CEST 2024

JEPs

None.

RELEASE NOTES

deploy/webstart

Issue Description
JDK-8055448

Set 32 or 64 bit JRE requirements in a JNLP file


Web Start applications can now specify requested JREs with their arch attributes, and select the first one available that matches, even if it is not the same arch (32 bit vs 64 bit) as the currently running JRE. For example, the JNLP content below would place first preference on 64 bit JDK8, and if not available, 32 bit JDK9: ` <resources arch="x86_64"> <java version="1.8"/> </resources> <resources arch="x86"> <java version="1.9"/> </resources> ` Note that in the above example, in order to launch a 64 bit 1.8 JRE, a 64 bit 9 JRE must be installed. If only a 32 bit 9 JRE is installed, the 64 bit 1.8 JRE is unavailable.


JDK-8147627

32/64-bit interoperability in Java Web Start


The ability to specify a preference to launch a Java Web Start application in 64-bit or 32-bit architectures is now supported, by adding the 'arch' attribute to the JNLP resources block.


core-libs/java.lang.invoke

Issue Description
JDK-8081512

Internal package sun.invoke.anon has been removed


The internal package sun.invoke.anon has been removed. The functionality it used to provide, namely anonymous class loading with possible constant pool patches, is available via the Unsafe.defineAnonymousClass() method.


core-libs/javax.naming

Issue Description
JDK-8149450

Improved exception handling for bad LDAP referral replies


The JDK was throwing a NullPointerException when a non-compliant REFERRAL status result was sent but no referral values were included. With this change, a NamingException with message value of "Illegal encoding: referral is empty" will be thrown in such circumstances. See JDK-8149450 and JDK-8154304 for more details


hotspot/compiler

Issue Description
JDK-8144957

Removed PICL warning message


In 8u40, and 7u80, a new feature was introduced to use the PICL library on Solaris to get some system information. If this library was not found, we printed an error message:

Java HotSpot(TM) Server VM warning: PICL (libpicl.so.1) is missing. Performance will not be optimal.

This warning was misleading. Not finding the PICL library is a very minor issue, and the warnings mostly lead to confusion. In this release, the warning was removed.


security-libs/javax.net.ssl

Issue Description
JDK-8149017

Fix to resolve "Unable to process PreMasterSecret, may be too big" issue


Recent JDK updates introduced an issue for applications that depend on having a delayed provider selection mechanism. The issue was introduced in JDK 8u71, JDK 7u95 and JDK 6u111. The main error seen corresponded to an exception like the following : ` handling exception: javax.net.ssl.SSLProtocolException: Unable to process PreMasterSecret, may be too big `


JDK-8049321

Support SHA224withDSA and SHA256withDSA in the SunJSSE provider


The SHA224withDSA and SHA256withDSA algorithms are now supported in the TLS 1.2 "signature_algorithms" extension in the SunJSSE provider. Note that this extension does not apply to TLS 1.1 and previous versions.


core-svc

Issue Description
JDK-8134300

.oracle_jre_usage folder no longer created in C:\Users\myName


Since JDK 1.8.060, a folder named .oraclejre_usage gets created in the home directory. This folder and the files inside it are created by the Java Runtime Environment to track the last time a JRE was used. This information is very important in understanding what JRE installations are currently being used on the system.

On Windows, this folder gets created under either C:\Users\<username>\AppData\Local or C:\Users\myName\AppData\Roaming depending upon whether the user is local, or is a network user.

Writing content in this folder over the network on Windows can introduce performance overhead. This problem has been fixed with bug JDK-8134300. With this fix .oraclejreusage folder gets created under %ProgramData%/Oracle/Java/


core-libs/java.nio

Issue Description
JDK-8147468

Ability to limit the capacity of buffers that can be held in the temporary buffer cache


The system property jdk.nio.maxCachedBufferSize has been introduced in to limit the memory used by the "temporary buffer cache". The temporary buffer cache is a per-thread cache of direct memory used by the NIO implementation to support applications that do I/O with buffers backed by arrays in the java heap. The value of the property is the maximum capacity of a direct buffer that can be cached. If the property is not set then no limit is put on the size of buffers that are cached. Applications with certain patterns of I/O usage may benefit from using this property. In particular if an application does I/O with large multi-megabyte buffers at startup but therefore does I/O with small buffers may see a benefit to using this property. Applications that do I/O using direct buffers will not see any benefit to using this system property.


core-svc/javax.management

Issue Description
JDK-6425769

New system property for the remote JMX connector


New JMX agent property - jmxremote.host

A new property, com.sun.management.jmxremote.host, is introduced that specifies the bind address for the default JMX agent. If the latter is not specified, the default JMX agent will listen on all interfaces (0.0.0.0) and the host value placed in the agent service URL (JMXServiceURL) is the IP address returned from invocation of InetAddress.getLocalHost() method.

  • Name: com.sun.management.jmxremote.host
  • Definition : Specifies the bind address for the default JMX agent. It can be specified via the command line while starting the JVM or as part of the agent config file (management.properties).
  • Value: IP address of any network interface of the machine

hotspot/runtime

Issue Description
JDK-8130425

New property jdk.lang.processReaperUseDefaultStackSize


When a large TLS (Thread local storage) size is set for Threads, the JVM results in a stack overflow exception. The reason for this behavior is that the reaper thread was created with a low stack size of 32768k. When a large TLS size is set, it steals space from the threads stack, which eventually results in a stack overflow. This is a known glibc bug. To overcome this issue, we have introduced a workaround (jdk.lang.processReaperUseDefaultStackSize) in which the user can set the reaper threads stack size to a default instead of to 32768. This gives the reaper thread a bigger stack size, so for a large TLS size, such as 32k, the process will not fail. Users can set this flag in one of two ways: 1. -Djdk.lang.processReaperUseDefaultStackSize=true 2. System.setProperty("jdk.lang.processReaperUseDefaultStackSize", "true")

The problem has been observed only when JVM is started from JNI code in which TLS is declared using "__thread"


security-libs/java.security

Issue Description
JDK-8141540

Comodo Root CA removed


The Comodo "UTN - DATACorp SGC" root CA certificate has been removed from the cacerts file.


JDK-8072463

Modify requirements on Authority Key Identifier extension field during X509 certificate chain building


The requirement to have the Authority Key Identifier (AKID) and Subject Key Identifier (SKID) fields matching when building X509 certificate chains has been modified for some cases.


hotspot/gc

Issue Description
JDK-8150518

With UseG1GC, specifying -XX:ParallelGCThreads=0 is no longer allowed


With UseG1GC, specifying -XX:ParallelGCThreads=0 is no longer allowed. Previously, with -XX:ParallelGCThreads=0, G1 would execute some tasks using serial code executed by the VM thread. The closest approximation of this behavior is to specify -XX:ParallelGCThreads=1, which causes parallel tasks to be executed by a single GC worker thread using parallel code.


JDK-8072725

Providing more granular levels for GC verification


This enhancement provides a way to specify more granular levels for the GC verification enabled using the "VerifyBeforeGC", "VerifyAfterGC" and "VerifyDuringGC" diagnostic options. It introduces a new diagnostic option VerifySubSet using which one can specify the subset of the memory system that should be verified.

With this new option, one or more sub-systems can be specified in a comma separated string. Valid memory sub-systems are: threads, heap, symboltable, stringtable, codecache, dictionary, classloaderdatagraph, metaspace, jnihandles, c-heap and codecacheoops.

During the GC verification, only the sub-systems specified using VerifySubSet get verified: ` D:\tests>java -XX:+UnlockDiagnosticVMOptions -XX:+VerifyBeforeGC -XX:VerifySubSet="threads,c-heap" -Xlog:gc+verify=debug Test [0.095s][debug ][gc,verify] Threads [0.099s][debug ][gc,verify] C-heap [0.105s][info ][gc,verify] Verifying Before GC (0.095s, 0.105s) 10.751ms [0.120s][debug ][gc,verify] Threads [0.124s][debug ][gc,verify] C-heap [0.130s][info ][gc,verify] Verifying Before GC (0.120s, 0.130s) 9.951ms [0.148s][debug ][gc,verify] Threads [0.152s][debug ][gc,verify] C-heap If any invalid memory sub-systems are specified with VerifySubSet, Java process exits with the following error message: `` D:\tests>java -XX:+UnlockDiagnosticVMOptions -XX:+VerifyBeforeGC -XX:VerifySubSet="threads,c-heap,hello" -Xlog:gc+verify=debug oom Error occurred during initialization of VM VerifySubSet: 'hello' memory sub-system is unknown, please correct it ```


FIXED ISSUES

client-libs

Priority Bug Summary
P4 JDK-8140620 Find and load default.sf2 as the default soundbank on Linux

client-libs/2d

Priority Bug Summary
P3 JDK-8073400 Some Monospaced logical fonts have a different width
P3 JDK-8076545 Text size is twice bigger under Windows L&F on Win 8.1 with HiDPI display
P3 JDK-8146035 Windows - With LCD antialiasing, some glyphs are not rendered correctly
P4 JDK-8154625 [Parfait] JNI exception pending in fontpath.c:1300

client-libs/java.awt

Priority Bug Summary
P2 JDK-8163583 [macosx] Press "To Back" button on the Dialog,the Dialog moves behind the Frame
P2 JDK-8139581 AWT components are not drawn after removal and addition to a container
P3 JDK-8148984 [macosx] Chinese Comma cannot be entered using Pinyin Input Method on OS X
P3 JDK-8080729 [macosx] java 7 and 8 JDialogs on multiscreen jump to parent frame on focus
P3 JDK-8130242 DataFlavorComparator transitivity exception
P3 JDK-8151998 VS2010 ThemeReader.cpp(758) : error C3861: 'round': identifier not found
P4 JDK-6961123 setWMClass fails to null-terminate WM_CLASS string

client-libs/javax.accessibility

Priority Bug Summary
P3 JDK-8145228 Java Access Bridge, getAccessibleStatesStringFromContext doesn't wrap the call to getAccessibleRole

client-libs/javax.swing

Priority Bug Summary
P2 JDK-8157838 Personalized Windows Font Size is not taken into account in Java8u102
P4 JDK-8149453 [hidpi] JFileChooser does not scale properly on Windows with HiDPI display and Windows L&F
P4 JDK-8149368 [hidpi] JLabel font is twice bigger than JTextArea font on Windows 7,HiDPI, Windows L&F

core-libs

Priority Bug Summary
P3 JDK-8081771 ProcessTool.createJavaProcessBuilder() needs new addTestVmAndJavaOptions argument

core-libs/java.lang

Priority Bug Summary
P3 JDK-8149330 Capacity of StringBuilder should not get close to Integer.MAX_VALUE unless necessary
P4 JDK-8059677 Thread.getName() instantiates Strings

core-libs/java.lang.invoke

Priority Bug Summary
P4 JDK-8081512 Remove sun.invoke.anon classes, or move / co-locate them with tests

core-libs/java.net

Priority Bug Summary
P3 JDK-8071125 Improve exception messages in URLPermission
P3 JDK-8135259 InetAddress.getAllByName only reports "unknown error" instead of actual cause
P3 JDK-8159410 InetAddress.isReachable returns true for non existing IP addresses
P3 JDK-8065078 NetworkInterface.getNetworkInterfaces() triggers intermittent test failures
P4 JDK-8065076 java/net/SocketPermission/SocketPermissionTest.java fails intermittently
P4 JDK-8145388 URLConnection.guessContentTypeFromStream returns image/jpg for some JPEG images

core-libs/java.nio

Priority Bug Summary
P4 JDK-8147468 (bf) Allow users to bound the size of buffers cached in the per-thread buffer caches

core-libs/java.rmi

Priority Bug Summary
P3 JDK-8046339 sun.rmi.transport.DGCAckHandler leaks memory

core-libs/java.text

Priority Bug Summary
P3 JDK-8151431 DateFormatSymbols triggers this.clone() in the constructor

core-libs/java.util

Priority Bug Summary
P4 JDK-8141243 Unexpected timezone returned after parsing a date

core-libs/java.util.concurrent

Priority Bug Summary
P3 JDK-8054446 Repeated offer and remove on ConcurrentLinkedQueue lead to an OutOfMemoryError

core-libs/java.util.jar

Priority Bug Summary
P3 JDK-8148627 RestrictTestMaxCachedBufferSize.java to 64-bit platforms

core-libs/java.util.logging

Priority Bug Summary
P3 JDK-8148820 Missing @since Javadoc tag in Logger.log(Level, Supplier)

core-libs/java.util:collections

Priority Bug Summary
P4 JDK-8068427 Hashtable deserialization reconstitutes table with wrong capacity

core-libs/javax.naming

Priority Bug Summary
P3 JDK-8141148 LDAP "follow" throws ClassCastException with Java 8
P3 JDK-8149450 LdapCtx.processReturnCode() throwing Null Pointer Exception
P3 JDK-8154304 NullpointerException at LdapReferralException.getReferralContext

core-libs/jdk.nashorn

Priority Bug Summary
P3 JDK-8149744 fix testng.jar delivery in Nashorn build.xml
P3 JDK-8148379 jdk.nashorn.api.scripting spec. adjustments, clarifications
P3 JDK-8149334 JSON.parse(JSON.stringify([])).push(10) creates an array containing two elements
P4 JDK-8148926 Call site profiling fails on braces-wrapped anonymous function

core-svc

Priority Bug Summary
P2 JDK-8134300 .oracle_jre_usage folder must not be created in C:\Users\myName

core-svc/debugger

Priority Bug Summary
P4 JDK-4858370 JDWP: Memory Leak: GlobalRefs never deleted when processing invokeMethod command
P4 JDK-4515292 ReferenceType.isStatic() returns true for arrays

core-svc/java.lang.management

Priority Bug Summary
P3 JDK-8145982 JMXInterfaceBindingTest is failing intermittently
P3 JDK-8146015 JMXInterfaceBindingTest is failing intermittently for IPv6 addresses

core-svc/javax.management

Priority Bug Summary
P4 JDK-6425769 Allow specifying an address to bind JMX remote connector

deploy

Priority Bug Summary
P3 JDK-8133495 Platform.getInstalledJREList() returns only the jres of the current arch on windows.

deploy/webstart

Priority Bug Summary
P2 JDK-8149497 cannot relaunch to alternate architecture
P3 JDK-8147627 64 bit only app may have problems when initially launched with 32 bit javaws
P3 JDK-8003984 Allow relaunch between 32 / 64 bit versions in Java Web Start when you have latest versions of both
P3 JDK-8055448 Provide a way to specify JRE data model requirements in JNLP file
P3 JDK-8131070 re enable secure launcher for cross platform launches.
P3 JDK-6999748 Uninstaller Error occurs while trying to uninstall apps imported by 32 bit JWS on 64 bit systems
P3 JDK-8153087 URL Scheme handler problem

hotspot/compiler

Priority Bug Summary
P1 JDK-8055530 assert(_exits.control()->is_top() || !_gvn.type(ret_phi)->empty()) failed: return value must be well defined
P2 JDK-8141420 Compiler runtime entries don't hold Klass* from being GCed
P2 JDK-8148752 MethodHandle inlining with long/double arguments is broken in C2
P3 JDK-8147645 get_ctrl_no_update() code is wrong
P3 JDK-8149543 range check CastII nodes should not be split through Phi
P3 JDK-8144957 Remove PICL warning message
P4 JDK-8141551 C2 can not handle returns with incompatible interface arrays

hotspot/gc

Priority Bug Summary
P1 JDK-8076995 gc/ergonomics/TestDynamicNumberOfGCThreads.java failed with java.lang.RuntimeException: 'new_active_workers' missing from stdout/stderr
P2 JDK-8150518 G1 GC crashes at G1CollectedHeap::do_collection_pause_at_safepoint(double)
P2 JDK-8133023 ParallelGCThreads is not calculated correctly
P3 JDK-8154722 Test gc/ergonomics/TestDynamicNumberOfGCThreads.java fails
P3 JDK-8152438 Threads may do significant work out of the non-shared overflow buffer
P4 JDK-8150002 Check for the validity of oop before printing it in verify_remembered_set
P4 JDK-8017462 G1: guarantee fails with UseDynamicNumberOfGCThreads
P4 JDK-8072725 Provide more granular levels for GC verification

hotspot/jvmti

Priority Bug Summary
P3 JDK-8151064 com/sun/jdi/RedefineAddPrivateMethod.sh fails intermittently
P3 JDK-8149743 JVM crash after debugger hotswap with lambdas
P4 JDK-6976636 JVM/TI test ex03t001 fails assertion

hotspot/runtime

Priority Bug Summary
P3 JDK-8153641 assert(thread_state == _thread_in_native) failed: Assumed thread_in_native while heap dump
P3 JDK-8130425 libjvm crash due to stack overflow in executables with 32k tbss/tdata
P4 JDK-8153673 [BACKOUT] JDWP: Memory Leak: GlobalRefs never deleted when processing invokeMethod command
P4 JDK-8139040 Fix initializations before ShouldNotReachHere() etc. and enable -Wuninitialized on linux.
P4 JDK-8141445 Use of Solaris/SPARC M7 libadimalloc.so can generate unknown signal in hs_err file

hotspot/svc

Priority Bug Summary
P4 JDK-8129419 heapDumper.cpp: assert(length_in_bytes > 0) failed: nothing to copy

javafx/build

Priority Bug Summary
P2 JDK-8154803 Update license text in javadoc footer for FX API docs
P4 JDK-8149547 checkrepo should suggest -a
P4 JDK-8151865 JavaFX Gradle build script fails with Gradle 2.12
P4 JDK-8150260 make checkrepo executable bit optional

javafx/controls

Priority Bug Summary
P2 JDK-8157398 [TreeTableView] graphic property of TreeItem is still visible after collapsing tree
P3 JDK-8151756 JavaFX CSS is applied redundantly leading to significant performance degradation
P3 JDK-8146325 Spinner throws a ClassCastException under Linux
P4 JDK-8088397 [Dialog] ButtonType text not updated when Locale changes
P4 JDK-8145567 Slider: snapToTicks not honoured on changing to true

javafx/media

Priority Bug Summary
P2 JDK-8150503 Provide media support for libav version 55 and 56
P3 JDK-8130750 JFXMedia Player EventQueueThread does not always terminate

javafx/web

Priority Bug Summary
P3 JDK-8139317 [Mac] SecurityException when constructing WebView from JFXPanel application
P3 JDK-8088916 Replace sun.net.www.ParseUtil#decode with public API
P3 JDK-8088689 Several fast/regions/webkit-* tests fail
P3 JDK-8133775 Some WebNode tests crash JVM
P3 JDK-8154161 Webkit: Conversion from string literal loses const qualifier
P4 JDK-8089842 JavaScript2Java Bridge: A char value cannot be set from JavaScript

other-libs/corba

Priority Bug Summary
P3 JDK-8144144 ORB destroy() leaks filedescriptors after unsuccessful connection

security-libs/java.security

Priority Bug Summary
P2 JDK-8141540 Remove "UTN - DATACorp SGC" Root CA Certificate
P3 JDK-8149411 PKCS12KeyStore cannot extract AES Secret Keys
P3 JDK-8072463 Remove requirement that AKID and SKID have to match when building certificate chain

security-libs/javax.crypto

Priority Bug Summary
P3 JDK-8149417 Use final restricted flag
P4 JDK-8133535 Better exception messaging in Ucrypto code

security-libs/javax.net.ssl

Priority Bug Summary
P2 JDK-8149017 Delayed provider selection broken in RSA client key exchange.
P2 JDK-8049321 Support SHA224withDSA and SHA256withDSA in the SunJSSE provider
P3 JDK-8069253 javax/net/ssl/TLS/TestJSSE.java failed on Mac
P4 JDK-8061464 A typo in CipherTestUtils test
P4 JDK-8146192 Add test for JDK-8049321
P4 JDK-8153531 Improve exception messaging for RSAClientKeyExchange
P4 JDK-8158111 Make handling of 3rd party providers more stable

security-libs/javax.smartcardio

Priority Bug Summary
P3 JDK-8153438 Avoid repeated "Please insert a smart card" popup windows

security-libs/javax.xml.crypto

Priority Bug Summary
P3 JDK-8149029 Secure validation of XML based digital signature always enabled when checking wrapping attacks

tools/javac

Priority Bug Summary
P3 JDK-8130304 Inference: NodeNotFoundException thrown with deep generic method call chain
P3 JDK-8066871 java.lang.VerifyError: Bad local variable type - local final String
P3 JDK-8143647 Javac compiles method reference that allows results in an IllegalAccessError

xml/javax.xml.parsers

Priority Bug Summary
P3 JDK-8072081 Supplementary characters are rejected in comments

xml/jaxb

Priority Bug Summary
P3 JDK-8145039 JAXB marshaller fails with ClassCastException on classes generated by xjc
P3 JDK-8073872 Schemagen fails with StackOverflowError if element references containing class
P3 JDK-8134111 Unmarshaller unmarshalls XML element which doesn't have the expected namespace

xml/jaxp

Priority Bug Summary
P3 JDK-8149915 enabling validate-annotations feature for xsd schema with annotation causes NPE
P3 JDK-8144593 Suppress not recognized property/feature warning messages from SAXParser
P3 JDK-8150704 XALAN: ERROR: 'No more DTM IDs are available' when transforming with lots of temporary result trees
P3 JDK-8145974 XMLStreamWriter produces invalid XML for surrogate pairs on OutputStreamWriter