commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Kornmesser (JIRA)" <>
Subject [jira] [Comment Edited] (VFS-428) DavException: (301) Moved Permanently
Date Mon, 23 Jul 2012 06:55:34 GMT


Robert Kornmesser edited comment on VFS-428 at 7/23/12 6:53 AM:

Tried it inside my own project, because Maven Test still fails and I dont know if i can set
a maven property to follow redirects.
To my own testcase fails to with this new error:

Unknown message with code "Unknown message with code "vfs.provider.webdav/propfind.error".".
org.apache.commons.vfs2.FileSystemException: Unknown message with code "Unknown message with
code "vfs.provider.webdav/propfind.error".".
	at org.apache.commons.vfs2.provider.webdav.WebdavFileObject.doListChildrenResolved(
	at org.apache.commons.vfs2.provider.AbstractFileObject.getChildren(
	at de.gfz.liferay.hooks.mediaRepository.webdav.TestWebdav.testLogin(
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(
	at java.lang.reflect.Method.invoke(
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(
	at org.junit.runners.ParentRunner.runLeaf(
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(
	at org.junit.runners.ParentRunner$
	at org.junit.runners.ParentRunner$1.schedule(
	at org.junit.runners.ParentRunner.runChildren(
	at org.junit.runners.ParentRunner.access$000(
	at org.junit.runners.ParentRunner$2.evaluate(
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(
Caused by: org.apache.commons.vfs2.FileSystemException: Unknown message with code "vfs.provider.webdav/propfind.error".
	at org.apache.commons.vfs2.provider.webdav.WebdavFileObject.getProperties(
	at org.apache.commons.vfs2.provider.webdav.WebdavFileObject.getProperties(
	at org.apache.commons.vfs2.provider.webdav.WebdavFileObject.getProperty(
	at org.apache.commons.vfs2.provider.webdav.WebdavFileObject.getProperty(
	at org.apache.commons.vfs2.provider.webdav.WebdavFileObject.isDirectory(
	at org.apache.commons.vfs2.provider.webdav.WebdavFileObject.doListChildrenResolved(
	... 25 more
Caused by: java.lang.IllegalArgumentException: Entity enclosing requests cannot be redirected
without user intervention
	at org.apache.commons.httpclient.methods.EntityEnclosingMethod.setFollowRedirects(
	at org.apache.commons.vfs2.provider.webdav.WebdavFileObject.setupMethod(
	at org.apache.commons.vfs2.provider.webdav.WebdavFileObject.getProperties(
	... 30 more
      was (Author: rkorn):
    Tried it inside my own project, because Maven Test still fails and I dont know if i can
set a maven property to follow redirects.
To my own testcase fails to with this new error:
> DavException: (301) Moved Permanently 
> --------------------------------------
>                 Key: VFS-428
>                 URL:
>             Project: Commons VFS
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.1
>         Environment: Apache 2.2.22 as Testerver and setted up like
(but changed the 'crypt' password)
>            Reporter: Robert Kornmesser
>            Priority: Blocker
>              Labels: webdav
> Running the WebdavProviderTestCase using mvn -P webdav clean test -Dtest.webdav.uri=webdav://vfsusr:vfstest@localhost/vfstest
-Dtest=WebdavProviderTestCase results in 
> {code}DavException: (301) Moved Permanently
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.645 sec <<<
> 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
> {code}
> 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
> {code}
> BrowserMatch "^Jakarta-Commons-VFS" redirect-carefully
> BrowserMatch "^Jakarta Commons-HttpClient/3.0" redirect-carefully
> BrowserMatch "^Jakarta Commons-HttpClient/3.1" redirect-carefully
> {code}
> 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?

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message