if(!isClosed(cause, closed)) { closed.add(cause); for(int c=0;c<(indent+4);c++) append(' ', out); Throwable cause=thrown.getCause(); if(cause!=null) { if(!isClosed(cause, closed)) { closed.add(cause); for(int c=0;c<(indent+4);c++) append(' ', out); Throwable rootCause=(Throwable)method.invoke(thrown); if(rootCause!=null) { if(!isClosed(rootCause, closed)) { closed.add(rootCause); for(int c=0;c<(indent+4);c++) append(' ', out); Throwable rootCause=(Throwable)method.invoke(thrown); if(rootCause!=null) { if(!isClosed(rootCause, closed)) { closed.add(rootCause); for(int c=0;c<(indent+4);c++) append(' ', out); SQLWarning nextSQL=((SQLWarning)thrown).getNextWarning(); if(nextSQL!=null) { if(!isClosed(nextSQL, closed)) { closed.add(nextSQL); printThrowables(nextSQL, out, indent, closed); SQLException nextSQL=((SQLException)thrown).getNextException();