Uploaded image for project: 'Commons VFS'
  1. Commons VFS
  2. VFS-428

DavException: (301) Moved Permanently



    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 2.0, 2.1
    • Fix Version/s: None
    • Labels:
    • Environment:

      Apache 2.2.22 as Testerver and setted up like http://commons.apache.org/vfs/testserver.html (but changed the 'crypt' password)


      Running the WebdavProviderTestCase using mvn -P webdav clean test -Dtest.webdav.uri=webdav://vfsusr:vfstest@localhost/vfstest -Dtest=WebdavProviderTestCase results in

      DavException: (301) Moved Permanently
      Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.645 sec <<< FAILURE!
      Results :
      Tests in error: 
        junit.framework.TestSuite@55c9be00(org.apache.commons.vfs2.provider.webdav.test.WebdavProviderTestCase$1): Could not determine the type of file "webdav://vfsusr:****@localhost/vfstest/read-tests".
      Tests run: 1, Failures: 0, Errors: 1, Skipped: 0

      The deeper Problem is, that the HttpClient using by VFS does not append a trailing slash and mod_dir of httpd has "DirectorySlash On" per default. So httpd send 301 redirect to the same url with / appended.
      I know that for this reason of problematic webdav client apache introduced "redirect-carefully" for some user agents using the "BrowserMatch" directive. So I just tried adding the following into my <Directory> directive

      BrowserMatch "^Jakarta-Commons-VFS" redirect-carefully
      BrowserMatch "^Jakarta Commons-HttpClient/3.0" redirect-carefully
      BrowserMatch "^Jakarta Commons-HttpClient/3.1" redirect-carefully

      Its needed to have Jakarta-Commons-VFS and Jakarta Commons-HttpClient because of two requests from commons vfs using two different user agents.
      But instead of solving the issue, I get for every FileObject.getChildren() call at least one FileObject of type imaginary with the same basename as the parent. Thats not a problem at all (besides that this is totally wrong!) but deleting a parent just dont work anymore, because of an non-existent imaginary file inside the dir which cannot be deleted of course.

      To cut a long story short, what is the right httpd webdav server config to use 2.0 Release version of VFS?


          Issue Links



              • Assignee:
                rkorn Robert Kornmesser
              • Votes:
                2 Vote for this issue
                7 Start watching this issue


                • Created: