From: Stephen Kitt Date: Thu, 7 Sep 2017 11:38:14 +0000 (+0200) Subject: TracingBroker: collapse ellipses X-Git-Tag: release/oxygen~76 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=d3d5d329914eddb066680f7e22ce5dd7c09616e7 TracingBroker: collapse ellipses This avoids printing multiple "(...)" lines in succession. (The test is made a little more change-resistant by removing the expected line number.) Change-Id: I9ede5d0d15afecb06c61cbe2b2c5a70967616280 Signed-off-by: Stephen Kitt --- diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingBroker.java b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingBroker.java index 84e8c02fad..2aa7457ee2 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingBroker.java +++ b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingBroker.java @@ -421,13 +421,16 @@ public class TracingBroker implements TracingDOMDataBroker { } private void printStackTraceElements(PrintStream ps, String indent, List stackTraceElements) { - stackTraceElements.forEach(line -> { - if (isStackTraceElementInteresting(line)) { - ps.println(indent + line); - } else { + boolean ellipsis = false; + for (final StackTraceElement stackTraceElement : stackTraceElements) { + if (isStackTraceElementInteresting(stackTraceElement)) { + ps.println(indent + stackTraceElement); + ellipsis = false; + } else if (!ellipsis) { ps.println(indent + "(...)"); + ellipsis = true; } - }); + } } private boolean isStackTraceElementInteresting(StackTraceElement element) { diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/test/java/org/opendaylight/controller/md/sal/trace/tests/TracingBrokerTest.java b/opendaylight/md-sal/mdsal-trace/dom-impl/src/test/java/org/opendaylight/controller/md/sal/trace/tests/TracingBrokerTest.java index 3179b2a20d..63629f6c8c 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/test/java/org/opendaylight/controller/md/sal/trace/tests/TracingBrokerTest.java +++ b/opendaylight/md-sal/mdsal-trace/dom-impl/src/test/java/org/opendaylight/controller/md/sal/trace/tests/TracingBrokerTest.java @@ -49,9 +49,17 @@ public class TracingBrokerTest { assertThat(printReturnValue).isTrue(); // Assert expections about stack trace - assertThat(output).contains("testPrintOpenTransactions(TracingBrokerTest.java:41)"); + assertThat(output).contains("testPrintOpenTransactions(TracingBrokerTest.java"); assertThat(output).doesNotContain(TracingBroker.class.getName()); + String previousLine = ""; + for (String line : output.split("\n")) { + if (line.contains("(...")) { + assertThat(previousLine.contains("(...)")).isFalse(); + } + previousLine = line; + } + // We don't do any verify/times on the mocks, // because the main point of the test is just to verify that // printOpenTransactions runs through without any exceptions