44
44
import ch .qos .logback .core .joran .spi .JoranException ;
45
45
import ch .qos .logback .core .pattern .parser .Parser ;
46
46
import ch .qos .logback .core .read .ListAppender ;
47
+ import ch .qos .logback .core .spi .ErrorCodes ;
47
48
import ch .qos .logback .core .spi .ScanException ;
48
49
import ch .qos .logback .core .status .Status ;
49
50
import ch .qos .logback .core .testUtil .RandomUtil ;
@@ -87,7 +88,6 @@ public void simpleList() throws JoranException {
87
88
@ Test
88
89
public void asyncWithMultipleAppendersInRoot () throws JoranException {
89
90
configure (ClassicTestConstants .JORAN_INPUT_PREFIX + "async/logback_1614.xml" );
90
- StatusPrinter .print (loggerContext );
91
91
Logger logger = loggerContext .getLogger (this .getClass ().getName ());
92
92
Logger root = loggerContext .getLogger (Logger .ROOT_LOGGER_NAME );
93
93
AsyncAppender asyncAppender = (AsyncAppender ) root .getAppender ("ASYNC" );
@@ -104,7 +104,6 @@ public void asyncWithMultipleAppendersInRoot() throws JoranException {
104
104
@ Test
105
105
public void simpleListWithImports () throws JoranException {
106
106
configure (ClassicTestConstants .JORAN_INPUT_PREFIX + "simpleListWithImports.xml" );
107
- StatusPrinter .print (loggerContext );
108
107
Logger logger = loggerContext .getLogger (this .getClass ().getName ());
109
108
Logger root = loggerContext .getLogger (Logger .ROOT_LOGGER_NAME );
110
109
ListAppender <ILoggingEvent > listAppender = (ListAppender <ILoggingEvent >) root .getAppender ("LIST" );
@@ -180,7 +179,6 @@ public void appenderRefSettingBySystemProperty() throws JoranException {
180
179
@ Test
181
180
public void statusListener () throws JoranException {
182
181
configure (ClassicTestConstants .JORAN_INPUT_PREFIX + "statusListener.xml" );
183
- StatusChecker checker = new StatusChecker (loggerContext );
184
182
checker .assertIsErrorFree ();
185
183
checker .assertContainsMatch (Status .WARN ,
186
184
"Please use \" level\" attribute within <logger> or <root> elements instead." );
@@ -189,8 +187,7 @@ public void statusListener() throws JoranException {
189
187
@ Test
190
188
public void statusListenerWithImports () throws JoranException {
191
189
configure (ClassicTestConstants .JORAN_INPUT_PREFIX + "statusListenerWithImports.xml" );
192
- StatusPrinter .print (loggerContext );
193
- StatusChecker checker = new StatusChecker (loggerContext );
190
+ //StatusPrinter.print(loggerContext);
194
191
checker .assertIsErrorFree ();
195
192
checker .assertContainsMatch (Status .WARN ,
196
193
"Please use \" level\" attribute within <logger> or <root> elements instead." );
@@ -397,7 +394,6 @@ public void encoderCharset() throws JoranException, IOException, InterruptedExce
397
394
398
395
assertEquals ("UTF-8" , encoder .getCharset ().displayName ());
399
396
400
- StatusChecker checker = new StatusChecker (loggerContext );
401
397
checker .assertIsErrorFree ();
402
398
}
403
399
@@ -419,7 +415,6 @@ public void levelChangePropagator0() throws JoranException, IOException, Interru
419
415
java .util .logging .Logger .getLogger (loggerName ).setLevel (java .util .logging .Level .INFO );
420
416
String configFileAsStr = ClassicTestConstants .JORAN_INPUT_PREFIX + "/jul/levelChangePropagator0.xml" ;
421
417
configure (configFileAsStr );
422
- StatusChecker checker = new StatusChecker (loggerContext );
423
418
424
419
checker .assertIsErrorFree ();
425
420
verifyJULLevel (loggerName , null );
@@ -435,7 +430,7 @@ public void levelChangePropagator1() throws JoranException, IOException, Interru
435
430
verifyJULLevel (loggerName , Level .INFO );
436
431
String configFileAsStr = ClassicTestConstants .JORAN_INPUT_PREFIX + "/jul/levelChangePropagator1.xml" ;
437
432
configure (configFileAsStr );
438
- StatusChecker checker = new StatusChecker ( loggerContext );
433
+
439
434
checker .assertIsErrorFree ();
440
435
verifyJULLevel (loggerName , Level .INFO ); //
441
436
verifyJULLevel ("a.b.c." + diff , Level .WARN );
@@ -569,7 +564,6 @@ public void unreferencedAppendersShouldBeSkipped() throws JoranException {
569
564
570
565
final ListAppender <ILoggingEvent > listAppenderA = (ListAppender <ILoggingEvent >) root .getAppender ("A" );
571
566
assertNotNull (listAppenderA );
572
- StatusChecker checker = new StatusChecker (loggerContext );
573
567
checker .assertContainsMatch (Status .WARN , "Appender named \\ [B\\ ] not referenced. Skipping further processing." );
574
568
}
575
569
@@ -628,7 +622,18 @@ public void kvp() throws JoranException {
628
622
assertTrue (slAppender .strList .get (2 ).contains ("null=\" " + kvpNullKey .value + "\" " + msg ));
629
623
assertTrue (slAppender .strList .get (3 ).contains (kvpNullValue .key + "=\" null\" " + msg ));
630
624
}
631
-
625
+
626
+
627
+ // https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46697
628
+ @ Test
629
+ public void ossFuzz_46697 () throws JoranException {
630
+ System .out .println ("==========" );
631
+ configure (ClassicTestConstants .JORAN_INPUT_PREFIX + "ossfuzz/fuzz-46697.xml" );
632
+
633
+ checker .assertContainsMatch (Status .ERROR , ErrorCodes .EMPTY_MODEL_STACK );
634
+ StatusPrinter .print (loggerContext );
635
+ }
636
+
632
637
// @Test
633
638
// public void doTest() throws JoranException {
634
639
// int LIMIT = 0;
0 commit comments