private static void append(Object O, Appendable out) { append(O==null ? "null" : O.toString(), out); }
private static void printMessage(Appendable out, int indent, String label, String message) { for(int c=0;c<indent;c++) append(' ', out); append(label, out); if(message==null) { appendln("null", out); } else { message=message.trim(); int messageLen=message.length(); for(int c=0;c<messageLen;c++) { char ch=message.charAt(c); if(ch=='\n') { int lineIndent=indent+label.length(); appendln(out); for(int d=0;d<lineIndent;d++) append(' ', out); } else if(ch!='\r') append(ch, out); } appendln(out); } }
appendln(out); appendln(" Time ", out); append(" ", out); try { appendln(new java.util.Date(System.currentTimeMillis()).toString(), out); } catch(Exception err) { append("Unable to display date: ", out); appendln(err.toString(), out); appendln(" Extra Information", out); for (Object ei : extraInfo) { append(" ", out); appendln(ei, out); Thread thread=Thread.currentThread(); appendln(" Thread", out); append(" ID..........: ", out); appendln(Long.toString(thread.getId()), out); append(" Name........: ", out); appendln(thread.getName(), out); append(" Daemon......: ", out); appendln(Boolean.toString(thread.isDaemon()), out); append(" Class.......: ", out); appendln(thread.getClass().getName(), out); append(" Priority....: ", out); appendln(thread.getPriority(), out); try { int maxPriority=TG.getMaxPriority(); appendln(" ThreadGroup", out);
private static void printThrowables(Throwable thrown, Appendable out, int indent, List<Throwable> closed) { for(int c=0;c<indent;c++) append(' ', out); appendln(thrown.getClass().getName(), out); printMessage(out, indent+4, "Message...........: ", thrown.getMessage()); SQLException sql=(SQLException)thrown; if(sql instanceof WrappedSQLException) printMessage(out, indent+4, "SQL Statement.....: ", ((WrappedSQLException)sql).getSqlString()); for(int c=0;c<(indent+4);c++) append(' ', out); append("SQL Error Code....: ", out); appendln(sql.getErrorCode(), out); for(int c=0;c<(indent+4);c++) append(' ', out); append("SQL State.........: ", out); appendln(sql.getSQLState(), out); } else if(thrown instanceof WrappedException) { Object[] wrappedInfo=wrapped.getExtraInfo(); if(wrappedInfo!=null && wrappedInfo.length>0) { for(int c=0;c<(indent+4);c++) append(' ', out); appendln("Extra Information", out); for (Object wi : wrappedInfo) { for(int d=0;d<(indent+8);d++) append(' ', out); appendln(wi, out); AccessControlException ace = (AccessControlException)thrown; Permission permission = ace.getPermission(); for(int c=0;c<(indent+4);c++) append(' ', out); append("Permission........: ", out); appendln(permission, out); if(permission!=null) { for(int c=0;c<(indent+4);c++) append(' ', out);