/**
   * This method frees the <code>Clob</code> object and releases the resources that it holds. The
   * object is invalid once the <code>free</code> method is called. If <code>free</code> is called
   * multiple times, the subsequent calls to <code>free</code> are treated as a no-op.
   *
   * @throws SQLException if an error occurs releasing the Clob's resources
   */
  public void free() throws SQLException // @sync
      {
    if (locator_ == null) return; // no-op

    synchronized (locator_) // @sync
    {
      locator_.free();

      locator_ = null; // @pda make objects available for GC
      converter_ = null;
      savedObject_ = null;
      cache_ = null;
    }
  }