docs: public static String getTotalStackTrace( final Throwable    exception )
      {
          if( isBroadestFirst() )
          {
              StringWriter    writer = new StringWriter();
              exception.printStackTrace( new PrintWriter( writer, true ) );
  
              return writer.toString();
          }
  
          //
          //     Reverse the order of the exceptions
          //
          List<Throwable>    exceps = new ArrayList<Throwable>();
          Throwable    rev = exception;
  
          while ( rev != null && rev.getCause() != rev )
          {
              exceps.add( 0, rev );
  
              rev = rev.getCause();
          }
  
          StringBuffer   buffer = new StringBuffer();
  
          for ( int ii = 0; ii < exceps.size(); ii++ )
          {
              Throwable    ex = exceps.get( ii );
              Throwable    parent = null;
              if ( ii != 0 )
              {
                  buffer.append( "\n\nIn context of:\n" );
                  parent = exceps.get( ii -1 );
              }
  
              buffer.append( ex.toString() );
              StackTraceElement[]    trace = ex.getStackTrace();
              for ( int jj=0; jj < trace.length; jj++)
              {
                  StackTraceElement    traceElement = trace[jj];
  
                  boolean    done = false;
                  if ( parent != null )
                  {
                      StackTraceElement[]    parentTrace = parent.getStackTrace();
                      for ( int kk=0; kk < parentTrace.length; kk++ )
                      {
                          if ( parentTrace[kk].equals( traceElement ) )
                          {
                              done = true;
                              break;
                          }
                      }
                  }
  
                  buffer.append("\n\tat " + traceElement );
  
                  if ( done )
                  {
                      buffer.append( "\n\t..." );
                      break;
                  }
              }
          }
  
          return buffer.toString();
      }