Compare commits

1 Commits
main ... 1.1

7 changed files with 133 additions and 2106 deletions

78
JDK-8282944.patch Normal file
View File

@@ -0,0 +1,78 @@
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java
@@ -1015,6 +1015,9 @@ public class HtmlDocletWriter {
// @see reference label...
label = ref.subList(1, ref.size());
}
+ case ERRONEOUS -> {
+ return HtmlTree.SPAN(Text.of(resources.getText("doclet.tag.invalid_input", seeText)));
+ }
default ->
throw new IllegalStateException(ref.get(0).getKind().toString());
}
--- a/test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTag.java
+++ b/test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTag.java
@@ -23,15 +23,19 @@
/*
* @test
- * @bug 8017191 8182765 8200432 8239804 8250766 8262992
+ * @bug 8017191 8182765 8200432 8239804 8250766 8262992 8281944
* @summary Javadoc is confused by at-link to imported classes outside of the set of generated packages
- * @library ../../lib
+ * @library /tools/lib ../../lib
* @modules jdk.javadoc/jdk.javadoc.internal.tool
- * @build javadoc.tester.*
+ * @build toolbox.ToolBox javadoc.tester.*
* @run main TestSeeTag
*/
import javadoc.tester.JavadocTester;
+import toolbox.ToolBox;
+
+import java.io.IOException;
+import java.nio.file.Path;
public class TestSeeTag extends JavadocTester {
@@ -105,4 +109,40 @@ public class TestSeeTag extends JavadocTester {
</dd>
</dl>""");
}
+
+ ToolBox tb = new ToolBox();
+
+ @Test
+ public void testErroneous() throws IOException {
+ Path src = Path.of("erroneous", "src");
+ tb.writeJavaFiles(src, """
+ package erroneous;
+ /**
+ * Comment.
+ * @see <a href="
+ */
+ public class C {
+ private C() { }
+ }
+ """);
+
+ javadoc("-d", Path.of("erroneous", "api").toString(),
+ "-sourcepath", src.toString(),
+ "--no-platform-links",
+ "erroneous");
+ checkExit(Exit.ERROR);
+
+ checkOutput("erroneous/C.html", true,
+ """
+ <dl class="notes">
+ <dt>See Also:</dt>
+ <dd>
+ <ul class="see-list">
+ <li><span>invalid input: '&lt;a href="'</span></li>
+ </ul>
+ </dd>
+ </dl>
+ """);
+
+ }
}

View File

@@ -1417,7 +1417,7 @@
+}
--- a/src/java.base/share/conf/security/java.security
+++ b/src/java.base/share/conf/security/java.security
@@ -83,6 +83,17 @@
@@ -82,6 +82,17 @@ security.provider.tbd=Apple
#endif
security.provider.tbd=SunPKCS11
@@ -1435,7 +1435,7 @@
#
# A list of preferred providers for specific algorithms. These providers will
# be searched for matching algorithms before the list of registered providers.
@@ -293,6 +304,47 @@ policy.ignoreIdentityScope=false
@@ -292,6 +303,47 @@ policy.ignoreIdentityScope=false
#
keystore.type=pkcs12
@@ -1483,7 +1483,7 @@
#
# Controls compatibility mode for JKS and PKCS12 keystore types.
#
@@ -330,6 +382,13 @@ package.definition=sun.misc.,\
@@ -329,6 +381,13 @@ package.definition=sun.misc.,\
#
security.overridePropertiesFile=true
@@ -2408,7 +2408,7 @@
private static final long serialVersionUID = -2575874101938349339L;
private static final String PUBLIC = "public";
@@ -406,9 +411,10 @@ abstract class P11Key implements Key, Length {
@@ -393,9 +398,10 @@ abstract class P11Key implements Key, Length {
new CK_ATTRIBUTE(CKA_EXTRACTABLE),
});
@@ -2417,12 +2417,12 @@
- attrs[1].getBoolean() || !attrs[2].getBoolean();
+ boolean exportable = plainKeySupportEnabled && !algorithm.equals("DH");
+ boolean keySensitive = (!exportable &&
+ (attrs[0].getBoolean() && P11Util.isNSS(session.token)) ||
+ attrs[1].getBoolean() || !attrs[2].getBoolean());
+ ((attrs[0].getBoolean() && P11Util.isNSS(session.token)) ||
+ attrs[1].getBoolean() || !attrs[2].getBoolean()));
switch (algorithm) {
case "RSA":
@@ -463,7 +469,8 @@ abstract class P11Key implements Key, Length {
@@ -450,7 +456,8 @@ abstract class P11Key implements Key, Length {
public String getFormat() {
token.ensureValid();
@@ -3285,7 +3285,29 @@
d(SIG, "RawDSA", P11Signature,
List.of("NONEwithDSA"),
m(CKM_DSA));
@@ -1211,11 +1423,52 @@ public final class SunPKCS11 extends AuthProvider {
@@ -1144,9 +1356,21 @@ public final class SunPKCS11 extends AuthProvider {
if (ds == null) {
continue;
}
+ descLoop:
for (Descriptor d : ds) {
Integer oldMech = supportedAlgs.get(d);
if (oldMech == null) {
+ if (d.requiredMechs != null) {
+ // Check that other mechanisms required for the
+ // service are supported before listing it as
+ // available for the first time.
+ for (int requiredMech : d.requiredMechs) {
+ if (token.getMechanismInfo(
+ requiredMech & 0xFFFFFFFFL) == null) {
+ continue descLoop;
+ }
+ }
+ }
supportedAlgs.put(d, integerMech);
continue;
}
@@ -1220,11 +1444,52 @@ public final class SunPKCS11 extends AuthProvider {
}
@Override
@@ -3338,7 +3360,7 @@
try {
return newInstance0(param);
} catch (PKCS11Exception e) {
@@ -1235,6 +1488,8 @@ public final class SunPKCS11 extends AuthProvider {
@@ -1244,6 +1509,8 @@ public final class SunPKCS11 extends AuthProvider {
} else if (algorithm.endsWith("GCM/NoPadding") ||
algorithm.startsWith("ChaCha20-Poly1305")) {
return new P11AEADCipher(token, algorithm, mechanism);
@@ -3347,7 +3369,7 @@
} else {
return new P11Cipher(token, algorithm, mechanism);
}
@@ -1570,6 +1825,9 @@ public final class SunPKCS11 extends AuthProvider {
@@ -1579,6 +1846,9 @@ public final class SunPKCS11 extends AuthProvider {
try {
session = token.getOpSession();
p11.C_Logout(session.id());
@@ -3833,7 +3855,7 @@
/**
* Connects this object to the specified PKCS#11 library. This method is for
* internal use only.
@@ -1661,7 +1713,7 @@ public class PKCS11 {
@@ -1625,7 +1677,7 @@ public class PKCS11 {
static class SynchronizedPKCS11 extends PKCS11 {
SynchronizedPKCS11(String pkcs11ModulePath, String functionListName)
@@ -3842,7 +3864,7 @@
super(pkcs11ModulePath, functionListName);
}
@@ -1947,4 +1999,194 @@ static class SynchronizedPKCS11 extends PKCS11 {
@@ -1911,4 +1963,194 @@ static class SynchronizedPKCS11 extends PKCS11 {
super.C_GenerateRandom(hSession, randomData);
}
}
@@ -4099,7 +4121,7 @@
}
--- a/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c
+++ b/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c
@@ -1518,6 +1518,10 @@ CK_VOID_PTR jMechParamToCKMechParamPtrSlow(JNIEnv *env, jobject jParam,
@@ -1515,6 +1515,10 @@ CK_VOID_PTR jMechParamToCKMechParamPtrSlow(JNIEnv *env, jobject jParam,
case CKM_PBE_SHA1_DES3_EDE_CBC:
case CKM_PBE_SHA1_DES2_EDE_CBC:
case CKM_PBA_SHA1_WITH_SHA1_HMAC:
@@ -4110,7 +4132,7 @@
ckpParamPtr = jPbeParamToCKPbeParamPtr(env, jParam, ckpLength);
break;
case CKM_PKCS5_PBKD2:
@@ -1661,13 +1665,13 @@ jPbeParamToCKPbeParamPtr(JNIEnv *env, jobject jParam, CK_ULONG *pLength)
@@ -1658,13 +1662,13 @@ jPbeParamToCKPbeParamPtr(JNIEnv *env, jobject jParam, CK_ULONG *pLength)
// retrieve java values
jPbeParamsClass = (*env)->FindClass(env, CLASS_PBE_PARAMS);
if (jPbeParamsClass == NULL) { return NULL; }
@@ -4126,7 +4148,7 @@
if (fieldID == NULL) { return NULL; }
jSalt = (*env)->GetObjectField(env, jParam, fieldID);
fieldID = (*env)->GetFieldID(env, jPbeParamsClass, "ulIteration", "J");
@@ -1683,15 +1687,15 @@ jPbeParamToCKPbeParamPtr(JNIEnv *env, jobject jParam, CK_ULONG *pLength)
@@ -1680,15 +1684,15 @@ jPbeParamToCKPbeParamPtr(JNIEnv *env, jobject jParam, CK_ULONG *pLength)
// populate using java values
ckParamPtr->ulIteration = jLongToCKULong(jIteration);
@@ -4145,7 +4167,7 @@
if ((*env)->ExceptionCheck(env)) {
goto cleanup;
}
@@ -1770,31 +1774,59 @@ void copyBackPBEInitializationVector(JNIEnv *env, CK_MECHANISM *ckMechanism, job
@@ -1767,31 +1771,59 @@ void copyBackPBEInitializationVector(JNIEnv *env, CK_MECHANISM *ckMechanism, job
}
}
@@ -4214,7 +4236,7 @@
fieldID = (*env)->GetFieldID(env, jPkcs5Pbkd2ParamsClass, "saltSource", "J");
if (fieldID == NULL) { return NULL; }
jSaltSource = (*env)->GetLongField(env, jParam, fieldID);
@@ -1810,36 +1842,60 @@ jPkcs5Pbkd2ParamToCKPkcs5Pbkd2ParamPtr(JNIEnv *env, jobject jParam, CK_ULONG *pL
@@ -1807,36 +1839,60 @@ jPkcs5Pbkd2ParamToCKPkcs5Pbkd2ParamPtr(JNIEnv *env, jobject jParam, CK_ULONG *pL
fieldID = (*env)->GetFieldID(env, jPkcs5Pbkd2ParamsClass, "pPrfData", "[B");
if (fieldID == NULL) { return NULL; }
jPrfData = (*env)->GetObjectField(env, jParam, fieldID);
@@ -4318,7 +4340,7 @@
// PBE mechs, WTLS mechs, CMS mechs,
// CKM_EXTRACT_KEY_FROM_KEY, CKM_OTP, CKM_KIP,
// CKM_DSA_PARAMETER_GEN?, CKM_GOSTR3410_*
@@ -528,12 +544,11 @@ void jBooleanArrayToCKBBoolArray(JNIEnv *env, const jbooleanArray jArray, CK_BBO
@@ -517,12 +533,11 @@ void jBooleanArrayToCKBBoolArray(JNIEnv *env, const jbooleanArray jArray, CK_BBO
jboolean* jpTemp;
CK_ULONG i;
@@ -4333,7 +4355,7 @@
jpTemp = (jboolean*) calloc(*ckpLength, sizeof(jboolean));
if (jpTemp == NULL) {
throwOutOfMemoryError(env, 0);
@@ -570,12 +585,11 @@ void jByteArrayToCKByteArray(JNIEnv *env, const jbyteArray jArray, CK_BYTE_PTR *
@@ -559,12 +574,11 @@ void jByteArrayToCKByteArray(JNIEnv *env, const jbyteArray jArray, CK_BYTE_PTR *
jbyte* jpTemp;
CK_ULONG i;
@@ -4348,7 +4370,7 @@
jpTemp = (jbyte*) calloc(*ckpLength, sizeof(jbyte));
if (jpTemp == NULL) {
throwOutOfMemoryError(env, 0);
@@ -617,12 +631,11 @@ void jLongArrayToCKULongArray(JNIEnv *env, const jlongArray jArray, CK_ULONG_PTR
@@ -606,12 +620,11 @@ void jLongArrayToCKULongArray(JNIEnv *env, const jlongArray jArray, CK_ULONG_PTR
jlong* jTemp;
CK_ULONG i;
@@ -4363,7 +4385,7 @@
jTemp = (jlong*) calloc(*ckpLength, sizeof(jlong));
if (jTemp == NULL) {
throwOutOfMemoryError(env, 0);
@@ -659,12 +672,11 @@ void jCharArrayToCKCharArray(JNIEnv *env, const jcharArray jArray, CK_CHAR_PTR *
@@ -648,12 +661,11 @@ void jCharArrayToCKCharArray(JNIEnv *env, const jcharArray jArray, CK_CHAR_PTR *
jchar* jpTemp;
CK_ULONG i;
@@ -4378,7 +4400,7 @@
jpTemp = (jchar*) calloc(*ckpLength, sizeof(jchar));
if (jpTemp == NULL) {
throwOutOfMemoryError(env, 0);
@@ -701,12 +713,11 @@ void jCharArrayToCKUTF8CharArray(JNIEnv *env, const jcharArray jArray, CK_UTF8CH
@@ -690,12 +702,11 @@ void jCharArrayToCKUTF8CharArray(JNIEnv *env, const jcharArray jArray, CK_UTF8CH
jchar* jTemp;
CK_ULONG i;
@@ -5832,3 +5854,6 @@
+ }
+ }
+}
--
2.45.2

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
#
# spec file for package java-17-openjdk
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -33,8 +33,8 @@
# Standard JPackage naming and versioning defines.
%global featurever 17
%global interimver 0
%global updatever 16
%global buildver 8
%global updatever 12
%global buildver 7
%global openjdk_repo jdk17u
%global openjdk_tag jdk-%{featurever}.%{interimver}.%{updatever}%{?patchver:.%{patchver}}+%{buildver}
%global openjdk_dir %{openjdk_repo}-jdk-%{featurever}.%{interimver}.%{updatever}%{?patchver:.%{patchver}}-%{buildver}
@@ -170,12 +170,12 @@ Patch17: reproducible-jlink.patch
Patch20: loadAssistiveTechnologies.patch
#
Patch21: reproducible-javadoc-timestamp.patch
Patch22: reproducible-directory-mtime.patch
#
# OpenJDK specific patches
#
Patch200: ppc_stack_overflow_fix.patch
#
Patch300: JDK-8282944.patch
Patch301: JDK-8303509.patch
Patch302: disable-doclint-by-default.patch
Patch303: unsigned-sni-server-name.patch
@@ -416,10 +416,10 @@ rm -rvf src/java.desktop/share/native/liblcms/lcms2*
%patch -P 20 -p1
%patch -P 21 -p1
%patch -P 22 -p1
%patch -P 200 -p1
%patch -P 300 -p1
%patch -P 301 -p1
%patch -P 302 -p1
%patch -P 303 -p1

BIN
jdk-17.0.12+7.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

BIN
jdk-17.0.16+8.tar.gz (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,15 +0,0 @@
--- a/src/java.base/share/classes/java/io/File.java
+++ b/src/java.base/share/classes/java/io/File.java
@@ -1376,7 +1376,11 @@ public class File
if (isInvalid()) {
return false;
}
- return fs.createDirectory(this);
+ boolean result = fs.createDirectory(this);
+ if ( result && System.getenv("SOURCE_DATE_EPOCH") != null ) {
+ fs.setLastModifiedTime(this, 1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH")));
+ }
+ return result;
}
/**