From 75ca814ba0bfd5df6f327180d996ed2c02d1083f Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Mon, 7 Feb 2022 10:22:18 +0100 Subject: [PATCH] [New] Use StackWalker instead of new Throwable().getStackTrace()[depth] --- .../java/li/strolch/utils/helper/ExceptionHelper.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/li.strolch.utils/src/main/java/li/strolch/utils/helper/ExceptionHelper.java b/li.strolch.utils/src/main/java/li/strolch/utils/helper/ExceptionHelper.java index bc96f3a2a..e3a7e61d8 100644 --- a/li.strolch.utils/src/main/java/li/strolch/utils/helper/ExceptionHelper.java +++ b/li.strolch.utils/src/main/java/li/strolch/utils/helper/ExceptionHelper.java @@ -39,13 +39,9 @@ public class ExceptionHelper { } public static String getCallerMethod(int depth) { - // TODO change to StackWalker: - // StackWalker walker = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE); - // walker.walk(frames -> frames.skip(1) - // .map((StackWalker.StackFrame s) -> s.getDeclaringClass() + "." + s.getMethodName()).findFirst()); - - StackTraceElement element = new Throwable().getStackTrace()[depth]; - return element.getClassName() + "." + element.getMethodName(); + return StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE) // + .walk(frames -> frames.map((StackWalker.StackFrame sf) -> sf.getClassName() + "." + sf.getMethodName()) + .skip(depth).findFirst()).orElse("UnknownClass.unknownMethod!"); } /**