code: @Override
      public void recoveryComplete() throws LogClosedException, InternalLogException, LogIncompatibleException, LogIncompatibleException {
          if (tc.isEntryEnabled())
              Tr.entry(tc, "recoveryComplete", this);
  
          // If this recovery log instance has been marked as incompatible then throw an exception
          // accordingly.
          if (incompatible()) {
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "recoveryComplete", "LogIncompatibleException");
              throw new LogIncompatibleException();
          }
  
          // If this recovery log instance has experienced a serious internal error then prevent this operation from
          // executing.
          if (failed()) {
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "recoveryComplete", this);
              throw new InternalLogException(null);
          }
  
          // Check that the log is open.
          if (_closesRequired == 0) {
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "recoveryComplete", "LogClosedException");
              throw new LogClosedException(null);
          }
  
          if (tc.isEntryEnabled())
              Tr.exit(tc, "recoveryComplete");
      }
docs: <p>
  Informs the RLS that any outstanding recovery process for the recovery log is
  complete. Client services may issue this call to give the RLS an opportunity
  to optomize log access by performing a keypoint operation. Client services do
  not have to issue this call.
  </p>
  
  <p>
  This call is separate from the <code>RecoveryDirector.recoveryComplete</code>
  method which must be invoked by a client service in response to a recovery
  request. The RecoveryDirector callback indicates that sufficient recovery
  processing has been performed to allow the request to be passed to the next
  client service. The recovery process may however still execute on a separate
  thread and call <code>RecoveryLog.recoveryComplete</code> when it has
  finished.
  </p>
  
  @exception LogClosedException Thrown if the recovery log is closed and must
  be opened before this call can be issued.
  @exception InternalLogException Thrown if an unexpected error has occured.
  @exception LogIncompatibleException An attempt has been made access a recovery
  log that is not compatible with this version
  of the service.