You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/08/30 12:38:58 UTC
[isis] 02/04: ISIS-1841: Internal API: new debug utility
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit ba97ffdf22468cc89e007595abcb7da44076c794
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Aug 30 07:50:13 2018 +0200
ISIS-1841: Internal API: new debug utility
for printing current thread's StackTrace
---
.../commons/internal/exceptions/_Exceptions.java | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java b/core/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java
index 6f7cca2..968f0f9 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java
@@ -19,8 +19,10 @@
package org.apache.isis.commons.internal.exceptions;
+import static org.apache.isis.commons.internal.base._NullSafe.stream;
import static org.apache.isis.commons.internal.base._With.requires;
+import java.io.PrintStream;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
@@ -31,7 +33,6 @@ import java.util.stream.Stream;
import javax.annotation.Nullable;
-import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.functions._Functions;
@@ -139,11 +140,25 @@ public final class _Exceptions {
if(ex==null) {
return Stream.empty();
}
- return _NullSafe.stream(ex.getStackTrace())
+ return stream(ex.getStackTrace())
.map(StackTraceElement::toString)
.limit(maxLines);
}
+ /**
+ * Dumps the current thread's stack-trace onto the given {@code writer}.
+ * @param writer
+ * @param skipLines
+ * @param maxLines
+ */
+ public static void dumpStackTrace(PrintStream writer, int skipLines, int maxLines) {
+ stream(Thread.currentThread().getStackTrace())
+ .map(StackTraceElement::toString)
+ .skip(skipLines)
+ .limit(maxLines)
+ .forEach(writer::println);
+ }
+
// -- CAUSAL CHAIN
public static List<Throwable> getCausalChain(@Nullable Throwable ex) {
@@ -279,7 +294,4 @@ public final class _Exceptions {
}
-
-
-
}