Skip to content

Commit 6273c34

Browse files
authored
Merge branch 'openjdk:master' into backport-sendaoYan-54fe5021-master
2 parents 43b0324 + 6a410a8 commit 6273c34

File tree

10 files changed

+74
-12
lines changed

10 files changed

+74
-12
lines changed

.jcheck/conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[general]
22
project=jdk-updates
33
jbs=JDK
4-
version=25.0.2
4+
version=25.0.3
55

66
[checks]
77
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists,copyright

make/conf/version-numbers.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828

2929
DEFAULT_VERSION_FEATURE=25
3030
DEFAULT_VERSION_INTERIM=0
31-
DEFAULT_VERSION_UPDATE=2
31+
DEFAULT_VERSION_UPDATE=3
3232
DEFAULT_VERSION_PATCH=0
3333
DEFAULT_VERSION_EXTRA1=0
3434
DEFAULT_VERSION_EXTRA2=0
3535
DEFAULT_VERSION_EXTRA3=0
36-
DEFAULT_VERSION_DATE=2026-01-20
36+
DEFAULT_VERSION_DATE=2026-04-21
3737
DEFAULT_VERSION_CLASSFILE_MAJOR=69 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
3838
DEFAULT_VERSION_CLASSFILE_MINOR=0
3939
DEFAULT_VERSION_DOCS_API_SINCE=11

src/hotspot/cpu/x86/stubGenerator_x86_64.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,8 @@ class StubGenerator: public StubCodeGenerator {
393393
XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, XMMRegister xmm8);
394394
void ghash_last_8_avx2(Register subkeyHtbl);
395395

396+
void check_key_offset(Register key, int offset, int load_size);
397+
396398
// Load key and shuffle operation
397399
void ev_load_key(XMMRegister xmmdst, Register key, int offset, XMMRegister xmm_shuf_mask);
398400
void ev_load_key(XMMRegister xmmdst, Register key, int offset, Register rscratch);

src/hotspot/cpu/x86/stubGenerator_x86_64_aes.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1759,25 +1759,43 @@ void StubGenerator::roundDeclast(XMMRegister xmm_reg) {
17591759
__ vaesdeclast(xmm8, xmm8, xmm_reg, Assembler::AVX_512bit);
17601760
}
17611761

1762+
// Check incoming byte offset against the int[] len. key is the pointer to the int[0].
1763+
// This check happens often, so it is important for it to be very compact.
1764+
void StubGenerator::check_key_offset(Register key, int offset, int load_size) {
1765+
#ifdef ASSERT
1766+
Address key_length(key, arrayOopDesc::length_offset_in_bytes() - arrayOopDesc::base_offset_in_bytes(T_INT));
1767+
assert((offset + load_size) % 4 == 0, "Alignment is good: %d + %d", offset, load_size);
1768+
int end_offset = (offset + load_size) / 4;
1769+
Label L_good;
1770+
__ cmpl(key_length, end_offset);
1771+
__ jccb(Assembler::greaterEqual, L_good);
1772+
__ hlt();
1773+
__ bind(L_good);
1774+
#endif
1775+
}
17621776

17631777
// Utility routine for loading a 128-bit key word in little endian format
17641778
void StubGenerator::load_key(XMMRegister xmmdst, Register key, int offset, XMMRegister xmm_shuf_mask) {
1779+
check_key_offset(key, offset, 16);
17651780
__ movdqu(xmmdst, Address(key, offset));
17661781
__ pshufb(xmmdst, xmm_shuf_mask);
17671782
}
17681783

17691784
void StubGenerator::load_key(XMMRegister xmmdst, Register key, int offset, Register rscratch) {
1785+
check_key_offset(key, offset, 16);
17701786
__ movdqu(xmmdst, Address(key, offset));
17711787
__ pshufb(xmmdst, ExternalAddress(key_shuffle_mask_addr()), rscratch);
17721788
}
17731789

17741790
void StubGenerator::ev_load_key(XMMRegister xmmdst, Register key, int offset, XMMRegister xmm_shuf_mask) {
1791+
check_key_offset(key, offset, 16);
17751792
__ movdqu(xmmdst, Address(key, offset));
17761793
__ pshufb(xmmdst, xmm_shuf_mask);
17771794
__ evshufi64x2(xmmdst, xmmdst, xmmdst, 0x0, Assembler::AVX_512bit);
17781795
}
17791796

17801797
void StubGenerator::ev_load_key(XMMRegister xmmdst, Register key, int offset, Register rscratch) {
1798+
check_key_offset(key, offset, 16);
17811799
__ movdqu(xmmdst, Address(key, offset));
17821800
__ pshufb(xmmdst, ExternalAddress(key_shuffle_mask_addr()), rscratch);
17831801
__ evshufi64x2(xmmdst, xmmdst, xmmdst, 0x0, Assembler::AVX_512bit);
@@ -3205,12 +3223,12 @@ void StubGenerator::ghash16_encrypt_parallel16_avx512(Register in, Register out,
32053223

32063224
//AES round 9
32073225
roundEncode(AESKEY2, B00_03, B04_07, B08_11, B12_15);
3208-
ev_load_key(AESKEY2, key, 11 * 16, rbx);
32093226
//AES rounds up to 11 (AES192) or 13 (AES256)
32103227
//AES128 is done
32113228
__ cmpl(NROUNDS, 52);
32123229
__ jcc(Assembler::less, last_aes_rnd);
32133230
__ bind(aes_192);
3231+
ev_load_key(AESKEY2, key, 11 * 16, rbx);
32143232
roundEncode(AESKEY1, B00_03, B04_07, B08_11, B12_15);
32153233
ev_load_key(AESKEY1, key, 12 * 16, rbx);
32163234
roundEncode(AESKEY2, B00_03, B04_07, B08_11, B12_15);

src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsIconFactory.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -914,8 +914,15 @@ public void paintIcon(Component c, Graphics g, int x, int y) {
914914
}
915915
}
916916
if (icon != null) {
917-
icon.paintIcon(c, g, x + VistaMenuItemCheckIconFactory.getIconWidth(),
918-
y + OFFSET);
917+
if (WindowsGraphicsUtils.isLeftToRight(c)) {
918+
icon.paintIcon(c, g,
919+
x + VistaMenuItemCheckIconFactory.getIconWidth(),
920+
y + OFFSET);
921+
} else {
922+
icon.paintIcon(c, g,
923+
x - VistaMenuItemCheckIconFactory.getIconWidth() + 2 * OFFSET,
924+
y + OFFSET);
925+
}
919926
}
920927
}
921928
private static WindowsMenuItemUIAccessor getAccessor(

src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsMenuItemUI.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import javax.swing.JComponent;
4444
import javax.swing.JMenu;
4545
import javax.swing.JMenuItem;
46+
import javax.swing.SwingConstants;
4647
import javax.swing.UIManager;
4748
import javax.swing.plaf.ComponentUI;
4849
import javax.swing.plaf.UIResource;
@@ -218,8 +219,17 @@ static void paintMenuItem(WindowsMenuItemUIAccessor accessor, Graphics g,
218219

219220
if (lh.getCheckIcon() != null && lh.useCheckAndArrow()) {
220221
Rectangle rect = lr.getTextRect();
221-
222-
rect.x += lh.getAfterCheckIconGap();
222+
if (menuItem.getComponentOrientation().isLeftToRight()) {
223+
if (menuItem.getHorizontalTextPosition() != SwingConstants.LEADING
224+
&& menuItem.getHorizontalTextPosition() != SwingConstants.LEFT) {
225+
rect.x += lh.getAfterCheckIconGap();
226+
}
227+
} else {
228+
if (menuItem.getHorizontalTextPosition() != SwingConstants.LEADING
229+
&& menuItem.getHorizontalTextPosition() != SwingConstants.RIGHT) {
230+
rect.x -= lh.getAfterCheckIconGap();
231+
}
232+
}
223233

224234
lr.setTextRect(rect);
225235
}
@@ -235,7 +245,11 @@ static void paintMenuItem(WindowsMenuItemUIAccessor accessor, Graphics g,
235245
}
236246
if (lh.getCheckIcon() != null && lh.useCheckAndArrow()) {
237247
Rectangle rect = lr.getAccRect();
238-
rect.x += lh.getAfterCheckIconGap();
248+
if (menuItem.getComponentOrientation().isLeftToRight()) {
249+
rect.x += lh.getAfterCheckIconGap();
250+
} else {
251+
rect.x -= lh.getAfterCheckIconGap();
252+
}
239253
lr.setAccRect(rect);
240254
}
241255
SwingUtilities3.paintAccText(g, lh, lr, disabledForeground,

src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/SigningIdentityBuilder.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,16 @@ private SigningIdentity validatedSigningIdentity() throws ConfigException {
113113

114114
final var signingIdentityNames = certificateSelector.signingIdentities();
115115

116+
// Look up for the exact match.
116117
var matchingCertificates = mappedCertficates.stream().filter(e -> {
117118
return signingIdentityNames.contains(e.getKey());
118119
}).map(Map.Entry::getValue).toList();
119120

120121
if (matchingCertificates.isEmpty()) {
122+
// No exact matches found, look up for substrings.
121123
matchingCertificates = mappedCertficates.stream().filter(e -> {
122124
return signingIdentityNames.stream().anyMatch(filter -> {
123-
return filter.startsWith(e.getKey());
125+
return e.getKey().startsWith(filter);
124126
});
125127
}).map(Map.Entry::getValue).toList();
126128
}

test/jdk/javax/swing/JMenuItem/RightLeftOrientation.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
/*
4747
* @test id=windows
48-
* @bug 4211052
48+
* @bug 4211052 8370465
4949
* @requires (os.family == "windows")
5050
* @summary Verifies if menu items lay out correctly when their
5151
* ComponentOrientation property is set to RIGHT_TO_LEFT.
@@ -155,6 +155,16 @@ static void addMenuItems(JMenu menu, ComponentOrientation o) {
155155
menuItem.setHorizontalTextPosition(SwingConstants.LEADING);
156156
menu.add(menuItem);
157157

158+
menuItem = new JMenuItem("Text to the left", new MyMenuItemIcon());
159+
menuItem.setComponentOrientation(o);
160+
menuItem.setHorizontalTextPosition(SwingConstants.LEFT);
161+
menu.add(menuItem);
162+
163+
menuItem = new JMenuItem("Text to the right", new MyMenuItemIcon());
164+
menuItem.setComponentOrientation(o);
165+
menuItem.setHorizontalTextPosition(SwingConstants.RIGHT);
166+
menu.add(menuItem);
167+
158168
menuItem = new JRadioButtonMenuItem("Radio Button Menu Item");
159169
menuItem.setComponentOrientation(o);
160170
menuItem.setSelected(true);

test/jdk/tools/jpackage/macosx/MacSignTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ public static void testMultipleCertificates(PackageType type, SignOption... opti
160160

161161
@Test
162162
@ParameterSupplier
163+
@ParameterSupplier("testSelectSigningIdentity_JDK_8371094")
163164
public static void testSelectSigningIdentity(String signingKeyUserName, CertificateRequest certRequest) {
164165

165166
final var keychain = SigningBase.StandardKeychain.MAIN.spec().keychain();
@@ -187,6 +188,12 @@ public static Collection<Object[]> testSelectSigningIdentity() {
187188
}).toList();
188189
}
189190

191+
public static Collection<Object[]> testSelectSigningIdentity_JDK_8371094() {
192+
return List.<Object[]>of(new Object[] {
193+
"ACME Technologies Limited", SigningBase.StandardCertificateRequest.CODESIGN_ACME_TECH_LTD.spec()
194+
});
195+
}
196+
190197
enum SignOption {
191198
EXPIRED_SIGNING_KEY_USER_NAME("--mac-signing-key-user-name", SigningBase.StandardCertificateRequest.CODESIGN_EXPIRED.spec(), true, false),
192199
EXPIRED_SIGNING_KEY_USER_NAME_PKG("--mac-signing-key-user-name", SigningBase.StandardCertificateRequest.PKG_EXPIRED.spec(), true, false),

test/jdk/tools/jpackage/macosx/base/SigningBase.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ public class SigningBase {
6868
public enum StandardCertificateRequest {
6969
CODESIGN(cert().userName(DEV_NAMES[CertIndex.ASCII_INDEX.value()])),
7070
CODESIGN_COPY(cert().days(100).userName(DEV_NAMES[CertIndex.ASCII_INDEX.value()])),
71+
CODESIGN_ACME_TECH_LTD(cert().days(100).userName("ACME Technologies Limited (ABC12345)")),
7172
PKG(cert().type(CertificateType.INSTALLER).userName(DEV_NAMES[CertIndex.ASCII_INDEX.value()])),
7273
PKG_COPY(cert().type(CertificateType.INSTALLER).days(100).userName(DEV_NAMES[CertIndex.ASCII_INDEX.value()])),
7374
CODESIGN_UNICODE(cert().userName(DEV_NAMES[CertIndex.UNICODE_INDEX.value()])),
@@ -95,7 +96,8 @@ public enum StandardKeychain {
9596
StandardCertificateRequest.CODESIGN,
9697
StandardCertificateRequest.PKG,
9798
StandardCertificateRequest.CODESIGN_UNICODE,
98-
StandardCertificateRequest.PKG_UNICODE),
99+
StandardCertificateRequest.PKG_UNICODE,
100+
StandardCertificateRequest.CODESIGN_ACME_TECH_LTD),
99101
EXPIRED("jpackagerTest-expired.keychain",
100102
StandardCertificateRequest.CODESIGN,
101103
StandardCertificateRequest.PKG,

0 commit comments

Comments
 (0)