/** * return the top n lines of this stack trace. * * <p>Example: ExceptionUtil.getStackTraceLines(exception, 10);</p> */ public static String getStackTraceLines(Throwable t, int numLines) { StringTokenizer tokens = new StringTokenizer(toString(t), "\n\r"); StringBuffer trace = new StringBuffer(); for (int i=0; i<numLines; i++) { String token = tokens.nextToken(); trace.append(token); trace.append(StringUtils.NEWLINE); } return trace.toString(); }
/** * return the top n lines of this stack trace. * * <p>Example: ExceptionUtil.getStackTraceLines(exception, 10);</p> * @param t the Throwable object * @param numLines number of lines we should trace down * @return String the String of stack trace lines */ public static String getStackTraceLines(Throwable t, int numLines) { StringTokenizer tokens = new StringTokenizer(toString(t), "\n\r"); StringBuffer trace = new StringBuffer(); for (int i=0; i<numLines; i++) { String token = tokens.nextToken(); trace.append(token); trace.append(StringUtils.NEWLINE); } return trace.toString(); }
/** * return the top n lines of this stack trace. * * <p>Example: ExceptionUtil.getStackTraceLines(exception, 10);</p> * @param t the Throwable object * @param numLines number of lines we should trace down * @return String the String of stack trace lines */ public static String getStackTraceLines(Throwable t, int numLines) { StringTokenizer tokens = new StringTokenizer(toString(t), "\n\r"); StringBuffer trace = new StringBuffer(); for (int i=0; i<numLines; i++) { String token = tokens.nextToken(); trace.append(token); trace.append(StringUtils.NEWLINE); } return trace.toString(); }
/** * Return the stack trace up to the first line that starts with prefix. * * <p>Example: ExceptionUtil.getStackTraceUpTo(exception, "jrunx.");</p> */ public static String getStackTraceUpTo(Throwable t, String prefix) { StringTokenizer tokens = new StringTokenizer(toString(t), "\n\r"); StringBuffer trace = new StringBuffer(); boolean done = false; String lookingFor = "at " + prefix; while (!done && tokens.hasMoreElements()) { String token = tokens.nextToken(); if (token.indexOf(lookingFor) == -1) trace.append(token); else done = true; trace.append(StringUtils.NEWLINE); } return trace.toString(); }
/** * Return the stack trace up to the first line that starts with prefix. * * <p>Example: ExceptionUtil.getStackTraceUpTo(exception, "jrunx.");</p> * @param t the Throwable object * @param prefix the prefix message that we are looking for * @return String the String of stack trace lines till the prefix message is located */ public static String getStackTraceUpTo(Throwable t, String prefix) { StringTokenizer tokens = new StringTokenizer(toString(t), "\n\r"); StringBuffer trace = new StringBuffer(); boolean done = false; String lookingFor = "at " + prefix; while (!done && tokens.hasMoreElements()) { String token = tokens.nextToken(); if (token.indexOf(lookingFor) == -1) trace.append(token); else done = true; trace.append(StringUtils.NEWLINE); } return trace.toString(); }
/** * Return the "nth" method call from the stack trace of "t", where 0 is * the top. */ public static String getCallAt(Throwable t, int nth) { StringTokenizer tokens = new StringTokenizer(toString(t), "\n\r"); try { // Skip the first line - the exception message for(int i = 0; i <= nth; ++i) tokens.nextToken(); // get the method name from the next token String token = tokens.nextToken(); int index1 = token.indexOf(' '); int index2 = token.indexOf('('); StringBuffer call = new StringBuffer(); call.append(token.substring(index1 < 0 ? 0 : index1 + 1, index2 < 0 ? call.length() : index2)); int index3 = token.indexOf(':', index2 < 0 ? 0 : index2); if(index3 >= 0) { int index4 = token.indexOf(')', index3); call.append(token.substring(index3, index4 < 0 ? token.length() : index4)); } return call.toString(); } catch(NoSuchElementException e) {} return "unknown"; }
/** * Return the stack trace up to the first line that starts with prefix. * * <p>Example: ExceptionUtil.getStackTraceUpTo(exception, "jrunx.");</p> * @param t the Throwable object * @param prefix the prefix message that we are looking for * @return String the String of stack trace lines till the prefix message is located */ public static String getStackTraceUpTo(Throwable t, String prefix) { StringTokenizer tokens = new StringTokenizer(toString(t), "\n\r"); StringBuffer trace = new StringBuffer(); boolean done = false; String lookingFor = "at " + prefix; while (!done && tokens.hasMoreElements()) { String token = tokens.nextToken(); if (token.indexOf(lookingFor) == -1) trace.append(token); else done = true; trace.append(StringUtils.NEWLINE); } return trace.toString(); }
/** * Utility method for converting an exception and all chained root causes into a * string. Unlike <code>exceptionToString(Throwable)</code> which prints the chain * from most nested root cause down to the top-level exception, this method prints * from the top-level exception down to the most nested root cause. * * @param t The throwable exception. * @return The printable exception. */ public static String exceptionFollowedByRootCausesToString(Throwable t) { StringBuffer output = new StringBuffer(); Throwable root = t; while (root != null) { output.append((root == t) ? ((root instanceof Exception) ? " Exception: " : " Error: ") : " Root cause: "); output.append(ExceptionUtil.toString(root)); // Do not recurse if the root cause has already been printed; this will have happened if the root cause has // been assigned to the current Throwable via initCause() or as a constructor argument. Throwable cause = root.getCause(); root = ExceptionUtil.wrappedException(root); if (cause == root) break; } return output.toString(); }
/** * Utility method for converting an exception and all chained root causes into a * string. Unlike <code>exceptionToString(Throwable)</code> which prints the chain * from most nested root cause down to the top-level exception, this method prints * from the top-level exception down to the most nested root cause. * * @param t The throwable exception. * @return The printable exception. */ public static String exceptionFollowedByRootCausesToString(Throwable t) { StringBuffer output = new StringBuffer(); Throwable root = t; while (root != null) { output.append((root == t) ? ((root instanceof Exception) ? " Exception: " : " Error: ") : " Root cause: "); output.append(ExceptionUtil.toString(root)); // Do not recurse if the root cause has already been printed; this will have happened if the root cause has // been assigned to the current Throwable via initCause() or as a constructor argument. Throwable cause = root.getCause(); root = ExceptionUtil.wrappedException(root); if (cause == root) break; } return output.toString(); }
StringTokenizer tokens = new StringTokenizer(toString(t), "\n\r"); try
/** * Utility method for converting an exception and all chained root causes into a * string. Unlike <code>exceptionToString(Throwable)</code> which prints the chain * from most nested root cause down to the top-level exception, this method prints * from the top-level exception down to the most nested root cause. * * @param t The throwable exception. * @return The printable exception. */ public static String exceptionFollowedByRootCausesToString(Throwable t) { StringBuffer output = new StringBuffer(); Throwable root = t; while (root != null) { output.append((root == t) ? ((root instanceof Exception) ? " Exception: " : " Error: ") : " Root cause: "); output.append(ExceptionUtil.toString(root)); // Do not recurse if the root cause has already been printed; this will have happened if the root cause has // been assigned to the current Throwable via initCause() or as a constructor argument. Throwable cause = root.getCause(); root = ExceptionUtil.wrappedException(root); if (cause == root) break; } return output.toString(); }
StringTokenizer tokens = new StringTokenizer(toString(t), "\n\r"); try
/** * This is usually an array so might as well format it nicely in * this case. */ protected final String bodyToString(Object body, int indentLevel, Map visited) { try { indentLevel = indentLevel + 1; if (visited == null && indentLevel > 18) return StringUtils.NEWLINE + getFieldSeparator(indentLevel) + "<..max-depth-reached..>"; return internalBodyToString(body, indentLevel, visited); } catch (RuntimeException exc) { return "Exception in body toString: " + ExceptionUtil.toString(exc); } }
/** * This is usually an array so might as well format it nicely in * this case. */ protected final String bodyToString(Object body, int indentLevel, Map visited) { try { indentLevel = indentLevel + 1; if (visited == null && indentLevel > 18) return StringUtils.NEWLINE + getFieldSeparator(indentLevel) + "<..max-depth-reached..>"; return internalBodyToString(body, indentLevel, visited); } catch (RuntimeException exc) { return "Exception in body toString: " + ExceptionUtil.toString(exc); } }
/** * This is usually an array so might as well format it nicely in * this case. */ protected final String bodyToString(Object body, int indentLevel, Map visited) { try { indentLevel = indentLevel + 1; if (visited == null && indentLevel > 18) return StringUtils.NEWLINE + getFieldSeparator(indentLevel) + "<..max-depth-reached..>"; return internalBodyToString(body, indentLevel, visited); } catch (RuntimeException exc) { return "Exception in body toString: " + ExceptionUtil.toString(exc); } }
static Session getSession(Request request, boolean create) { HttpServletRequest hreq = (HttpServletRequest)request.getRequest(); HttpSession hses = hreq.getSession(create); if (hses == null) return null; Manager manager = request.getContext().getManager(); if (manager == null) return null; try { return manager.findSession(hses.getId()); } catch (IOException e) { Log.getLogger(LogCategories.SECURITY).error("Error in TomcatValve getting session id " + hses.getId() + " : " + ExceptionUtil.toString(e)); return null; } }
log.error("Failed to introspect object of type: " + c + " error: " + ExceptionUtil.toString(ex));
static Session getSession(Request request, boolean create) { HttpServletRequest hreq = (HttpServletRequest)request.getRequest(); HttpSession hses = hreq.getSession(create); if (hses == null) return null; Manager manager = request.getContext().getManager(); if (manager == null) return null; try { return manager.findSession(hses.getId()); } catch (IOException e) { Log.getLogger(LogCategories.SECURITY).error("Error in TomcatValve getting session id " + hses.getId() + " : " + ExceptionUtil.toString(e)); return null; } }
static Session getSession(HttpRequest request, boolean create) { HttpServletRequest hreq = (HttpServletRequest) request.getRequest(); HttpSession hses = hreq.getSession(create); if (hses == null) return (null); Manager manager = request.getContext().getManager(); if (manager == null) return (null); else { try { return (manager.findSession(hses.getId())); } catch (IOException e) { Log.getLogger(LogCategories.SECURITY).error("Error in TomcatValve getting session id " + hses.getId() + " : " + ExceptionUtil.toString(e)); return (null); } } }
logger.error(message + StringUtils.NEWLINE + ExceptionUtil.toString(t));