SVNKit does not properly URLEncode URLs in outbound HTTP requests (SVNKit <-> Jetty)

I wish to re-raise SVNKIT-491.
I am running into issues connecting Atlassian Fisheye to SCM-Manager. Fisheye is throwing exceptions about spaces being in the path name of files within my SVN repo. I believe this can be reduced to just examing SVNKit (Fisheye side) and Jetty (SCM Manager side). The above mentioned ticket had other users coming to the same conclusion. SVNKit is not encoding URLs properly, and Jetty; being a simplier web server; is just rejecting the connection rather than handling it gracefully.

Hello Brendan,
could you provide more information regardng the issue?

  • Do you mean that the problems with SVNKit happen on the client side (i.e. ‘jsvn’ command line utility or Fisheye itself or any SVNKit-based SVN client) or with SVNKit on the server side (SCM-Manager uses ‘svnkit-dav’ under the hood, so there’s SVNKit as well)? If you’re not sure (e.g. you have SVNKit both on the server and on the client), please try various combinations (e.g. TortoiseSVN (or native SVN cli) + SCM-Manager and Fisheye+mod_dav_svn) to find that out.
  • What exactly error do you see and what URL are you using (I’m mostly interested where does the space occur in the URL)? What is the operation that fails?
  • If the problem happens on the client side, could you create a test repository with the problem reproducible like Richard Stephens did?
  • If Fisheye has the error in the logs, the logs probably could be helpful.

The more information you provide, the better it is; the most desirable is to have a test reproducible for us and you that would indicate that the problem is still present.

I can access files with spaces through the SCM Manager web front end, as well as through TortoiseSVN. The issue certainly appears to be with SVNKit on the client side (Fisheye).

Tue Jun 23 11:12:49 ACST 2020: Repository paused due to error com.cenqua.fisheye.rep.RepositoryClientException: org.apache.subversion.javahl.ClientException: svn: E175002: PROPFIND of '/scm/repo/alt/test/!svn/ver/4/this is a file with spaces.txt': 400 Illegal character SPACE= (<redacted address>) org.apache.subversion.javahl.ClientException: svn: E175002: PROPFIND of '/scm/repo/alt/test/!svn/ver/4/this is a file with spaces.txt': 400 Illegal character SPACE= (<redacted address>) org.tmatesoft.svn.core.SVNException: svn: E175002: PROPFIND of '/scm/repo/alt/test/!svn/ver/4/this is a file with spaces.txt': 400 Illegal character SPACE= (<redacted address>) org.tmatesoft.svn.core.SVNException: svn: E175002: PROPFIND of '/scm/repo/alt/test/!svn/ver/4/this is a file with spaces.txt': 400 Illegal character SPACE= (<redacted address>)

This error occurs after Fisheye has completed scanning all changesets, and begins to index changesets. I belive Fisheye is running on of the following commands when it fails:

svn info -R -r 4 http://<redacted>/scm/repo/alt/test/this%20is%20a%20file%20with%20spaces.txt@4
svn diff --summarize -r 3:4 http://<redacted>/scm/repo/alt/test/@4

Yes. I will attach. Above error is caused by changeset 4 in this repo. svn_test_repo.zip (22.0 KB)

I don’t have immediate access to the logs, but could probably hunt these down if they might add more insight than the error above from Fisheye.