code: public synchronized Throwable initCause(Throwable cause) throws IllegalStateException, IllegalArgumentException {
          super.initCause(cause);
          ivCause = cause;
          causeInitialized = true;
          return this;
      }
docs: Initialize the cause field for this WsException to the specified value.
  The cause is the Throwable that caused this WsException to get thrown.
  <p>
  This method can be called at most once. It is generally called from within a constructor that takes a Throwable, or immediately after constructing this object with a
  constructor that does not accept a \ Throwable. Thus, if a constructor that takes Throwable as a parameter is used to construct this object, it cannot be called at all.
  <p>
  
  @param cause
  the Throwable which caused this WsException to be thrown.
  Null is tolerated.
  @return a reference to this <code>Throwable</code> instance.
  @exception IllegalArgumentException
  if the specified cause is this
  WsException. An exception cannot be its own cause.
  @exception IllegalStateException
  if this WsException was created with a
  constructor that specified a cause, or this method has already
  been
  called on this object.