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

DavException: (301) Moved Permanently

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.0, 2.1
    • None
    • Apache 2.2.22 as Testerver and setted up like http://commons.apache.org/vfs/testserver.html (but changed the 'crypt' password)

    Description

      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?

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              rkorn Robert Kornmesser
              Votes:
              2 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated: