diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/RuleSetFactoryTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/RuleSetFactoryTest.java index c1364f02e3..3764610d56 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/RuleSetFactoryTest.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/RuleSetFactoryTest.java @@ -14,15 +14,10 @@ import static org.junit.Assert.assertTrue; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.UnsupportedEncodingException; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.logging.Handler; -import java.util.logging.LogRecord; -import java.util.logging.Logger; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -580,28 +575,6 @@ public class RuleSetFactoryTest { assertEquals(0, ruleset.getRules().size()); } - private static class InMemoryLogHandler extends Handler { - private List records = Collections.synchronizedList(new ArrayList()); - - @Override - public void close() throws SecurityException { - } - - @Override - public void flush() { - records.clear(); - } - - @Override - public void publish(LogRecord record) { - records.add(record); - } - - public List getLogRecords() { - return new ArrayList<>(records); - } - } - /** * See https://github.com/pmd/pmd/issues/782 * Empty ruleset should be interpreted as deprecated. @@ -611,26 +584,18 @@ public class RuleSetFactoryTest { */ @Test public void testEmptyRuleSetReferencedShouldNotBeDeprecated() throws Exception { - InMemoryLogHandler logHandler = new InMemoryLogHandler(); - Logger logger = Logger.getLogger(RuleSetFactory.class.getName()); - try { - logger.addHandler(logHandler); + RuleSetReferenceId ref = createRuleSetReferenceId("\n" + "\n" + + "\n" + + " Ruleset which references a empty ruleset\n" + "\n" + + " \n" + + "\n"); + RuleSetFactory ruleSetFactory = new RuleSetFactory(new ResourceLoader(), RulePriority.LOW, true, true); + RuleSet ruleset = ruleSetFactory.createRuleSet(ref); + assertEquals(0, ruleset.getRules().size()); - RuleSetReferenceId ref = createRuleSetReferenceId("\n" + "\n" - + "\n" - + " Ruleset which references a empty ruleset\n" + "\n" - + " \n" - + "\n"); - RuleSetFactory ruleSetFactory = new RuleSetFactory(new ResourceLoader(), RulePriority.LOW, true, true); - RuleSet ruleset = ruleSetFactory.createRuleSet(ref); - assertEquals(0, ruleset.getRules().size()); - - assertEquals(0, logHandler.getLogRecords().size()); - } finally { - logger.removeHandler(logHandler); - } + assertTrue(logging.getLog().isEmpty()); } /** diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/junit/JavaUtilLoggingRule.java b/pmd-core/src/test/java/net/sourceforge/pmd/junit/JavaUtilLoggingRule.java index 674775120c..7895ee01bf 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/junit/JavaUtilLoggingRule.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/junit/JavaUtilLoggingRule.java @@ -30,7 +30,12 @@ public class JavaUtilLoggingRule extends ExternalResource { public JavaUtilLoggingRule(String loggerName) { this.logger = Logger.getLogger(loggerName); this.stream = new ByteArrayOutputStream(); - this.customLogHandler = new StreamHandler(stream, logger.getParent().getHandlers()[0].getFormatter()); + + Logger currentLogger = logger; + while (currentLogger.getHandlers().length == 0) { + currentLogger = currentLogger.getParent(); + } + this.customLogHandler = new StreamHandler(stream, currentLogger.getHandlers()[0].getFormatter()); } @Override diff --git a/pom.xml b/pom.xml index 48fc8fd04d..d3e46304bc 100644 --- a/pom.xml +++ b/pom.xml @@ -804,12 +804,11 @@ Additionally it includes CPD, the copy-paste-detector. CPD finds duplicated code org.hamcrest hamcrest-library 1.3 - test pl.pragmatists JUnitParams - 1.1.0 + 1.1.1 net.java.dev.javacc