3.1.4.5.3 Refresh Lock

If the ExclusiveLockRequestType attribute is set to "RefreshLock", the protocol server considers this exclusive lock subrequest to be of type "Refresh lock". The protocol server refreshes the exclusive lock on the file.

If the refresh of the exclusive lock fails because no exclusive lock exists on the file, the protocol server gets a new exclusive lock on the file. The protocol server returns an error code value set to "FileAlreadyLockedOnServer" if any one of the following conditions is true:

  • The protocol server is unable to refresh the lock on the file because a shared lock already exists on the file.

  • The protocol server is unable to refresh the lock on the file because an exclusive lock with a different exclusive lock identifier exists on the file.

If the protocol server encounters an error because the document is not checked out on the server and the file is saved to a document library that requires checking out files, the protocol server returns an error code value set to "DocumentCheckoutRequired". The "DocumentCheckoutRequired" error code value indicates to the protocol client that a checkout needs to be done before the file can be locked and the lock refreshed. The checkout of the file MUST be done by the client using the CheckoutFile web service call as specified in [MS-LISTSWS].

If the protocol server encounters an error in locking the file because a checkout has already been done by another client, the protocol server returns an error code value set to "FileAlreadyCheckedOutOnServer". If the protocol server encounters unknown exceptions or failures when trying to refresh the lock on the file, the protocol server returns an error code value that is set to "LockRequestFail" to indicate an unknown failure.

If any failure occurs such that the subrequest cannot be processed successfully, the protocol server returns an error. The error that the protocol server returns is implementation-specific. Errors that are directly returned by the protocol server are implementation-specific. GenericErrorCodeTypes is defined in section 2.2.5.6. DependencyCheckRelatedErrorCodeTypes is defined in section 2.2.5.2. LockAndCoauthRelatedErrorCodeTypes is defined in section 2.2.5.8.