On 24.05.2017 19:59, Branko Čibej wrote:
On 24.05.2017 19:37, Branko Čibej wrote:
On 24.05.2017 12:19, Marc Strapetz wrote:
I have following Apache virtual host configuration which contains a
redirect:

  RedirectMatch 301 ^/svntest/(.*)$ /svntests/$1

  <Location /svntests>
    DAV svn
    SVNParentPath /misc/svntests
    ...
  </Location>

When trying to access a redirected repository from command line, this
works fine:

$ svn ls https://host/svntest/test1
Redirecting to URL 'https://host/svntests/test1':
project1/

When trying to access using JavaHL, a "Redirect cycle detected for
URL" SubversionException is thrown. Code snippet:

RemoteFactory remoteFactory = new RemoteFactory();
remoteFactory.openRemoteSession("https://host/svntest/test1";, 100);

As the definition is not cyclic and retryAttempts=100 should be
sufficient, it looks like there is a JavaHL problem related to redirects?
Could be a bug in the redirect detection logic in JavaHL. I'll take a look.

Can you try this patch, please?

Index: subversion/bindings/javahl/native/RemoteSession.cpp
===================================================================
--- subversion/bindings/javahl/native/RemoteSession.cpp (revision 1796083)
+++ subversion/bindings/javahl/native/RemoteSession.cpp (working copy)
@@ -214,8 +214,9 @@ RemoteSession::RemoteSession(int retryAttempts,
           cycle_detected = true;
           break;
         }
-      /* ### Shouldn't url be updated for the next attempt?
-         ### There is no real cycle if we just do the same thing twice? */
+
+      url = corrected_url;
+      corrected_url = NULL;
     }

   if (cycle_detected)

Thanks, Brane! We have applied the patch to 1.9.x branch and I can confirm that it's working. Will it be possible to backport the patch to 1.9.x branch in the Subversion repository, too?

-Marc

Reply via email to