
backtrace.io.data.report.BacktraceStackTrace Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of backtrace-java Show documentation
Show all versions of backtrace-java Show documentation
Backtrace's integration with Java applications allows customers to capture and report handled and unhandled java exceptions.
The newest version!
package backtrace.io.data.report;
import java.io.Serializable;
import java.util.ArrayList;
/**
* Backtrace stack trace
*/
public class BacktraceStackTrace implements Serializable {
/**
* Current exception
*/
private Exception exception;
/**
* Collection of stacktrace elements
*/
private ArrayList stackFrames = new ArrayList<>();
private transient final static String NAME = "backtrace";
/**
* Create new instance of BacktraceStackTrace object
*
* @param exception current exception
*/
public BacktraceStackTrace(Exception exception) {
this.exception = exception;
this.stackFrames = gatherStacktraceInformation();
}
public ArrayList getStackFrames() {
return stackFrames;
}
/**
* Get collection of stacktrace elements from current exception/thread
* after filtering out frames from inside the Backtrace library
*
* @return collection of stacktrace frames
*/
private ArrayList gatherStacktraceInformation() {
StackTraceElement[] stackTraceElements = this.exception != null ?
this.exception.getStackTrace() : Thread.currentThread().getStackTrace();
if (stackTraceElements == null || stackTraceElements.length == 0) {
return null;
}
ArrayList result = new ArrayList<>();
for (StackTraceElement frame : stackTraceElements) {
if ((frame == null) || (frame.getClassName().isEmpty() && frame.getClassName().toLowerCase().startsWith(NAME)) ||
(frame.getClassName().toLowerCase().equals("java.lang.thread") && frame.getMethodName().equals("getStackTrace"))) {
continue;
}
result.add(new BacktraceStackFrame(frame));
}
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy