From 1d381b81e35bcb9e415883770b15e9a42e02e08d Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Thu, 22 Jan 2026 12:52:45 +0100 Subject: [PATCH 01/13] CI: bump lower bound to JDK 21 new test and build range: JDK 21-26 few modules are still stuck on 17 and got special treatment --- .github/workflows/main.yml | 79 +++++++++++++++++++++----------------- 1 file changed, 43 insertions(+), 36 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 706c88fdb4e5..6f12a10fa972 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -137,7 +137,7 @@ jobs: timeout-minutes: 40 strategy: matrix: - java: [ '17', '25', '26-ea' ] + java: [ '21', '25', '26-ea' ] exclude: - java: ${{ github.event_name == 'pull_request' && 'nothing' || '25' }} fail-fast: false @@ -167,11 +167,11 @@ jobs: run: ant $OPTS -quiet -Dcluster.config=$CLUSTER_CONFIG build-nozip - name: Prepare Artifact - if: ${{ matrix.java == '17' }} + if: ${{ matrix.java == '21' }} run: tar -I 'zstd -9 -T0' -cf /tmp/build.tar.zst --exclude ".git" . - name: Upload Workspace - if: ${{ (matrix.java == '17') && success() }} + if: ${{ (matrix.java == '21') && success() }} uses: actions/upload-artifact@v6 with: name: build @@ -181,11 +181,11 @@ jobs: if-no-files-found: error - name: Create Dev Build - if: ${{ matrix.java == '17' && contains(github.event.pull_request.labels.*.name, 'ci:dev-build') && success() }} + if: ${{ matrix.java == '21' && contains(github.event.pull_request.labels.*.name, 'ci:dev-build') && success() }} run: ant $OPTS -quiet -Dcluster.config=$CLUSTER_CONFIG zip-cluster-config - name: Upload Dev Build - if: ${{ matrix.java == '17' && contains(github.event.pull_request.labels.*.name, 'ci:dev-build') && success() }} + if: ${{ matrix.java == '21' && contains(github.event.pull_request.labels.*.name, 'ci:dev-build') && success() }} uses: actions/upload-artifact@v6 with: name: dev-build_${{github.event.pull_request.number || github.run_id}} @@ -239,7 +239,7 @@ jobs: strategy: matrix: os: [ ubuntu-latest, macos-latest, windows-latest ] - java: [ 17 ] + java: [ '21' ] include: - os: ubuntu-latest java: 26-ea @@ -273,7 +273,7 @@ jobs: run: tar --zstd -xf build.tar.zst - name: platform/masterfs - if: ${{ matrix.java == '17' }} + if: ${{ matrix.java == '21' }} run: .github/retry.sh ant $OPTS -f platform/masterfs test - name: Commit Validation tests @@ -301,7 +301,7 @@ jobs: ANT_OPTS: -Dmetabuild.jsonurl=https://raw.githubusercontent.com/apache/netbeans-jenkins-lib/master/meta/netbeansrelease.json strategy: matrix: - java: [ '17' ] + java: [ '21' ] steps: - name: Check PR labels @@ -379,7 +379,7 @@ jobs: timeout-minutes: 100 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false steps: @@ -473,7 +473,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17' ] + java: [ '21' ] config: [ 'platform', 'release' ] fail-fast: false steps: @@ -519,7 +519,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false steps: @@ -849,9 +849,9 @@ jobs: timeout-minutes: 50 strategy: matrix: - java: [ '17', '21', '25', '26-ea' ] + java: [ '21', '25', '26-ea' ] exclude: - - java: ${{ github.event_name == 'pull_request' && 'nothing' || '21' }} + - java: ${{ github.event_name == 'pull_request' && 'nothing' || '25' }} fail-fast: false steps: @@ -935,28 +935,35 @@ jobs: run: ant $OPTS -f java/gradle.test test - name: java/gradle.java - if: ${{ matrix.java == '17' || matrix.java == '21' || matrix.java == '25' }} + if: ${{ matrix.java == '21' || matrix.java == '25' }} run: .github/retry.sh ant $OPTS -f java/gradle.java test - name: extide/gradle - if: ${{ matrix.java == '17' || matrix.java == '21' || matrix.java == '25' }} + if: ${{ matrix.java == '21' || matrix.java == '25' }} run: ant $OPTS -f extide/gradle test - name: java/gradle.dependencies - if: ${{ matrix.java == '17' || matrix.java == '21' || matrix.java == '25' }} + if: ${{ matrix.java == '21' || matrix.java == '25' }} run: ant $OPTS -f java/gradle.dependencies test # TODO next are JDK 21 or 25 incompatibe steps - name: java/java.mx.project - if: ${{ matrix.java == '17' || matrix.java == '21' }} + if: ${{ matrix.java == '21' }} run: .github/retry.sh ant $OPTS -f java/java.mx.project test + - name: Set up JDK 17 for ant + uses: actions/setup-java@v5 + if: ${{ matrix.java == '21' }} + with: + java-version: 17 + distribution: ${{ env.DEFAULT_JAVA_DISTRIBUTION }} + - name: extide/o.apache.tools.ant.module - if: ${{ matrix.java == '17' }} + if: ${{ matrix.java == '21' }} run: ant $OPTS -f extide/o.apache.tools.ant.module test - name: apisupport.ant - if: ${{ matrix.java == '17' }} + if: ${{ matrix.java == '21' }} run: ant $OPTS -f apisupport/apisupport.ant test - name: Create Test Summary @@ -975,7 +982,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false steps: @@ -1138,7 +1145,7 @@ jobs: timeout-minutes: 90 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false steps: @@ -1273,7 +1280,7 @@ jobs: timeout-minutes: 100 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false steps: @@ -1459,7 +1466,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17', '26-ea' ] + java: [ '21', '26-ea' ] config: [ 'batch1', 'batch2' ] exclude: - java: ${{ github.event_name == 'pull_request' && 'nothing' || '26-ea' }} @@ -1516,7 +1523,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17', '25', '26-ea' ] + java: [ '21', '25', '26-ea' ] exclude: - java: ${{ github.event_name == 'pull_request' && 'nothing' || '25' }} fail-fast: false @@ -1578,7 +1585,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false steps: @@ -1623,7 +1630,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false steps: @@ -1801,7 +1808,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false steps: @@ -1849,9 +1856,9 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17', '21' ] - exclude: - - java: ${{ github.event_name == 'pull_request' && 'nothing' || '21' }} + java: [ '21' ] +# exclude: +# - java: ${{ github.event_name == 'pull_request' && 'nothing' || '21' }} fail-fast: false steps: @@ -1902,7 +1909,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false steps: @@ -1950,7 +1957,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false steps: @@ -2195,7 +2202,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false steps: @@ -2278,7 +2285,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false services: @@ -2340,7 +2347,7 @@ jobs: DISPLAY: ":99.0" strategy: matrix: - java: [ '17' ] + java: [ '21' ] os: [ 'windows-latest', 'ubuntu-latest' ] exclude: - os: ${{ github.event_name == 'pull_request' && 'nothing' || 'windows-latest' }} @@ -2496,7 +2503,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java: [ '17' ] + java: [ '21' ] fail-fast: false steps: From 7c0b5f16693b089eac5a91fc4bafc0fcaa8f6763 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Fri, 23 Jan 2026 23:52:03 +0100 Subject: [PATCH 02/13] Updated java.editor tests for JDK 21 and 25 added unimportant classes to the ignore list so that the test data doesn't have to be updated. --- .../java/editor/imports/ComputeImportsTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/java/java.editor/test/unit/src/org/netbeans/modules/java/editor/imports/ComputeImportsTest.java b/java/java.editor/test/unit/src/org/netbeans/modules/java/editor/imports/ComputeImportsTest.java index a43ef3f0b499..95c431526546 100644 --- a/java/java.editor/test/unit/src/org/netbeans/modules/java/editor/imports/ComputeImportsTest.java +++ b/java/java.editor/test/unit/src/org/netbeans/modules/java/editor/imports/ComputeImportsTest.java @@ -34,7 +34,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -68,7 +67,7 @@ */ public class ComputeImportsTest extends NbTestCase { - private static final Set IGNORE_CLASSES = new HashSet(Arrays.asList(new String[] { + private static final Set IGNORE_CLASSES = Set.of( "com.sun.tools.javac.util.List", "com.sun.tools.javac.code.Attribute.RetentionPolicy", "com.sun.tools.classfile.Opcode.Set", @@ -81,6 +80,8 @@ public class ComputeImportsTest extends NbTestCase { "com.sun.xml.internal.bind.v2.runtime.output.NamespaceContextImpl.Element", "com.sun.xml.internal.bind.v2.schemagen.xmlschema.Element", "sun.text.normalizer.RangeValueIterator.Element", + "jdk.internal.org.commonmark.node.Document", + "java.lang.StringTemplate.STR", "javax.xml.bind.Element", "javax.lang.model.element.Element", "com.sun.org.apache.xalan.internal.xsltc.runtime.AttributeList", @@ -90,13 +91,13 @@ public class ComputeImportsTest extends NbTestCase { "com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type.Element", "com.sun.xml.internal.ws.policy.privateutil.PolicyUtils.Collections", "com.azul.crs.client.service.JarLoadMonitor.ProcessedJarFiles.LRU.Element" - })); + ); - private static final List IGNORE_PATTERNS = Collections.unmodifiableList(Arrays.asList( + private static final List IGNORE_PATTERNS = List.of( Pattern.compile("jdk\\..*\\.internal\\..*"), Pattern.compile("org\\.graalvm\\..*"), Pattern.compile("com\\.azul\\.crs\\..*") // https://docs.azul.com/vulnerability-detection/detailed-information/configuration-options - )); + ); private FileObject testSource; private JavaSource js; From 36b8efa2274a969cb50dbe7096382aa0bc97ca08 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Sat, 24 Jan 2026 02:17:14 +0100 Subject: [PATCH 03/13] Updated java.source tests for JDK 21 and 25 refactored file read interception from SecurityManager to JFR --- .../nbproject/project.properties | 4 +- .../api/java/source/TreePathHandleTest.java | 64 ++++++++----------- 2 files changed, 29 insertions(+), 39 deletions(-) diff --git a/java/java.source.base/nbproject/project.properties b/java/java.source.base/nbproject/project.properties index e74394ad6113..fb30a696ac6d 100644 --- a/java/java.source.base/nbproject/project.properties +++ b/java/java.source.base/nbproject/project.properties @@ -18,7 +18,7 @@ #javac.compilerargs=-Xlint:unchecked nbroot=../.. is.autoload=true -javac.release=17 +javac.release=21 javadoc.name=Java Source Base javadoc.title=Java Source Base javadoc.arch=${basedir}/arch.xml @@ -206,5 +206,5 @@ test.config.vanilla-javac.excludes=\ # remove default compiler JMS flags so that we don't get "Unknown module" warnings due to --limit-modules jms-compiler.flags.jvm= -test.jms.flags=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument,jdk.zipfs,java.scripting,java.naming +test.jms.flags=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument,jdk.zipfs,java.scripting,java.naming,jdk.jfr test.bootclasspath.prepend.args=-Dno.netbeans.bootclasspath.prepend.needed=true diff --git a/java/java.source.base/test/unit/src/org/netbeans/api/java/source/TreePathHandleTest.java b/java/java.source.base/test/unit/src/org/netbeans/api/java/source/TreePathHandleTest.java index 950c9fa6afcf..dc3bd3db5476 100644 --- a/java/java.source.base/test/unit/src/org/netbeans/api/java/source/TreePathHandleTest.java +++ b/java/java.source.base/test/unit/src/org/netbeans/api/java/source/TreePathHandleTest.java @@ -26,10 +26,11 @@ import com.sun.source.util.TreePath; import java.io.File; import java.io.OutputStream; -import java.security.Permission; +import java.util.concurrent.atomic.AtomicBoolean; import javax.lang.model.element.Element; import javax.lang.model.element.TypeElement; import javax.lang.model.element.VariableElement; +import jdk.jfr.consumer.RecordingStream; import org.netbeans.api.java.source.JavaSource.Phase; import org.netbeans.core.startup.Main; import org.netbeans.junit.NbTestCase; @@ -51,6 +52,7 @@ public TreePathHandleTest(String testName) { private FileObject sourceRoot; + @Override protected void setUp() throws Exception { clearWorkDir(); @@ -170,29 +172,39 @@ public void test134457() throws Exception { public void testTreePathIsNotParsing() throws Exception { FileObject file = FileUtil.createData(sourceRoot, "test/test.java"); - writeIntoFile(file, "package test; public class test {}"); - writeIntoFile(FileUtil.createData(sourceRoot, "test/test2.java"), "package test; public class test2 {}"); + + FileObject file2 = FileUtil.createData(sourceRoot, "test/test2.java"); + writeIntoFile(file2, "package test; public class test2 {}"); JavaSource js = JavaSource.forFileObject(file); SourceUtilsTestUtil.compileRecursively(sourceRoot); - js.runUserActionTask(new Task() { - public void run(CompilationController parameter) throws Exception { - parameter.toPhase(Phase.RESOLVED); - - TypeElement string = parameter.getElements().getTypeElement("test.test2"); - - SecurityManager old = System.getSecurityManager(); - - System.setSecurityManager(new SecMan()); - + AtomicBoolean wasRead = new AtomicBoolean(); + + js.runUserActionTask(parameter -> { + parameter.toPhase(Phase.RESOLVED); + + TypeElement string = parameter.getElements().getTypeElement("test.test2"); + + try (RecordingStream rs = new RecordingStream()) { + rs.setMaxSize(Long.MAX_VALUE); + rs.enable("jdk.FileRead").withoutThreshold().withStackTrace(); + rs.onEvent("jdk.FileRead", e -> { + if (e.getString("path").endsWith("test2.java")) { + wasRead.set(true); + System.err.println(e); + } + }); + rs.startAsync(); +// file2.getInputStream().read(); // check: commenting this out should fail the test TreePathHandle.create(string, parameter); - - System.setSecurityManager(old); + rs.stop(); // flushes stream } }, true); + + assertFalse("file was read", wasRead.get()); } public void testEquals() throws Exception { @@ -454,26 +466,4 @@ public void testVarInstanceMember() throws Exception { assertNotNull(handle.getElementHandle()); JavacParser.DISABLE_SOURCE_LEVEL_DOWNGRADE = false; } - - private static final class SecMan extends SecurityManager { - - @Override - public void checkRead(String file) { - assertFalse(file.endsWith("test2.java")); - } - - @Override - public void checkRead(String file, Object context) { - assertFalse(file.endsWith("test2.java")); - } - - @Override - public void checkPermission(Permission perm) { - } - - @Override - public void checkPermission(Permission perm, Object context) { - } - - } } From 042423ba97ac693d3246584a9fdf61ce0bf76975 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Mon, 26 Jan 2026 14:47:35 +0100 Subject: [PATCH 04/13] Revert "Updated java.source tests for JDK 21 and 25" (chicken-egg problem) This reverts commit bae6cfcbc6215bf0835eb6c80d15ba5592365321. --- .../nbproject/project.properties | 4 +- .../api/java/source/TreePathHandleTest.java | 64 +++++++++++-------- 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/java/java.source.base/nbproject/project.properties b/java/java.source.base/nbproject/project.properties index fb30a696ac6d..e74394ad6113 100644 --- a/java/java.source.base/nbproject/project.properties +++ b/java/java.source.base/nbproject/project.properties @@ -18,7 +18,7 @@ #javac.compilerargs=-Xlint:unchecked nbroot=../.. is.autoload=true -javac.release=21 +javac.release=17 javadoc.name=Java Source Base javadoc.title=Java Source Base javadoc.arch=${basedir}/arch.xml @@ -206,5 +206,5 @@ test.config.vanilla-javac.excludes=\ # remove default compiler JMS flags so that we don't get "Unknown module" warnings due to --limit-modules jms-compiler.flags.jvm= -test.jms.flags=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument,jdk.zipfs,java.scripting,java.naming,jdk.jfr +test.jms.flags=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument,jdk.zipfs,java.scripting,java.naming test.bootclasspath.prepend.args=-Dno.netbeans.bootclasspath.prepend.needed=true diff --git a/java/java.source.base/test/unit/src/org/netbeans/api/java/source/TreePathHandleTest.java b/java/java.source.base/test/unit/src/org/netbeans/api/java/source/TreePathHandleTest.java index dc3bd3db5476..950c9fa6afcf 100644 --- a/java/java.source.base/test/unit/src/org/netbeans/api/java/source/TreePathHandleTest.java +++ b/java/java.source.base/test/unit/src/org/netbeans/api/java/source/TreePathHandleTest.java @@ -26,11 +26,10 @@ import com.sun.source.util.TreePath; import java.io.File; import java.io.OutputStream; -import java.util.concurrent.atomic.AtomicBoolean; +import java.security.Permission; import javax.lang.model.element.Element; import javax.lang.model.element.TypeElement; import javax.lang.model.element.VariableElement; -import jdk.jfr.consumer.RecordingStream; import org.netbeans.api.java.source.JavaSource.Phase; import org.netbeans.core.startup.Main; import org.netbeans.junit.NbTestCase; @@ -52,7 +51,6 @@ public TreePathHandleTest(String testName) { private FileObject sourceRoot; - @Override protected void setUp() throws Exception { clearWorkDir(); @@ -172,39 +170,29 @@ public void test134457() throws Exception { public void testTreePathIsNotParsing() throws Exception { FileObject file = FileUtil.createData(sourceRoot, "test/test.java"); + writeIntoFile(file, "package test; public class test {}"); - - FileObject file2 = FileUtil.createData(sourceRoot, "test/test2.java"); - writeIntoFile(file2, "package test; public class test2 {}"); + writeIntoFile(FileUtil.createData(sourceRoot, "test/test2.java"), "package test; public class test2 {}"); JavaSource js = JavaSource.forFileObject(file); SourceUtilsTestUtil.compileRecursively(sourceRoot); - AtomicBoolean wasRead = new AtomicBoolean(); - - js.runUserActionTask(parameter -> { - parameter.toPhase(Phase.RESOLVED); - - TypeElement string = parameter.getElements().getTypeElement("test.test2"); - - try (RecordingStream rs = new RecordingStream()) { - rs.setMaxSize(Long.MAX_VALUE); - rs.enable("jdk.FileRead").withoutThreshold().withStackTrace(); - rs.onEvent("jdk.FileRead", e -> { - if (e.getString("path").endsWith("test2.java")) { - wasRead.set(true); - System.err.println(e); - } - }); - rs.startAsync(); -// file2.getInputStream().read(); // check: commenting this out should fail the test + js.runUserActionTask(new Task() { + public void run(CompilationController parameter) throws Exception { + parameter.toPhase(Phase.RESOLVED); + + TypeElement string = parameter.getElements().getTypeElement("test.test2"); + + SecurityManager old = System.getSecurityManager(); + + System.setSecurityManager(new SecMan()); + TreePathHandle.create(string, parameter); - rs.stop(); // flushes stream + + System.setSecurityManager(old); } }, true); - - assertFalse("file was read", wasRead.get()); } public void testEquals() throws Exception { @@ -466,4 +454,26 @@ public void testVarInstanceMember() throws Exception { assertNotNull(handle.getElementHandle()); JavacParser.DISABLE_SOURCE_LEVEL_DOWNGRADE = false; } + + private static final class SecMan extends SecurityManager { + + @Override + public void checkRead(String file) { + assertFalse(file.endsWith("test2.java")); + } + + @Override + public void checkRead(String file, Object context) { + assertFalse(file.endsWith("test2.java")); + } + + @Override + public void checkPermission(Permission perm) { + } + + @Override + public void checkPermission(Permission perm, Object context) { + } + + } } From 7f450df22e850fa47ea53ed6a91ee42fa2360a56 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Mon, 26 Jan 2026 01:25:43 +0100 Subject: [PATCH 05/13] Tests: Allow SM for now --- harness/apisupport.harness/nbproject/project.properties | 3 +++ ide/versioning/nbproject/project.properties | 3 +++ java/java.source/nbproject/project.properties | 3 ++- platform/core.startup.base/nbproject/project.properties | 2 ++ platform/core.startup/nbproject/project.properties | 3 +++ platform/masterfs/nbproject/project.properties | 3 +++ platform/o.n.bootstrap/nbproject/project.properties | 4 ++++ platform/o.n.core/nbproject/project.properties | 3 +++ platform/openide.execution/nbproject/project.properties | 3 +++ platform/openide.filesystems/nbproject/project.properties | 3 +++ platform/openide.loaders/nbproject/project.properties | 3 +++ platform/openide.util.lookup/nbproject/project.properties | 3 +++ platform/openide.util.ui/nbproject/project.properties | 3 +++ 13 files changed, 38 insertions(+), 1 deletion(-) diff --git a/harness/apisupport.harness/nbproject/project.properties b/harness/apisupport.harness/nbproject/project.properties index ca593b9ca344..066614f085e3 100644 --- a/harness/apisupport.harness/nbproject/project.properties +++ b/harness/apisupport.harness/nbproject/project.properties @@ -97,3 +97,6 @@ test.unit.cp.extra=${netbeans.dest.dir}/harness/jnlp/jnlp-launcher.jar javadoc.arch=${basedir}/arch.xml test.config.stableBTD.includes=**/*Test.class + +# TODO needed for tests; remove with jnlp code +test.jms.flags=-Djava.security.manager=allow diff --git a/ide/versioning/nbproject/project.properties b/ide/versioning/nbproject/project.properties index 41a90285112a..9822f827d24b 100644 --- a/ide/versioning/nbproject/project.properties +++ b/ide/versioning/nbproject/project.properties @@ -43,3 +43,6 @@ test.config.stableBTD.excludes=\ **/GetAnnotatedOwnerTest.class,\ **/VCSContextTest.class,\ **/VersioningAnnotationProviderTest.class + +# TODO remove SM usage in tests +test.jms.flags=-Djava.security.manager=allow diff --git a/java/java.source/nbproject/project.properties b/java/java.source/nbproject/project.properties index 0f35fd0fe22c..d91e9b1fc886 100644 --- a/java/java.source/nbproject/project.properties +++ b/java/java.source/nbproject/project.properties @@ -58,5 +58,6 @@ test.config.jet-main.includes=\ # remove default compiler JMS flags so that we don't get "Unknown module" warnings due to --limit-modules jms-compiler.flags.jvm= -test.jms.flags=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument,jdk.zipfs,java.scripting,java.naming +# TODO remove SM usage in tests including this flag +test.jms.flags=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument,jdk.zipfs,java.scripting,java.naming -Djava.security.manager=allow test.bootclasspath.prepend.args=-Dno.netbeans.bootclasspath.prepend.needed=true diff --git a/platform/core.startup.base/nbproject/project.properties b/platform/core.startup.base/nbproject/project.properties index 6e4f1711c5f7..0a484e2ef52c 100644 --- a/platform/core.startup.base/nbproject/project.properties +++ b/platform/core.startup.base/nbproject/project.properties @@ -24,3 +24,5 @@ javadoc.arch=${basedir}/arch.xml test-unit-sys-prop.xtest.data=${nb_all}/platform/o.n.bootstrap/test/unit/data test.unit.data.dir=${nb_all}/platform/o.n.bootstrap/test/unit/data +# TODO remove SM usage in test (testURLNoInetAccess) +test.jms.flags=-Djava.security.manager=allow diff --git a/platform/core.startup/nbproject/project.properties b/platform/core.startup/nbproject/project.properties index f328f174001a..d77be16e95d5 100644 --- a/platform/core.startup/nbproject/project.properties +++ b/platform/core.startup/nbproject/project.properties @@ -50,3 +50,6 @@ test.config.stableBTD.excludes=\ **/SystemFileSystemTest.class,\ **/TopLoggingNbLoggerConsoleTest.class,\ **/TopLoggingStartLogTest.class + +# TODO remove SM usage in tests +test.jms.flags=-Djava.security.manager=allow diff --git a/platform/masterfs/nbproject/project.properties b/platform/masterfs/nbproject/project.properties index b0188f8ed182..95ac0d9f4d76 100644 --- a/platform/masterfs/nbproject/project.properties +++ b/platform/masterfs/nbproject/project.properties @@ -36,3 +36,6 @@ test.config.stableBTD.excludes=\ **/SlowRefreshSuspendableTest.class,\ **/StatFilesTest.class spec.version.base=2.87.0 + +# TODO remove SM usage in tests +test.jms.flags=-Djava.security.manager=allow diff --git a/platform/o.n.bootstrap/nbproject/project.properties b/platform/o.n.bootstrap/nbproject/project.properties index 429461e1f047..87855f16d1e0 100644 --- a/platform/o.n.bootstrap/nbproject/project.properties +++ b/platform/o.n.bootstrap/nbproject/project.properties @@ -31,3 +31,7 @@ javadoc.apichanges=${basedir}/apichanges.xml # When changing this list, change 'verifyexcludes' param. of 'makejnlp' task in apisupport.harness/release/jnlp.xml as well jnlp.verify.excludes=lib/nbexec,lib/nbexec.exe,lib/nbexec64.exe,lib/nbexec.dll,lib/nbexec64.dll + + +# TODO remove SM usage in test (JarClassLoaderTest, StampsExtraTest, StampsTest, StampsWithDotDotTest) +test.jms.flags=-Djava.security.manager=allow \ No newline at end of file diff --git a/platform/o.n.core/nbproject/project.properties b/platform/o.n.core/nbproject/project.properties index b63ffb63bbc7..646b92dbd749 100644 --- a/platform/o.n.core/nbproject/project.properties +++ b/platform/o.n.core/nbproject/project.properties @@ -48,3 +48,6 @@ test.config.stableBTD.excludes=\ **/NbErrorManagerTest.class,\ **/NbKeymapTest.class,\ **/SystemFileSystemTest.class + +# TODO remove SM usage in tests (NbLifecycleManagerEDTTest, NbLifecycleManagerTest) +test.jms.flags=-Djava.security.manager=allow diff --git a/platform/openide.execution/nbproject/project.properties b/platform/openide.execution/nbproject/project.properties index 5861684c4e8a..b48ccb792f07 100644 --- a/platform/openide.execution/nbproject/project.properties +++ b/platform/openide.execution/nbproject/project.properties @@ -26,3 +26,6 @@ javadoc.apichanges=${basedir}/apichanges.xml jnlp.verify.excludes=config/ModuleAutoDeps/org-openide-execution.xml test.config.stableBTD.includes=**/*Test.class + +# TODO remove SM usage in tests +test.jms.flags=-Djava.security.manager=allow diff --git a/platform/openide.filesystems/nbproject/project.properties b/platform/openide.filesystems/nbproject/project.properties index 800dc69b22c0..00f163c75c29 100644 --- a/platform/openide.filesystems/nbproject/project.properties +++ b/platform/openide.filesystems/nbproject/project.properties @@ -42,3 +42,6 @@ test.config.stableBTD.excludes=\ **/StatFilesTest.class,\ **/URLMapperTestHidden.class,\ **/XMLFileSystemTest.class + +# TODO remove SM usage in tests +test.jms.flags=-Djava.security.manager=allow diff --git a/platform/openide.loaders/nbproject/project.properties b/platform/openide.loaders/nbproject/project.properties index e6ae801dd818..ac112f441eeb 100644 --- a/platform/openide.loaders/nbproject/project.properties +++ b/platform/openide.loaders/nbproject/project.properties @@ -21,3 +21,6 @@ javac.release=17 javadoc.main.page=org/openide/loaders/doc-files/api.html javadoc.arch=${basedir}/arch.xml javadoc.apichanges=${basedir}/apichanges.xml + +# TODO remove SM usage in tests +test.jms.flags=-Djava.security.manager=allow diff --git a/platform/openide.util.lookup/nbproject/project.properties b/platform/openide.util.lookup/nbproject/project.properties index f98abe2df894..89acefed377a 100644 --- a/platform/openide.util.lookup/nbproject/project.properties +++ b/platform/openide.util.lookup/nbproject/project.properties @@ -25,3 +25,6 @@ javadoc.apichanges=${basedir}/apichanges.xml module.javadoc.packages=org.openide.util,org.openide.util.lookup test.config.stableBTD.includes=**/*Test.class + +# TODO remove SM usage in tests +test.jms.flags=-Djava.security.manager=allow diff --git a/platform/openide.util.ui/nbproject/project.properties b/platform/openide.util.ui/nbproject/project.properties index dbb46b717842..1bf394eb24b3 100644 --- a/platform/openide.util.ui/nbproject/project.properties +++ b/platform/openide.util.ui/nbproject/project.properties @@ -33,3 +33,6 @@ test.config.stableBTD.excludes=\ **/RequestProcessorParallelTest.class,\ **/TaskTest.class,\ **/UtilitiesTest.class + +# TODO remove SM usage in tests (LifecycleManagerEDTTest, LifecycleManagerTest, XMLUtilReflectionTest) +test.jms.flags=-Djava.security.manager=allow From 27d5cf2c900c489b8486acc541924d5c669ce2b9 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Mon, 26 Jan 2026 04:20:38 +0100 Subject: [PATCH 06/13] disable JDK 21 incompatible tests (Thread.stop()) --- .github/workflows/main.yml | 5 +++-- .../test/unit/src/org/openide/nodes/ChildrenKeysTest.java | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6f12a10fa972..e1092081b10b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -420,8 +420,9 @@ jobs: - name: ergonomics/ide.ergonomics run: ant $OPTS -f ergonomics/ide.ergonomics test -Dtest.config=commit - - name: nb/deadlock.detector - run: ant $OPTS -f nb/deadlock.detector test + # TODO not JDK 21 compatible +# - name: nb/deadlock.detector +# run: ant $OPTS -f nb/deadlock.detector test - name: nb/ide.branding run: ant $OPTS -f nb/ide.branding test diff --git a/platform/openide.nodes/test/unit/src/org/openide/nodes/ChildrenKeysTest.java b/platform/openide.nodes/test/unit/src/org/openide/nodes/ChildrenKeysTest.java index e0487d6eec34..230bbe7739bc 100644 --- a/platform/openide.nodes/test/unit/src/org/openide/nodes/ChildrenKeysTest.java +++ b/platform/openide.nodes/test/unit/src/org/openide/nodes/ChildrenKeysTest.java @@ -137,12 +137,14 @@ public void run() { }//fail("Ok"); } - /** + /* * See #78519 * T1 has write access and gets preempted just before call to * getNodes() by another thread callig getNodes. * Other thread */ + // TODO uses Thread.stop(); rewrite or remove + /* public void testGetNodesFromWriteAccess() throws Exception { final String[] keys = { "Nenik", "Tulach" }; Keys o = new Keys (lazy(), keys); @@ -195,7 +197,8 @@ public void run() { assertTrue ("Preempted thread finished correctly", done[0]); assertTrue ("Other thread finished correctly", done[1]); } - + */ + public void testNodesCountDelegated() throws Exception { class K extends Children.Keys { int cnt; From 549ad111f4fc5f65132aae0bbbc2afdebce072e9 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Mon, 26 Jan 2026 15:41:14 +0100 Subject: [PATCH 07/13] remove NBBundleWithSecurityManager test --- .../NbBundleWithSecurityManager.properties | 18 ------- .../util/NbBundleWithSecurityManagerTest.java | 52 ------------------- 2 files changed, 70 deletions(-) delete mode 100644 platform/openide.util/test/unit/src/org/openide/util/NbBundleWithSecurityManager.properties delete mode 100644 platform/openide.util/test/unit/src/org/openide/util/NbBundleWithSecurityManagerTest.java diff --git a/platform/openide.util/test/unit/src/org/openide/util/NbBundleWithSecurityManager.properties b/platform/openide.util/test/unit/src/org/openide/util/NbBundleWithSecurityManager.properties deleted file mode 100644 index 4e88e515a17c..000000000000 --- a/platform/openide.util/test/unit/src/org/openide/util/NbBundleWithSecurityManager.properties +++ /dev/null @@ -1,18 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -HELLO=World diff --git a/platform/openide.util/test/unit/src/org/openide/util/NbBundleWithSecurityManagerTest.java b/platform/openide.util/test/unit/src/org/openide/util/NbBundleWithSecurityManagerTest.java deleted file mode 100644 index 4c87889f6ac4..000000000000 --- a/platform/openide.util/test/unit/src/org/openide/util/NbBundleWithSecurityManagerTest.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.openide.util; - -import java.security.Permission; -import java.util.ResourceBundle; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import org.junit.Test; - -public class NbBundleWithSecurityManagerTest { - @Test - public void testQueue() { - final Thread[] raised = { null }; - System.setSecurityManager(new SecurityManager() { - @Override - public void checkAccess(Thread t) { - if (t.getClass().getName().startsWith("java.util.logging")) { - return; - } - raised[0] = t; - throw new SecurityException(); - } - - @Override - public void checkPermission(Permission perm) { - } - }); - ResourceBundle bundle = NbBundle.getBundle("org.openide.util.NbBundleWithSecurityManager"); - assertNotNull("Bundle found", bundle); - assertEquals("World", bundle.getString("HELLO")); - - System.setSecurityManager(null); - assertNotNull("The thread has been prevented from being started", raised[0]); - } -} From 0781a3111a1c712e2a3d1009f8d3c01dcfd53499 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Mon, 26 Jan 2026 15:50:15 +0100 Subject: [PATCH 08/13] Fix htmlui tests: source/target 7 is no longer supported by javac --- .../test/unit/src/org/netbeans/api/htmlui/Compile.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/api.htmlui/test/unit/src/org/netbeans/api/htmlui/Compile.java b/platform/api.htmlui/test/unit/src/org/netbeans/api/htmlui/Compile.java index 6b7f5faba6f3..95ca12922944 100644 --- a/platform/api.htmlui/test/unit/src/org/netbeans/api/htmlui/Compile.java +++ b/platform/api.htmlui/test/unit/src/org/netbeans/api/htmlui/Compile.java @@ -71,7 +71,7 @@ private Compile(String htmlName, String html, String code, String sl) throws IOE /** Performs compilation of given HTML page and associated Java code */ public static Compile create(String htmlName, String html, String code) throws IOException { - return create(htmlName, html, code, "1.7"); + return create(htmlName, html, code, "1.8"); } static Compile create(String htmlName, String html, String code, String sourceLevel) throws IOException { return new Compile(htmlName, html, code, sourceLevel); @@ -208,7 +208,7 @@ public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOExcept } }; - ToolProvider.getSystemJavaCompiler().getTask(null, jfm, this, Arrays.asList("-source", sourceLevel, "-target", "1.7"), null, Arrays.asList(file)).call(); + ToolProvider.getSystemJavaCompiler().getTask(null, jfm, this, Arrays.asList("-source", sourceLevel, "-target", sourceLevel), null, Arrays.asList(file)).call(); Map result = new HashMap(); From 8e8bb9447ec506b1f0e5a2f7a7d135fd41812fe8 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Mon, 26 Jan 2026 16:10:11 +0100 Subject: [PATCH 09/13] Disable failing object size estimation test --- .../apisupport/project/layers/WritableXMLFileSystemTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apisupport/apisupport.project/test/unit/src/org/netbeans/modules/apisupport/project/layers/WritableXMLFileSystemTest.java b/apisupport/apisupport.project/test/unit/src/org/netbeans/modules/apisupport/project/layers/WritableXMLFileSystemTest.java index 6075ee37fd2c..e95b9cc15992 100644 --- a/apisupport/apisupport.project/test/unit/src/org/netbeans/modules/apisupport/project/layers/WritableXMLFileSystemTest.java +++ b/apisupport/apisupport.project/test/unit/src/org/netbeans/modules/apisupport/project/layers/WritableXMLFileSystemTest.java @@ -30,6 +30,7 @@ import java.util.Map; import java.util.Set; import java.util.logging.Level; +import org.junit.Ignore; import org.netbeans.junit.RandomlyFails; import org.netbeans.modules.apisupport.project.TestUtil; import org.netbeans.modules.apisupport.project.layers.LayerUtils.SavableTreeEditorCookie; @@ -667,6 +668,7 @@ public void testExternalFileChangesRefired() throws Exception { fcl.changes()); } + @Ignore("fails on JDK 21+") public void testHeapUsage() throws Exception { Layer l = new Layer(""); FileSystem fs = l.read(); From 110aaa445888a780eaacb109212ea2427a6df0e0 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Mon, 26 Jan 2026 16:55:10 +0100 Subject: [PATCH 10/13] Update enterprise/micronaut completion test data for JDK 21 --- .../allTypes.pass | 5 ++++- .../ctxTypes.pass | 5 ++++- .../intMethods.pass | 2 ++ .../intStaticMethods.pass | 2 ++ .../javaLangPackageContent.pass | 6 +++++- .../stringMethods.pass | 3 +++ 6 files changed, 20 insertions(+), 3 deletions(-) diff --git a/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/allTypes.pass b/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/allTypes.pass index 014426affcfe..feaf949b0a5f 100644 --- a/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/allTypes.pass +++ b/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/allTypes.pass @@ -20,7 +20,6 @@ ClassValue CloneNotSupportedException Cloneable Comparable -Compiler Deprecated Double Enum @@ -49,6 +48,7 @@ Iterable LayerInstantiationException LinkageError Long +MatchException Math Module ModuleLayer @@ -76,6 +76,7 @@ Runtime RuntimeException RuntimePermission SafeVarargs +ScopedValue SecurityException SecurityManager Short @@ -87,6 +88,7 @@ String StringBuffer StringBuilder StringIndexOutOfBoundsException +StringTemplate SuppressWarnings System Thread @@ -102,6 +104,7 @@ UnsupportedOperationException VerifyError VirtualMachineError Void +WrongThreadException com io jakarta diff --git a/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/ctxTypes.pass b/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/ctxTypes.pass index 291b09aee455..5e9c14a0793b 100644 --- a/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/ctxTypes.pass +++ b/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/ctxTypes.pass @@ -21,7 +21,6 @@ ClassValue CloneNotSupportedException Cloneable Comparable -Compiler Deprecated Double Enum @@ -50,6 +49,7 @@ Iterable LayerInstantiationException LinkageError Long +MatchException Math Module ModuleLayer @@ -77,6 +77,7 @@ Runtime RuntimeException RuntimePermission SafeVarargs +ScopedValue SecurityException SecurityManager Short @@ -88,6 +89,7 @@ String StringBuffer StringBuilder StringIndexOutOfBoundsException +StringTemplate SuppressWarnings System Thread @@ -103,6 +105,7 @@ UnsupportedOperationException VerifyError VirtualMachineError Void +WrongThreadException com io jakarta diff --git a/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/intMethods.pass b/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/intMethods.pass index 7eeaa3435c84..a99e559130c8 100644 --- a/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/intMethods.pass +++ b/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/intMethods.pass @@ -3,11 +3,13 @@ byteValue() : byte compare(int x, int y) : int compareTo(Integer anotherInteger) : int compareUnsigned(int x, int y) : int +compress(int i, int mask) : int decode(String nm) : Integer describeConstable() : Optional divideUnsigned(int dividend, int divisor) : int doubleValue() : double equals(Object obj) : boolean +expand(int i, int mask) : int floatValue() : float getInteger(String nm) : Integer getInteger(String nm, Integer val) : Integer diff --git a/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/intStaticMethods.pass b/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/intStaticMethods.pass index 0a92dc03ca49..1aba581617f8 100644 --- a/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/intStaticMethods.pass +++ b/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/intStaticMethods.pass @@ -1,8 +1,10 @@ bitCount(int i) : int compare(int x, int y) : int compareUnsigned(int x, int y) : int +compress(int i, int mask) : int decode(String nm) : Integer divideUnsigned(int dividend, int divisor) : int +expand(int i, int mask) : int getInteger(String nm) : Integer getInteger(String nm, Integer val) : Integer getInteger(String nm, int val) : Integer diff --git a/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/javaLangPackageContent.pass b/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/javaLangPackageContent.pass index ca6e5c869912..9c95206c2f0c 100644 --- a/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/javaLangPackageContent.pass +++ b/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/javaLangPackageContent.pass @@ -20,7 +20,6 @@ ClassValue CloneNotSupportedException Cloneable Comparable -Compiler Deprecated Double Enum @@ -49,6 +48,7 @@ Iterable LayerInstantiationException LinkageError Long +MatchException Math Module ModuleLayer @@ -76,6 +76,7 @@ Runtime RuntimeException RuntimePermission SafeVarargs +ScopedValue SecurityException SecurityManager Short @@ -87,6 +88,7 @@ String StringBuffer StringBuilder StringIndexOutOfBoundsException +StringTemplate SuppressWarnings System Thread @@ -102,8 +104,10 @@ UnsupportedOperationException VerifyError VirtualMachineError Void +WrongThreadException annotation constant +foreign instrument invoke management diff --git a/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/stringMethods.pass b/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/stringMethods.pass index 4363207a59e8..5029e946810a 100644 --- a/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/stringMethods.pass +++ b/enterprise/micronaut/test/unit/data/goldenfiles/org/netbeans/modules/micronaut/completion/MicronautExpressionLanguageConstructsCompletionTest/stringMethods.pass @@ -33,6 +33,8 @@ indexOf(String str) : int indexOf(int ch) : int indexOf(String str, int fromIndex) : int indexOf(int ch, int fromIndex) : int +indexOf(String str, int beginIndex, int endIndex) : int +indexOf(int ch, int beginIndex, int endIndex) : int intern() : String isBlank() : boolean isEmpty() : boolean @@ -56,6 +58,7 @@ replaceFirst(String regex, String replacement) : String resolveConstantDesc(Lookup lookup) : String split(String regex) : String[] split(String regex, int limit) : String[] +splitWithDelimiters(String regex, int limit) : String[] startsWith(String prefix) : boolean startsWith(String prefix, int toffset) : boolean strip() : String From e9271b2bc146929bde8547b507ac4ee59721dd24 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Mon, 26 Jan 2026 17:33:27 +0100 Subject: [PATCH 11/13] Remove no longer needed SM usage in ide/xsl test --- .../xsl/transform/TransformServletTest.java | 49 ------------------- 1 file changed, 49 deletions(-) diff --git a/ide/xsl/test/unit/src/org/netbeans/modules/xsl/transform/TransformServletTest.java b/ide/xsl/test/unit/src/org/netbeans/modules/xsl/transform/TransformServletTest.java index 802bcb3e3bca..6346ffe23f28 100644 --- a/ide/xsl/test/unit/src/org/netbeans/modules/xsl/transform/TransformServletTest.java +++ b/ide/xsl/test/unit/src/org/netbeans/modules/xsl/transform/TransformServletTest.java @@ -18,34 +18,11 @@ */ package org.netbeans.modules.xsl.transform; -//import java.io.*; import java.net.*; -import java.security.Permission; -//import java.util.*; - -//import javax.servlet.*; -//import javax.servlet.http.*; import junit.framework.*; import org.netbeans.junit.*; -/*import org.openide.util.HttpServer; -import org.openide.filesystems.FileObject; -import org.openide.util.SharedClassObject; -import org.openide.filesystems.FileUtil; -import org.openide.execution.NbfsURLConnection; - -import org.xml.sax.*; -import javax.xml.parsers.*; -import javax.xml.transform.*; -import javax.xml.transform.sax.*; -import javax.xml.transform.stream.*; - -import org.netbeans.api.xml.cookies.*; -import org.netbeans.spi.xml.cookies.*; - -import org.netbeans.modules.xsl.utils.TransformUtil; -*/ /** * * @author Libor Kramolis @@ -60,15 +37,12 @@ public static void main(java.lang.String[] args) { junit.textui.TestRunner.run(suite()); } - - public static Test suite() { TestSuite suite = new NbTestSuite(TransformServletTest.class); return suite; } - /** Test of getServletURL method, of class org.netbeans.modules.xsl.transform.TransformServlet. */ public void testGetServletURL() { // issue #196602 @@ -85,28 +59,5 @@ public void testGetServletURL() { assertTrue ("I need correct Transform Servlet URL!", (servletURL!=null & exceptionThrown!= true)); } - - @Override - protected void setUp() throws Exception { - super.setUp(); - SecurityManager sm = new SecurityManager() { - - @Override - public void checkPermission(Permission perm) { - } - - @Override - public void checkPermission(Permission perm, Object context) { - } - - }; - System.setSecurityManager(sm); - } - - @Override - protected void tearDown() throws Exception { - System.setSecurityManager(null); - super.tearDown(); - } } From 7987e2e1cc975155a2740b07e042f1e151fecfa1 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Mon, 26 Jan 2026 19:44:08 +0100 Subject: [PATCH 12/13] add -proc:none to test which doesn't need AP --- .../test/unit/src/org/netbeans/JarClassLoaderTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/o.n.bootstrap/test/unit/src/org/netbeans/JarClassLoaderTest.java b/platform/o.n.bootstrap/test/unit/src/org/netbeans/JarClassLoaderTest.java index 0a603593bba1..d7c2740bdf24 100644 --- a/platform/o.n.bootstrap/test/unit/src/org/netbeans/JarClassLoaderTest.java +++ b/platform/o.n.bootstrap/test/unit/src/org/netbeans/JarClassLoaderTest.java @@ -437,14 +437,14 @@ public void testMultiReleaseJar() throws Exception { File classes = new File(getWorkDir(), "classes"); classes.mkdirs(); ToolProvider.getSystemJavaCompiler() - .getTask(null, null, d -> { throw new IllegalStateException(d.toString()); }, Arrays.asList("-d", classes.getAbsolutePath()), null, + .getTask(null, null, d -> { throw new IllegalStateException(d.toString()); }, Arrays.asList("-d", classes.getAbsolutePath(), "-proc:none"), null, Arrays.asList(new SourceFileObject("test/Impl.java", "package test; public class Impl { public static String get() { return \"base\"; } }"), new SourceFileObject("api/API.java", "package api; public class API { public static String run() { return test.Impl.get(); } }"))) .call(); File classes9 = new File(new File(new File(classes, "META-INF"), "versions"), "9"); classes9.mkdirs(); ToolProvider.getSystemJavaCompiler() - .getTask(null, null, d -> { throw new IllegalStateException(d.toString()); }, Arrays.asList("-d", classes9.getAbsolutePath(), "-classpath", classes.getAbsolutePath()), null, + .getTask(null, null, d -> { throw new IllegalStateException(d.toString()); }, Arrays.asList("-d", classes9.getAbsolutePath(), "-classpath", classes.getAbsolutePath(), "-proc:none"), null, Arrays.asList(new SourceFileObject("test/Impl.java", "package test; public class Impl { public static String get() { return \"9\"; } }"))) .call(); Map jarContent = new LinkedHashMap<>(); From 615034061c80d6a79e45f58c26ba5ca5da0e543a Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Mon, 26 Jan 2026 19:48:59 +0100 Subject: [PATCH 13/13] disable test cases where PropertyChange event count changed --- .../org/netbeans/beaninfo/editors/FileArrayEditorTest.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/platform/o.n.core/test/unit/src/org/netbeans/beaninfo/editors/FileArrayEditorTest.java b/platform/o.n.core/test/unit/src/org/netbeans/beaninfo/editors/FileArrayEditorTest.java index 2d9dd126a962..d7645630854a 100644 --- a/platform/o.n.core/test/unit/src/org/netbeans/beaninfo/editors/FileArrayEditorTest.java +++ b/platform/o.n.core/test/unit/src/org/netbeans/beaninfo/editors/FileArrayEditorTest.java @@ -25,6 +25,7 @@ import java.util.List; import javax.swing.JFileChooser; +import org.junit.Ignore; import org.netbeans.junit.NbTestCase; @@ -80,6 +81,7 @@ public void testSetCombinedSingleSelection(){ myListener.size()+ " event(s)"; } + @Ignore("TODO: JDK 20+: event count is now 3") public void testSetCombinedMultiSelection(){ JFileChooser chooser = new JFileChooser(); FileArrayEditor editor = getArrayEditor(); @@ -93,6 +95,7 @@ public void testSetCombinedMultiSelection(){ myListener.size()+ " event(s)"; } + @Ignore("TODO: JDK 20+: event count is now 4") public void testSetCombinedOtherOrderSelection(){ JFileChooser chooser = new JFileChooser(); FileArrayEditor editor = getArrayEditor(); @@ -109,6 +112,7 @@ public void testSetCombinedOtherOrderSelection(){ /* * This test for fix IZ#36742 */ + @Ignore("TODO: JDK 20+: event count is now 3") public void testDoubleSelection(){ JFileChooser chooser = new JFileChooser(); FileArrayEditor editor = getArrayEditor();