Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
a01bf31
8275303: sun/java2d/pipe/InterpolationQualityTest.java fails with D3D…
mrserb Jun 2, 2025
6f0f298
8340387: Update OS detection code to recognize Windows Server 2025
Jun 2, 2025
bf17542
8358328: Bump update version of OpenJDK: 8u472
gnu-andrew Jun 4, 2025
4f92342
8351624: [8u] Xerces-J version wrong in THIRD_PARTY_README after JDK-…
Jun 10, 2025
51b6307
8339414: Fix JDK-8202369 incorrect backport for 8u
fitzsim Jun 16, 2025
f08dd7f
8352302: Test sun/security/tools/jarsigner/TimestampCheck.java is fai…
Jun 24, 2025
5a6e681
8228658: test GetTotalSafepointTime.java fails on fast Linux machines…
Jun 24, 2025
fd62363
8205653: test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTe…
Jun 24, 2025
8a5c3db
8312065: Socket.connect does not timeout when profiling
Jun 26, 2025
eb64e7f
8044051: Test jdk/lambda/vm/InterfaceAccessFlagsTest.java gets IOExce…
theaoqi Jun 26, 2025
d0281be
8358538: Update GHA Windows runner to 2025
vieiro Jul 7, 2025
35d219b
8081734: ConcurrentHashMap/ConcurrentAssociateTest.java, times out 90…
Jul 8, 2025
af84892
Merge
gnu-andrew Jul 18, 2025
1694987
8335978: [8u] incorrect include file name in semaphore.inline.hpp
Jul 22, 2025
8234312
8185348: Major performance regression in GetMethodDeclaringClass and …
zhengyu123 Aug 5, 2025
7b9b1e1
8363965: GHA: Switch cross-compiling sysroots to Debian bookworm
jerboaa Aug 8, 2025
1b94cbf
8345414: Google CAInterop test failures
gnu-andrew Aug 13, 2025
89b85a8
7102969: currency.properties supercede not working correctly
jerboaa Aug 13, 2025
2821dce
8365560: [8u] ppc64le MaxRAM default is too low at 4GiB
Aug 18, 2025
cc30193
8185500: [TESTBUG] Add keywords headful/printer in java/awt and javax…
yaqsun Aug 26, 2025
41e6bf7
8366112: [8u] GHA: Fix broken installation of Windows SDK
zzambers Aug 26, 2025
7fea411
8365811: test/jdk/java/net/CookieHandler/B6644726.java failure - "Sho…
Aug 27, 2025
f362183
8056283: @ignore tools/javac/defaultMethods/Assertions.java until JDK…
Aug 28, 2025
1d7e101
8041924: [TESTBUG] sun/net/www/http/ChunkedOutputStream/checkError.ja…
Aug 28, 2025
bb19ce3
8160767: [TEST_BUG] java/awt/Frame/MaximizedToIconified/MaximizedToIc…
Aug 28, 2025
3f2b6ff
8361212: Remove AffirmTrust root CAs
jerboaa Sep 1, 2025
333a551
8348760: RadioButton is not shown if JRadioButtonMenuItem is rendered…
Sep 26, 2025
2e6cbc9
8368308: ISO 4217 Amendment 180 Update
jerboaa Sep 26, 2025
5cffbcb
8365389: Remove static color fields from SwingUtilities3 and WindowsM…
gnu-andrew Sep 26, 2025
3273033
8352637: Enhance bytecode verification
Sep 11, 2025
dde48ae
8356294: Enhance Path Factories
Sep 3, 2025
d5ac2ad
8360937: Enhance certificate handling
Aug 27, 2025
7257964
Merge tag 'jdk8u472-ga'
gnu-andrew Oct 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/freetype.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
-->
<PropertyGroup Label="Globals">
<ProjectGuid>{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}</ProjectGuid>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/submit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@ jobs:
--verbose
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxcomposite-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev
--resolve-deps
bullseye
bookworm
~/sysroot-${{ matrix.debian-arch }}
http://httpredir.debian.org/debian/
if: matrix.debian-arch != '' && steps.cache-sysroot.outputs.cache-hit != 'true'
Expand Down Expand Up @@ -801,7 +801,7 @@ jobs:
'install --productId Microsoft.VisualStudio.Product.Community --channelId VisualStudio.15.Release
--add Microsoft.VisualStudio.Workload.NativeDesktop
--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64
--add Microsoft.VisualStudio.Component.Windows10SDK.17763
--add Microsoft.VisualStudio.Component.Windows10SDK.19041
--quiet --wait'

- name: Fix OpenJDK permissions
Expand Down
2 changes: 1 addition & 1 deletion .jcheck/conf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[general]
project=jdk8u
jbs=JDK
version=openjdk8u462
version=openjdk8u472

[checks]
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace
Expand Down
2 changes: 1 addition & 1 deletion THIRD_PARTY_README
Original file line number Diff line number Diff line change
Expand Up @@ -3083,7 +3083,7 @@ included with JRE 8, JDK 8, and OpenJDK 8.
Apache Jakarta BCEL 5.1
Apache Santuario XML Security for Java 2.1.3
Apache Xalan-Java 2.7.2
Apache Xerces Java 2.10.0
Apache Xerces Java 2.7.1
Apache XML Resolver 1.1


Expand Down
2 changes: 1 addition & 1 deletion common/autoconf/version-numbers
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
JDK_MAJOR_VERSION=1
JDK_MINOR_VERSION=8
JDK_MICRO_VERSION=0
JDK_UPDATE_VERSION=462
JDK_UPDATE_VERSION=472
LAUNCHER_NAME=openjdk
PRODUCT_NAME=OpenJDK
PRODUCT_SUFFIX="Runtime Environment"
Expand Down
2 changes: 1 addition & 1 deletion hotspot/src/cpu/ppc/vm/c2_globals_ppc.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ define_pd_global(intx, ReservedCodeCacheSize, 256*M);
define_pd_global(intx, CodeCacheExpansionSize, 64*K);

// Ergonomics related flags
define_pd_global(uint64_t,MaxRAM, 4ULL*G);
define_pd_global(uint64_t,MaxRAM, 128ULL*G);
define_pd_global(uintx, CodeCacheMinBlockLength, 4);
define_pd_global(uintx, CodeCacheMinimumUseSpace, 400*K);

Expand Down
5 changes: 4 additions & 1 deletion hotspot/src/os/windows/vm/os_windows.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1833,7 +1833,10 @@ void os::win32::print_windows_version(outputStream* st) {
// - 2016 GA 10/2016 build: 14393
// - 2019 GA 11/2018 build: 17763
// - 2022 GA 08/2021 build: 20348
if (build_number > 20347) {
// - 2025 Preview build : 26040
if (build_number > 26039) {
st->print("Server 2025");
} else if (build_number > 20347) {
st->print("Server 2022");
} else if (build_number > 17762) {
st->print("Server 2019");
Expand Down
10 changes: 9 additions & 1 deletion hotspot/src/share/vm/classfile/stackMapTable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,16 @@ bool StackMapTable::match_stackmap(
}

void StackMapTable::check_jump_target(
StackMapFrame* frame, int32_t target, TRAPS) const {
StackMapFrame* frame, int bci, int offset, TRAPS) const {
ErrorContext ctx;
// Jump targets must be within the method and the method size is limited. See JVMS 4.11
int min_offset = -1 * max_method_code_size;
if (offset < min_offset || offset > max_method_code_size) {
frame->verifier()->verify_error(ErrorContext::bad_stackmap(bci, frame),
"Illegal target of jump or branch (bci %d + offset %d)", bci, offset);
return;
}
int target = bci + offset;
bool match = match_stackmap(
frame, target, true, false, &ctx, CHECK_VERIFY(frame->verifier()));
if (!match || (target < 0 || target >= _code_length)) {
Expand Down
2 changes: 1 addition & 1 deletion hotspot/src/share/vm/classfile/stackMapTable.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ class StackMapTable : public StackObj {

// Check jump instructions. Make sure there are no uninitialized
// instances on backward branch.
void check_jump_target(StackMapFrame* frame, int32_t target, TRAPS) const;
void check_jump_target(StackMapFrame* frame, int bci, int offset, TRAPS) const;

// The following methods are only used inside this class.

Expand Down
35 changes: 19 additions & 16 deletions hotspot/src/share/vm/classfile/verifier.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -668,7 +668,6 @@ void ClassVerifier::verify_method(methodHandle m, TRAPS) {
// Merge with the next instruction
{
u2 index;
int target;
VerificationType type, type2;
VerificationType atype;

Expand Down Expand Up @@ -1480,9 +1479,8 @@ void ClassVerifier::verify_method(methodHandle m, TRAPS) {
case Bytecodes::_ifle:
current_frame.pop_stack(
VerificationType::integer_type(), CHECK_VERIFY(this));
target = bcs.dest();
stackmap_table.check_jump_target(
&current_frame, target, CHECK_VERIFY(this));
&current_frame, bcs.bci(), bcs.get_offset_s2(), CHECK_VERIFY(this));
no_control_flow = false; break;
case Bytecodes::_if_acmpeq :
case Bytecodes::_if_acmpne :
Expand All @@ -1493,19 +1491,16 @@ void ClassVerifier::verify_method(methodHandle m, TRAPS) {
case Bytecodes::_ifnonnull :
current_frame.pop_stack(
VerificationType::reference_check(), CHECK_VERIFY(this));
target = bcs.dest();
stackmap_table.check_jump_target
(&current_frame, target, CHECK_VERIFY(this));
(&current_frame, bcs.bci(), bcs.get_offset_s2(), CHECK_VERIFY(this));
no_control_flow = false; break;
case Bytecodes::_goto :
target = bcs.dest();
stackmap_table.check_jump_target(
&current_frame, target, CHECK_VERIFY(this));
&current_frame, bcs.bci(), bcs.get_offset_s2(), CHECK_VERIFY(this));
no_control_flow = true; break;
case Bytecodes::_goto_w :
target = bcs.dest_w();
stackmap_table.check_jump_target(
&current_frame, target, CHECK_VERIFY(this));
&current_frame, bcs.bci(), bcs.get_offset_s4(), CHECK_VERIFY(this));
no_control_flow = true; break;
case Bytecodes::_tableswitch :
case Bytecodes::_lookupswitch :
Expand Down Expand Up @@ -2107,15 +2102,14 @@ void ClassVerifier::verify_switch(
}
}
}
int target = bci + default_offset;
stackmap_table->check_jump_target(current_frame, target, CHECK_VERIFY(this));
stackmap_table->check_jump_target(current_frame, bci, default_offset, CHECK_VERIFY(this));
for (int i = 0; i < keys; i++) {
// Because check_jump_target() may safepoint, the bytecode could have
// moved, which means 'aligned_bcp' is no good and needs to be recalculated.
aligned_bcp = (address)round_to((intptr_t)(bcs->bcp() + 1), jintSize);
target = bci + (jint)Bytes::get_Java_u4(aligned_bcp+(3+i*delta)*jintSize);
int offset = (jint)Bytes::get_Java_u4(aligned_bcp+(3+i*delta)*jintSize);
stackmap_table->check_jump_target(
current_frame, target, CHECK_VERIFY(this));
current_frame, bci, offset, CHECK_VERIFY(this));
}
NOT_PRODUCT(aligned_bcp = NULL); // no longer valid at this point
}
Expand Down Expand Up @@ -2376,8 +2370,13 @@ bool ClassVerifier::ends_in_athrow(u4 start_bc_offset) {
break;

case Bytecodes::_goto:
case Bytecodes::_goto_w:
target = (opcode == Bytecodes::_goto ? bcs.dest() : bcs.dest_w());
case Bytecodes::_goto_w: {
int offset = (opcode == Bytecodes::_goto ? bcs.get_offset_s2() : bcs.get_offset_s4());
int min_offset = -1 * max_method_code_size;
// Check offset for overflow
if (offset < min_offset || offset > max_method_code_size) return false;

target = bci + offset;
if (visited_branches->contains(bci)) {
if (bci_stack->is_empty()) {
if (handler_stack->is_empty()) {
Expand All @@ -2398,6 +2397,7 @@ bool ClassVerifier::ends_in_athrow(u4 start_bc_offset) {
visited_branches->append(bci);
}
break;
}

// Check that all switch alternatives end in 'athrow' bytecodes. Since it
// is difficult to determine where each switch alternative ends, parse
Expand Down Expand Up @@ -2434,7 +2434,10 @@ bool ClassVerifier::ends_in_athrow(u4 start_bc_offset) {

// Push the switch alternatives onto the stack.
for (int i = 0; i < keys; i++) {
u4 target = bci + (jint)Bytes::get_Java_u4(aligned_bcp+(3+i*delta)*jintSize);
int min_offset = -1 * max_method_code_size;
int offset = (jint)Bytes::get_Java_u4(aligned_bcp+(3+i*delta)*jintSize);
if (offset < min_offset || offset > max_method_code_size) return false;
u4 target = bci + offset;
if (target > code_length) return false;
bci_stack->push(target);
}
Expand Down
19 changes: 17 additions & 2 deletions hotspot/src/share/vm/interpreter/bytecodeStream.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,23 @@ class BaseBytecodeStream: StackObj {
void set_next_bci(int bci) { assert(0 <= bci && bci <= method()->code_size(), "illegal bci"); _next_bci = bci; }

// Bytecode-specific attributes
int dest() const { return bci() + bytecode().get_offset_s2(raw_code()); }
int dest_w() const { return bci() + bytecode().get_offset_s4(raw_code()); }
int get_offset_s2() const { return bytecode().get_offset_s2(raw_code()); }
int get_offset_s4() const { return bytecode().get_offset_s4(raw_code()); }

// These methods are not safe to use before or during verification as they may
// have large offsets and cause overflows
int dest() const {
int min_offset = -1 * max_method_code_size;
int offset = bytecode().get_offset_s2(raw_code());
guarantee(offset >= min_offset && offset <= max_method_code_size, "must be");
return bci() + offset;
}
int dest_w() const {
int min_offset = -1 * max_method_code_size;
int offset = bytecode().get_offset_s4(raw_code());
guarantee(offset >= min_offset && offset <= max_method_code_size, "must be");
return bci() + offset;
}

// One-byte indices.
int get_index_u1() const { assert_raw_index_size(1); return *(jubyte*)(bcp()+1); }
Expand Down
3 changes: 0 additions & 3 deletions hotspot/src/share/vm/oops/method.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1903,9 +1903,6 @@ bool Method::is_method_id(jmethodID mid) {

Method* Method::checked_resolve_jmethod_id(jmethodID mid) {
if (mid == NULL) return NULL;
if (!Method::is_method_id(mid)) {
return NULL;
}
Method* o = resolve_jmethod_id(mid);
if (o == NULL || o == JNIMethodBlock::_free_method || !((Metadata*)o)->is_method()) {
return NULL;
Expand Down
5 changes: 5 additions & 0 deletions hotspot/src/share/vm/prims/jniCheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,11 @@ Method* jniCheck::validate_jmethod_id(JavaThread* thr, jmethodID method_id) {
if (moop == NULL) {
ReportJNIFatalError(thr, fatal_wrong_class_or_method);
}
// jmethodIDs are supposed to be weak handles in the class loader data,
// but that can be expensive so check it last
else if (!Method::is_method_id(method_id)) {
ReportJNIFatalError(thr, fatal_non_weak_method);
}
return moop;
}

Expand Down
2 changes: 1 addition & 1 deletion hotspot/src/share/vm/runtime/semaphore.inline.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#ifndef SHARE_VM_RUNTIME_SEMAPHORE_INLINE_HPP
#define SHARE_VM_RUNTIME_SEMAPHORE_INLINE_HPP

#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/interfaceSupport.hpp"
#include "runtime/semaphore.hpp"
#include "runtime/thread.inline.hpp"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ public void setFeature(String name, boolean value)
if (value && _featureManager != null) {
_featureManager.setFeature(JdkXmlFeatures.XmlFeature.ENABLE_EXTENSION_FUNCTION,
JdkXmlFeatures.State.FSP, false);
_xmlSecMgr.setSecureProcessing(value);
}

// all done processing feature
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

package com.sun.org.apache.xpath.internal.jaxp;

import javax.xml.XMLConstants;
import javax.xml.namespace.QName;
import javax.xml.namespace.NamespaceContext;
import javax.xml.xpath.XPathExpressionException;
Expand Down Expand Up @@ -180,6 +181,10 @@ private DocumentBuilder getParser() {
// so we really have to create a fresh DocumentBuilder every time we need one
// - KK
DocumentBuilderFactory dbf = JdkXmlUtils.getDOMFactory(overrideDefaultParser);
if (xmlSecMgr != null && xmlSecMgr.isSecureProcessingSet()) {
dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING,
xmlSecMgr.isSecureProcessing());
}
return dbf.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// this should never happen with a well-behaving JAXP implementation.
Expand Down
16 changes: 16 additions & 0 deletions jaxp/src/jdk/xml/internal/XMLSecurityManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,12 @@ public static enum Processor {
*/
boolean secureProcessing;

/**
* Flag indicating the secure processing is set explicitly through factories'
* setFeature method and then the setSecureProcessing method
*/
boolean secureProcessingSet;

/**
* States that determine if properties are set explicitly
*/
Expand Down Expand Up @@ -236,6 +242,7 @@ public XMLSecurityManager(boolean secureProcessing) {
* Setting FEATURE_SECURE_PROCESSING explicitly
*/
public void setSecureProcessing(boolean secure) {
secureProcessingSet = true;
secureProcessing = secure;
for (Limit limit : Limit.values()) {
if (secure) {
Expand All @@ -254,6 +261,15 @@ public boolean isSecureProcessing() {
return secureProcessing;
}

/**
* Returns the state indicating whether the Secure Processing is set explicitly,
* via factories' setFeature and then this class' setSecureProcessing method.
* @return the state indicating whether the Secure Processing is set explicitly
*/
public boolean isSecureProcessingSet() {
return secureProcessingSet;
}

/**
* Set limit by property name and state
* @param propertyName property name
Expand Down
27 changes: 0 additions & 27 deletions jdk/make/data/cacerts/affirmtrustcommercialca

This file was deleted.

27 changes: 0 additions & 27 deletions jdk/make/data/cacerts/affirmtrustnetworkingca

This file was deleted.

Loading
Loading