Port to OpenJDK 21

Resolves: RHEL-52712
This commit is contained in:
Marian Koncek 2024-02-20 10:09:37 +01:00 committed by Mikolaj Izdebski
parent 603d777b89
commit 68c41bb4a7
2 changed files with 152 additions and 3 deletions

View File

@ -0,0 +1,143 @@
From e77b0978378999acd44ddf4b75476cc25c14c19e Mon Sep 17 00:00:00 2001
From: Marian Koncek <mkoncek@redhat.com>
Date: Wed, 21 Feb 2024 13:30:20 +0100
Subject: [PATCH 2/2] Port to OpenJDK 21
---
src/main/java/org/junit/runner/Result.java | 18 ++++++++++-----
.../runners/statements/FailOnTimeoutTest.java | 1 +
.../tests/running/core/AllCoreTests.java | 4 +---
.../tests/running/core/CommandLineTest.java | 1 +
.../junit/tests/running/core/MainRunner.java | 22 -------------------
5 files changed, 15 insertions(+), 31 deletions(-)
diff --git a/src/main/java/org/junit/runner/Result.java b/src/main/java/org/junit/runner/Result.java
index 4b5f4a4..abfe0fe 100644
--- a/src/main/java/org/junit/runner/Result.java
+++ b/src/main/java/org/junit/runner/Result.java
@@ -1,11 +1,13 @@
package org.junit.runner;
import java.io.IOException;
+import java.io.InvalidClassException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectStreamClass;
import java.io.ObjectStreamField;
import java.io.Serializable;
+import java.lang.ClassNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -189,12 +191,16 @@ public class Result implements Serializable {
@SuppressWarnings("unchecked")
private SerializedForm(ObjectInputStream.GetField fields) throws IOException {
- fCount = (AtomicInteger) fields.get("fCount", null);
- fIgnoreCount = (AtomicInteger) fields.get("fIgnoreCount", null);
- assumptionFailureCount = (AtomicInteger) fields.get("assumptionFailureCount", null);
- fFailures = (List<Failure>) fields.get("fFailures", null);
- fRunTime = fields.get("fRunTime", 0L);
- fStartTime = fields.get("fStartTime", 0L);
+ try {
+ fCount = (AtomicInteger) fields.get("fCount", null);
+ fIgnoreCount = (AtomicInteger) fields.get("fIgnoreCount", null);
+ assumptionFailureCount = (AtomicInteger) fields.get("assumptionFailureCount", null);
+ fFailures = (List<Failure>) fields.get("fFailures", null);
+ fRunTime = fields.get("fRunTime", 0L);
+ fStartTime = fields.get("fStartTime", 0L);
+ } catch (ClassNotFoundException ex) {
+ throw new InvalidClassException("ClassNotFoundException", ex);
+ }
}
public void serialize(ObjectOutputStream s) throws IOException {
diff --git a/src/test/java/org/junit/internal/runners/statements/FailOnTimeoutTest.java b/src/test/java/org/junit/internal/runners/statements/FailOnTimeoutTest.java
index 8bf7823..cafbd18 100644
--- a/src/test/java/org/junit/internal/runners/statements/FailOnTimeoutTest.java
+++ b/src/test/java/org/junit/internal/runners/statements/FailOnTimeoutTest.java
@@ -182,6 +182,7 @@ public class FailOnTimeoutTest {
}
@Test
+ @org.junit.Ignore
public void lookingForStuckThread_threadGroupNotLeaked() throws Throwable {
assumeTrue(lookingForStuckThread);
final AtomicReference<ThreadGroup> innerThreadGroup = new AtomicReference<ThreadGroup>();
diff --git a/src/test/java/org/junit/tests/running/core/AllCoreTests.java b/src/test/java/org/junit/tests/running/core/AllCoreTests.java
index a17a7e2..1a65be5 100644
--- a/src/test/java/org/junit/tests/running/core/AllCoreTests.java
+++ b/src/test/java/org/junit/tests/running/core/AllCoreTests.java
@@ -6,9 +6,7 @@ import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({
- CommandLineTest.class,
- JUnitCoreReturnsCorrectExitCodeTest.class,
- SystemExitTest.class
+ CommandLineTest.class
})
public class AllCoreTests {
}
diff --git a/src/test/java/org/junit/tests/running/core/CommandLineTest.java b/src/test/java/org/junit/tests/running/core/CommandLineTest.java
index 37f0659..7c82cba 100644
--- a/src/test/java/org/junit/tests/running/core/CommandLineTest.java
+++ b/src/test/java/org/junit/tests/running/core/CommandLineTest.java
@@ -36,6 +36,7 @@ public class CommandLineTest {
}
@Test
+ @org.junit.Ignore
public void runATest() {
testWasRun = false;
new MainRunner().runWithCheckForSystemExit(new Runnable() {
diff --git a/src/test/java/org/junit/tests/running/core/MainRunner.java b/src/test/java/org/junit/tests/running/core/MainRunner.java
index ea90886..91e5e4f 100644
--- a/src/test/java/org/junit/tests/running/core/MainRunner.java
+++ b/src/test/java/org/junit/tests/running/core/MainRunner.java
@@ -20,25 +20,6 @@ public class MainRunner {
}
}
- /**
- * A {@code NoExitSecurityManager} throws a {@link ExitException} exception
- * whenever {@link #checkExit(int)} is called; all other permissions are allowed.
- */
- public class NoExitSecurityManager extends SecurityManager {
-
- @Override
- public void checkExit(int status) {
- throw new ExitException(status);
- }
-
- @Override
- public void checkPermission(Permission perm) {
- if (perm.getName().startsWith("exitVM")) {
- super.checkPermission(perm);
- }
- }
- }
-
/**
* Execute runnable.run(), preventing System.exit(). If System.exit() is called
* in runnable.run(), the value is returned. If System.exit()
@@ -47,8 +28,6 @@ public class MainRunner {
* @return null if System.exit() is not called, Integer.valueof(status) if not
*/
public Integer runWithCheckForSystemExit(Runnable runnable) {
- SecurityManager oldSecurityManager = System.getSecurityManager();
- System.setSecurityManager(new NoExitSecurityManager());
PrintStream oldOut = System.out;
System.setOut(new PrintStream(new ByteArrayOutputStream()));
@@ -60,7 +39,6 @@ public class MainRunner {
System.out.println("System.exit() called, value=" + e.getStatus());
return e.getStatus();
} finally {
- System.setSecurityManager(oldSecurityManager);
System.setOut(oldOut);
}
}
--
2.43.0

View File

@ -6,7 +6,7 @@ Version: 4.13.2
Release: 6%{?dist} Release: 6%{?dist}
Summary: Java regression test package Summary: Java regression test package
License: EPL-1.0 License: EPL-1.0
URL: http://www.junit.org/ URL: https://junit.org/junit4/
BuildArch: noarch BuildArch: noarch
ExclusiveArch: %{java_arches} noarch ExclusiveArch: %{java_arches} noarch
@ -15,6 +15,7 @@ Source0: %{name}-%{version}.tar.gz
Source1: generate-tarball.sh Source1: generate-tarball.sh
Patch1: 0001-Port-to-hamcrest-2.2.patch Patch1: 0001-Port-to-hamcrest-2.2.patch
Patch2: 0002-Port-to-OpenJDK-21.patch
%if %{with bootstrap} %if %{with bootstrap}
BuildRequires: javapackages-bootstrap BuildRequires: javapackages-bootstrap
@ -53,6 +54,7 @@ Javadoc for %{name}.
%setup -q -n junit4-r%{version} %setup -q -n junit4-r%{version}
%patch 1 -p1 %patch 1 -p1
%patch 2 -p1
# InaccessibleBaseClassTest fails with Java 8 # InaccessibleBaseClassTest fails with Java 8
sed -i /InaccessibleBaseClassTest/d src/test/java/org/junit/tests/AllTests.java sed -i /InaccessibleBaseClassTest/d src/test/java/org/junit/tests/AllTests.java
@ -70,7 +72,7 @@ sed s/@version@/%{version}/ src/main/java/junit/runner/Version.java.template >sr
%mvn_alias junit:junit junit:junit-dep %mvn_alias junit:junit junit:junit-dep
%build %build
%mvn_build -- -DjdkVersion=1.7 -P\!restrict-doclint %mvn_build -- -DjdkVersion=1.8 -P\!restrict-doclint
%install %install
%mvn_install %mvn_install
@ -87,6 +89,10 @@ sed s/@version@/%{version}/ src/main/java/junit/runner/Version.java.template >sr
%doc doc/* %doc doc/*
%changelog %changelog
* Mon Aug 05 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:4.13.2-6
- Port to OpenJDK 21
- Resolves: RHEL-52712
* Thu Aug 01 2024 Troy Dawson <tdawson@redhat.com> - 1:4.13.2-6 * Thu Aug 01 2024 Troy Dawson <tdawson@redhat.com> - 1:4.13.2-6
- Bump release for Aug 2024 java mass rebuild - Bump release for Aug 2024 java mass rebuild