code: public synchronized void setException(Throwable ex) {
      if(_ex == null) {
        _ex = AutoBuffer.javaSerializeWritePojo(((ex instanceof DistributedException) ? (DistributedException) ex : new DistributedException(ex,false /* don't want this setException(ex) call in the stacktrace */)));
      }
    }
docs: Capture the first exception in _ex.  Later setException attempts are ignored.