You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2014/09/03 14:20:03 UTC

svn commit: r1622235 - /subversion/trunk/subversion/mod_dav_svn/lock.c

Author: rhuijben
Date: Wed Sep  3 12:20:03 2014
New Revision: 1622235

URL: http://svn.apache.org/r1622235
Log:
In mod_dav_svn: Properly forward post lock and post unlock failures that are
wrapped with different errors like SVN_ERR_REPOS_POST_LOCK_HOOK_FAILED,
instead of just reporting a generic message.

This will make 'svn' properly report:
svn: E165008: Locking succeeded, but post-lock hook failed
instead of
svn: E165008: Failed to create new lock.

which more accurately describes the result.

* subversion/mod_dav_svn/lock.c
  (append_locks,
   refresh_locks): Check for hook as error cause instead of only as
     outer error code.

Modified:
    subversion/trunk/subversion/mod_dav_svn/lock.c

Modified: subversion/trunk/subversion/mod_dav_svn/lock.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_dav_svn/lock.c?rev=1622235&r1=1622234&r2=1622235&view=diff
==============================================================================
--- subversion/trunk/subversion/mod_dav_svn/lock.c (original)
+++ subversion/trunk/subversion/mod_dav_svn/lock.c Wed Sep  3 12:20:03 2014
@@ -787,7 +787,7 @@ append_locks(dav_lockdb *lockdb,
                                 DAV_ERR_LOCK_SAVE_LOCK,
                                 "Anonymous lock creation is not allowed.");
     }
-  else if (serr && (serr->apr_err == SVN_ERR_REPOS_HOOK_FAILURE ||
+  else if (serr && (svn_error_find_cause(serr, SVN_ERR_REPOS_HOOK_FAILURE) ||
                     serr->apr_err == SVN_ERR_FS_NO_SUCH_LOCK ||
                     serr->apr_err == SVN_ERR_FS_LOCK_EXPIRED ||
                     SVN_ERR_IS_LOCK_ERROR(serr)))
@@ -1016,7 +1016,7 @@ refresh_locks(dav_lockdb *lockdb,
                                 DAV_ERR_LOCK_SAVE_LOCK,
                                 "Anonymous lock refreshing is not allowed.");
     }
-  else if (serr && (serr->apr_err == SVN_ERR_REPOS_HOOK_FAILURE ||
+  else if (serr && (svn_error_find_cause(serr, SVN_ERR_REPOS_HOOK_FAILURE) ||
                     serr->apr_err == SVN_ERR_FS_NO_SUCH_LOCK ||
                     serr->apr_err == SVN_ERR_FS_LOCK_EXPIRED ||
                     SVN_ERR_IS_LOCK_ERROR(serr)))