You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by sv...@apache.org on 2013/06/26 06:00:50 UTC

svn commit: r1496726 - in /subversion/branches/1.8.x: ./ STATUS subversion/libsvn_ra_serf/serf.c

Author: svn-role
Date: Wed Jun 26 04:00:50 2013
New Revision: 1496726

URL: http://svn.apache.org/r1496726
Log:
Merge the r1496132 group from trunk:

 * r1496132, r1496151
   Provide a more detailed error than APR_EGENERAL when a serf connection
   fails.
   Justification:
     Returning APR_EGENERAL for a very common error breaks all usable
     error handling in GUI clients. Serf should provide a better
     error that differentiates between separate problems.
   Votes:
     +1: rhuijben, stsp, danielsh

Modified:
    subversion/branches/1.8.x/   (props changed)
    subversion/branches/1.8.x/STATUS
    subversion/branches/1.8.x/subversion/libsvn_ra_serf/serf.c

Propchange: subversion/branches/1.8.x/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1496132,1496151

Modified: subversion/branches/1.8.x/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x/STATUS?rev=1496726&r1=1496725&r2=1496726&view=diff
==============================================================================
--- subversion/branches/1.8.x/STATUS (original)
+++ subversion/branches/1.8.x/STATUS Wed Jun 26 04:00:50 2013
@@ -160,16 +160,6 @@ Veto-blocked changes:
 Approved changes:
 =================
 
- * r1496132, r1496151
-   Provide a more detailed error than APR_EGENERAL when a serf connection
-   fails.
-   Justification:
-     Returning APR_EGENERAL for a very common error breaks all usable
-     error handling in GUI clients. Serf should provide a better
-     error that differentiates between separate problems.
-   Votes:
-     +1: rhuijben, stsp, danielsh
-
  * r1496110
    Prevent a segfault in svn_client_log5.
    Justification:

Modified: subversion/branches/1.8.x/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x/subversion/libsvn_ra_serf/serf.c?rev=1496726&r1=1496725&r2=1496726&view=diff
==============================================================================
--- subversion/branches/1.8.x/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/branches/1.8.x/subversion/libsvn_ra_serf/serf.c Wed Jun 26 04:00:50 2013
@@ -392,6 +392,7 @@ svn_ra_serf__open(svn_ra_session_t *sess
   svn_ra_serf__session_t *serf_sess;
   apr_uri_t url;
   const char *client_string = NULL;
+  svn_error_t *err;
 
   if (corrected_url)
     *corrected_url = NULL;
@@ -479,7 +480,14 @@ svn_ra_serf__open(svn_ra_session_t *sess
 
   session->priv = serf_sess;
 
-  return svn_ra_serf__exchange_capabilities(serf_sess, corrected_url, pool);
+  err = svn_ra_serf__exchange_capabilities(serf_sess, corrected_url, pool);
+
+  /* serf should produce a usable error code instead of APR_EGENERAL */
+  if (err && err->apr_err == APR_EGENERAL)
+    err = svn_error_createf(SVN_ERR_RA_DAV_REQUEST_FAILED, err,
+                            _("Connection to '%s' failed"), session_URL);
+
+  return svn_error_trace(err);
 }
 
 /* Implements svn_ra__vtable_t.reparent(). */