From ed31e0b3b11318c870187e47e02656a5a51f1e83 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Thu, 6 Mar 2025 10:24:24 +0100 Subject: [PATCH] Explicitly refresh and rebuild test project after .classpath change This hopefully fixes spurious test failures, like this one: ProjectPropertiesModelTest.testProjectClasspath:584 Found these URIs: [file:/usr/lib/jvm/temurin-21-jdk-amd64/lib/jrt-fs.jar, file:/home/runner/work/pmd-eclipse-plugin/pmd-eclipse-plugin/net.sourceforge.pmd.eclipse.plugin.test/target/work/data/ProjectPropertiesModelTest/bin/] expected: 6 but was: 2 --- .../runtime/properties/ProjectPropertiesModelTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/net.sourceforge.pmd.eclipse.plugin.test/src/main/java/net/sourceforge/pmd/eclipse/runtime/properties/ProjectPropertiesModelTest.java b/net.sourceforge.pmd.eclipse.plugin.test/src/main/java/net/sourceforge/pmd/eclipse/runtime/properties/ProjectPropertiesModelTest.java index 79ff3190..c0673e05 100644 --- a/net.sourceforge.pmd.eclipse.plugin.test/src/main/java/net/sourceforge/pmd/eclipse/runtime/properties/ProjectPropertiesModelTest.java +++ b/net.sourceforge.pmd.eclipse.plugin.test/src/main/java/net/sourceforge/pmd/eclipse/runtime/properties/ProjectPropertiesModelTest.java @@ -573,6 +573,11 @@ public void testProjectClasspath() throws Exception { + " \n" + "\n"; file.setContents(IOUtils.toInputStream(newClasspathContent, "UTF-8"), 0, null); + // refresh, so that changed .classpath file is considered + this.testProject.refreshLocal(IResource.DEPTH_INFINITE, null); + // rebuild again, so that changed classpath is configured on java project + this.testProject.build(IncrementalProjectBuilder.FULL_BUILD, null); + final IProjectPropertiesManager mgr = PMDPlugin.getDefault().getPropertiesManager(); IProjectProperties model = mgr.loadProjectProperties(this.testProject); URLClassLoader auxClasspath = (URLClassLoader) model.getAuxClasspath(); // NOPMD: don't close auxclasspath in test, this should be done by the plugin