Index: jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java
===================================================================
--- jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java	(revision 581651)
+++ jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java	(working copy)
@@ -492,12 +492,17 @@
      *
      * @param sessionInfo
      * @param nodeId
-     * @return
-     * @throws LockException
-     * @throws RepositoryException
+     * @return The lock information for the Node identified by the given
+     * <code>nodeId</code>.
+     * @throws javax.jcr.UnsupportedRepositoryOperationException If this SPI
+     * implementation does not support locking at all.
+     * @throws javax.jcr.LockException If no lock applies to the <code>Node</code>
+     * identified by the given <code>nodeId</code>.
+     * @throws javax.jcr.AccessDeniedException
+     * @throws javax.jcr.RepositoryException If some other error occurs.
      * @see Node#getLock()
      */
-    public LockInfo getLockInfo(SessionInfo sessionInfo, NodeId nodeId) throws LockException, RepositoryException;
+    public LockInfo getLockInfo(SessionInfo sessionInfo, NodeId nodeId) throws UnsupportedRepositoryOperationException, LockException, AccessDeniedException, RepositoryException;
 
     /**
      * Create a lock on the <code>Node</code> identified by the given id.
@@ -506,15 +511,17 @@
      * @param nodeId
      * @param deep
      * @param sessionScoped
-     * @return returns the <code>LockInfo</code> associated with this lock.
-     * @throws javax.jcr.UnsupportedRepositoryOperationException
-     * @throws javax.jcr.lock.LockException
+     * @return returns the <code>LockInfo</code> associated with the new lock
+     * that has been created.
+     * @throws javax.jcr.UnsupportedRepositoryOperationException If this SPI
+     * implementation does not support locking at all.
+     * @throws javax.jcr.lock.LockException If the Node identified by the given
+     * id cannot be locked due to an existing lock or due to missing mixin type.
      * @throws javax.jcr.AccessDeniedException
-     * @throws javax.jcr.InvalidItemStateException
-     * @throws javax.jcr.RepositoryException
+     * @throws javax.jcr.RepositoryException If another error occurs.
      * @see javax.jcr.Node#lock(boolean, boolean)
      */
-    public LockInfo lock(SessionInfo sessionInfo, NodeId nodeId, boolean deep, boolean sessionScoped) throws UnsupportedRepositoryOperationException, LockException, AccessDeniedException, InvalidItemStateException, RepositoryException;
+    public LockInfo lock(SessionInfo sessionInfo, NodeId nodeId, boolean deep, boolean sessionScoped) throws UnsupportedRepositoryOperationException, LockException, AccessDeniedException, RepositoryException;
 
     /**
      * Explicit refresh of an existing lock. Existing locks should be refreshed
@@ -522,11 +529,16 @@
      *
      * @param sessionInfo
      * @param nodeId
-     * @throws javax.jcr.lock.LockException
-     * @throws javax.jcr.RepositoryException
-     * @see javax.jcr.lock.Lock#refresh()
+     * @throws javax.jcr.UnsupportedRepositoryOperationException If this SPI
+     * implementation does not support locking at all.
+     * @throws javax.jcr.LockException If the Node identified by the given
+     * id is not locked (any more) or if the <code>SessionInfo</code> does not
+     * contain the token associated with the lock to be refreshed.
+     * @throws javax.jcr.AccessDeniedException
+     * @throws javax.jcr.RepositoryException If another error occurs.
+     * @see javax.jcr.lock.Lock
      */
-    public void refreshLock(SessionInfo sessionInfo, NodeId nodeId) throws LockException, RepositoryException;
+    public void refreshLock(SessionInfo sessionInfo, NodeId nodeId) throws UnsupportedRepositoryOperationException, LockException, AccessDeniedException, RepositoryException;
 
     /**
      * Releases the lock on the <code>Node</code> identified by the given
@@ -536,14 +548,16 @@
      *
      * @param sessionInfo
      * @param nodeId
-     * @throws javax.jcr.UnsupportedRepositoryOperationException
-     * @throws javax.jcr.lock.LockException
+     * @throws javax.jcr.UnsupportedRepositoryOperationException If this SPI
+     * implementation does not support locking at all.
+     * @throws javax.jcr.lock.LockException If the Node identified by the given
+     * id is not locked or if the <code>SessionInfo</code> does not contain the
+     * token associated with the lock to be released.
      * @throws javax.jcr.AccessDeniedException
-     * @throws javax.jcr.InvalidItemStateException
-     * @throws javax.jcr.RepositoryException
+     * @throws javax.jcr.RepositoryException If another error occurs.
      * @see javax.jcr.Node#unlock()
      */
-    public void unlock(SessionInfo sessionInfo, NodeId nodeId) throws UnsupportedRepositoryOperationException, LockException, AccessDeniedException, InvalidItemStateException, RepositoryException;
+    public void unlock(SessionInfo sessionInfo, NodeId nodeId) throws UnsupportedRepositoryOperationException, LockException, AccessDeniedException, RepositoryException;
 
     //---------------------------------------------------------< Versioning >---
     /**
