diff --git a/logback-classic-blackbox/src/test/blackboxInput/joran/conditional/includeWithVariableAndConditional.xml b/logback-classic-blackbox/src/test/blackboxInput/joran/conditional/includeWithVariableAndConditional.xml
new file mode 100644
index 0000000000..22d43a0ba9
--- /dev/null
+++ b/logback-classic-blackbox/src/test/blackboxInput/joran/conditional/includeWithVariableAndConditional.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/logback-classic-blackbox/src/test/java/ch/qos/logback/classic/blackbox/joran/conditional/ConditionalTest.java b/logback-classic-blackbox/src/test/java/ch/qos/logback/classic/blackbox/joran/conditional/ConditionalTest.java
index 74dbbb8812..8c2cb7b382 100644
--- a/logback-classic-blackbox/src/test/java/ch/qos/logback/classic/blackbox/joran/conditional/ConditionalTest.java
+++ b/logback-classic-blackbox/src/test/java/ch/qos/logback/classic/blackbox/joran/conditional/ConditionalTest.java
@@ -30,6 +30,7 @@
import ch.qos.logback.core.testUtil.CoreTestConstants;
import ch.qos.logback.core.testUtil.RandomUtil;
import ch.qos.logback.core.util.StatusPrinter;
+import ch.qos.logback.core.util.StatusPrinter2;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -51,6 +52,7 @@ public class ConditionalTest {
Logger root = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME);
Logger logger = loggerContext.getLogger(this.getClass().getName());
+ StatusPrinter2 statusPrinter2 = new StatusPrinter2();
StatusUtil checker = new StatusUtil(loggerContext);
int diff = RandomUtil.getPositiveInt();
@@ -132,7 +134,7 @@ public void conditionalInclusionWithExistingFile() throws JoranException, IOExce
String configFileAsStr = BlackboxClassicTestConstants.JORAN_INPUT_PREFIX
+ "conditional/conditionalIncludeExistingFile.xml";
configure(configFileAsStr);
- StatusPrinter.print(loggerContext);
+ //statusPrinter2.print(loggerContext);
ConsoleAppender consoleAppender = (ConsoleAppender) root.getAppender("CON");
assertNotNull(consoleAppender);
@@ -152,6 +154,22 @@ public void conditionalInclusionWithInexistentFile() throws JoranException, IOEx
assertTrue(checker.isErrorFree(0));
}
+ // https://jira.qos.ch/browse/LOGBACK-1732
+ @Test
+ public void conditionalInclusionWithVariableDefinition() throws JoranException, IOException, InterruptedException {
+
+ String configFileAsStr = BlackboxClassicTestConstants.JORAN_INPUT_PREFIX
+ + "conditional/includeWithVariableAndConditional.xml";
+ configure(configFileAsStr);
+
+ statusPrinter2.print(loggerContext);
+
+ ConsoleAppender consoleAppender = (ConsoleAppender) root.getAppender("CON");
+ assertNotNull(consoleAppender);
+ assertTrue(checker.isErrorFree(0));
+ }
+
+
private AppenderTracker getAppenderTracker() {
SiftingAppender ha = (SiftingAppender) root.getAppender("SIFT");
return ha.getAppenderTracker();
@@ -161,7 +179,7 @@ private AppenderTracker getAppenderTracker() {
@Test
public void nestedWithinIfThen() throws JoranException {
configure(BlackboxClassicTestConstants.JORAN_INPUT_PREFIX + "conditional/siftNestedWithinIfThen.xml");
- StatusPrinter.print(loggerContext);
+ //statusPrinter2.print(loggerContext);
String msg = "nestedWithinIfThen";
logger.debug(msg);
Appender appender = getAppenderTracker().find("ifThenDefault");
@@ -172,4 +190,6 @@ public void nestedWithinIfThen() throws JoranException {
assertEquals(msg, eventList.get(0).getMessage());
checker.isWarningOrErrorFree(0);
}
+
+
}
diff --git a/logback-classic/src/test/input/joran/include/includeWithVariableAndConditional.xml b/logback-classic/src/test/input/joran/include/includeWithVariableAndConditional.xml
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/joran/JoranConfiguratorTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/joran/JoranConfiguratorTest.java
index eb51efecb8..44c1b45f5b 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/joran/JoranConfiguratorTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/joran/JoranConfiguratorTest.java
@@ -27,6 +27,7 @@
import ch.qos.logback.classic.turbo.DebugUsersTurboFilter;
import ch.qos.logback.classic.turbo.NOPTurboFilter;
import ch.qos.logback.classic.turbo.TurboFilter;
+import ch.qos.logback.classic.util.LogbackMDCAdapter;
import ch.qos.logback.core.ConsoleAppender;
import ch.qos.logback.core.CoreConstants;
import ch.qos.logback.core.encoder.LayoutWrappingEncoder;
@@ -51,6 +52,7 @@
import org.junit.jupiter.api.Test;
import org.slf4j.MDC;
import org.slf4j.event.KeyValuePair;
+import org.slf4j.spi.MDCAdapter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -72,6 +74,7 @@
public class JoranConfiguratorTest {
LoggerContext loggerContext = new LoggerContext();
+ MDCAdapter mdcAdapter = new LogbackMDCAdapter();
Logger logger = loggerContext.getLogger(this.getClass().getName());
Logger root = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME);
StatusPrinter2 statusPrinter2 = new StatusPrinter2();
@@ -79,6 +82,7 @@ public class JoranConfiguratorTest {
int diff = RandomUtil.getPositiveInt();
void configure(String file) throws JoranException {
+ loggerContext.setMDCAdapter(mdcAdapter);
JoranConfigurator jc = new JoranConfigurator();
jc.setContext(loggerContext);
loggerContext.putProperty("diff", "" + diff);
@@ -673,15 +677,15 @@ public void kvp() throws JoranException {
}
+ // See LOGBACK-1746
@Test
public void inclusionWithVariables() throws JoranException {
configure(ClassicTestConstants.JORAN_INPUT_PREFIX + "include/topLevel0.xml");
-
Logger root = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME);
- statusPrinter2.print(loggerContext);
+ //statusPrinter2.print(loggerContext);
assertEquals(Level.ERROR, root.getLevel());
}
-
+
// https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46697
@Test
public void ossFuzz_46697() throws JoranException {