File tree Expand file tree Collapse file tree
exporters/logging/src/test/java/io/opentelemetry/exporter/logging Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2525import java .util .Collections ;
2626import java .util .concurrent .TimeUnit ;
2727import java .util .concurrent .atomic .AtomicBoolean ;
28+ import java .util .logging .Handler ;
2829import java .util .logging .Logger ;
2930import java .util .logging .SimpleFormatter ;
3031import java .util .logging .StreamHandler ;
@@ -101,6 +102,23 @@ public synchronized void flush() {
101102 assertThat (flushed .get ()).isTrue ();
102103 }
103104
105+ @ Test
106+ void flush_failure () {
107+ Handler failingHandler =
108+ new StreamHandler (new PrintStream (new ByteArrayOutputStream ()), new SimpleFormatter ()) {
109+ @ Override
110+ public synchronized void flush () {
111+ throw new RuntimeException ("Flush failed" );
112+ }
113+ };
114+ Logger .getLogger (LoggingMetricExporter .class .getName ()).addHandler (failingHandler );
115+ try {
116+ assertThat (exporter .flush ().isSuccess ()).isFalse ();
117+ } finally {
118+ Logger .getLogger (LoggingMetricExporter .class .getName ()).removeHandler (failingHandler );
119+ }
120+ }
121+
104122 @ Test
105123 void shutdown () {
106124 assertThat (exporter .shutdown ().isSuccess ()).isTrue ();
Original file line number Diff line number Diff line change 3131import java .util .Collections ;
3232import java .util .concurrent .TimeUnit ;
3333import java .util .concurrent .atomic .AtomicBoolean ;
34+ import java .util .logging .Handler ;
3435import java .util .logging .Logger ;
3536import java .util .logging .SimpleFormatter ;
3637import java .util .logging .StreamHandler ;
@@ -139,6 +140,23 @@ public synchronized void flush() {
139140 assertThat (flushed .get ()).isTrue ();
140141 }
141142
143+ @ Test
144+ void flush_failure () {
145+ Handler failingHandler =
146+ new StreamHandler (new PrintStream (new ByteArrayOutputStream ()), new SimpleFormatter ()) {
147+ @ Override
148+ public synchronized void flush () {
149+ throw new RuntimeException ("Flush failed" );
150+ }
151+ };
152+ Logger .getLogger (LoggingSpanExporter .class .getName ()).addHandler (failingHandler );
153+ try {
154+ assertThat (exporter .flush ().isSuccess ()).isFalse ();
155+ } finally {
156+ Logger .getLogger (LoggingSpanExporter .class .getName ()).removeHandler (failingHandler );
157+ }
158+ }
159+
142160 @ Test
143161 void shutdown () {
144162 assertThat (exporter .shutdown ().isSuccess ()).isTrue ();
You can’t perform that action at this time.
0 commit comments