code: private final synchronized void unlock()
                      throws ObjectManagerException
      {
          final String methodName = "unlock";
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this,
                          cclass,
                          methodName,
                          new Object[] { transactionLock });
  
          setState(nextStateForUnlock); // Make the state change. 
  
          transactionLock = new TransactionLock(null);
          numberOfLocksTaken = 0;
          notify(); // Wake up one waiter.
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this,
                         cclass,
                         methodName);
      }
docs: <p>
  Reverse the action of lock().
  The result from wasLocked will no longer apply after this method has executed.
  <\p>
  
  @throws ObjectManagerException