public static Throwable sanitize(Throwable throwable) {
		if (throwable instanceof NGrinderRuntimeException) {
			if (((NGrinderRuntimeException) throwable).isSanitized()) {
				return throwable;
			}
		}
		Throwable t = throwable;
		while (t != null) {
			// Note that this getBoolean access may well be synced...
			StackTraceElement[] trace = t.getStackTrace();
			List<StackTraceElement> newTrace = CollectionUtils.newArrayList();
			for (StackTraceElement stackTraceElement : trace) {
				if (isApplicationClass(stackTraceElement.getClassName())) {
					newTrace.add(stackTraceElement);
				}
			}
			StackTraceElement[] clean = new StackTraceElement[newTrace.size()];
			newTrace.toArray(clean);
			t.setStackTrace(clean);
			t = t.getCause();
		}
		if (throwable instanceof NGrinderRuntimeException) {
			((NGrinderRuntimeException) throwable).setSanitized(true);
		}
		return throwable;
	}
Filter the stacktrace elements with only interesting one.

@param throwable	throwable
@return {@link Throwable} instance with interested stacktrace elements.
ngrinder-core/src/main/java/org/ngrinder/common/util/ExceptionUtils.java