I think the problem comes from transaction.
I have created a resource /slide/files/y�
Next, if i execute the following code :
public static void testRenameSimple() throws HttpException, IOException {
HttpURL oHttpURL = new HttpURL("http://localhost:8082/slide/");
oHttpURL.setUserinfo("root", "root");
WebdavResource oWebdavResource = new WebdavResource(oHttpURL);
try {
oWebdavResource.setPath("/slide/files/y�");
} catch( HttpException e ) {
e.printStackTrace();
System.out.println( e.getReasonCode());
} catch (Exception e) {
e.printStackTrace();
}
}
=> No error.
The http request is well encoded :
<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
<D:prop><D:displayname/><D:getcontentlength/><D:getcontenttype/>
<D:resourcetype/><D:getlastmodified/><D:lockdiscovery/></D:prop>
</D:propfind>PROPFIND /slide/files/y%C3%A9 HTTP/1.1
Authorization: Basic cm9vdDpyb290
Content-Type: text/xml; charset=utf-8
User-Agent: Jakarta Commons-HttpClient/3.0-rc2
Host: localhost:8082
Cookie: $Version=0; JSESSIONID=88EC6B6A6234E029D8053339B6953881; $Path=/slide
Content-Length: 207
Depth: 0
If I had in my code, the notion of transaction :
public static void testRenameSimple() throws HttpException, IOException {
HttpURL oHttpURL = new HttpURL("http://localhost:8082/slide/");
oHttpURL.setUserinfo("root", "root");
WebdavResource oWebdavResource = new WebdavResource(oHttpURL);
oWebdavResource.startTransaction("root", 2000);
try {
oWebdavResource.setPath("/slide/files/y�");
oWebdavResource.commitTransaction();
} catch( HttpException e ) {
oWebdavResource.abortTransaction();
e.printStackTrace();
System.out.println( e.getReasonCode());
} catch (Exception e) {
oWebdavResource.abortTransaction();
e.printStackTrace();
}
}
I get :
java.lang.IllegalArgumentException: Invalid uri '/slide/files/y�': escaped
absolute path not valid
at
org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:219)
at
org.apache.webdav.lib.methods.HttpRequestBodyMethodBase.<init>(HttpRequestBodyMethodBase.java:73)
at
org.apache.webdav.lib.methods.XMLResponseMethodBase.<init>(XMLResponseMethodBase.java:92)
at
org.apache.webdav.lib.methods.UnlockMethod.<init>(UnlockMethod.java:85)
at
org.apache.webdav.lib.methods.UnlockMethod.<init>(UnlockMethod.java:69)
at
org.apache.webdav.lib.WebdavResource.endTransaction(WebdavResource.java:438)
at
org.apache.webdav.lib.WebdavResource.abortTransaction(WebdavResource.java:4370)
at
com.a2a.slide.test.TestSlideBindingFactory.testRenameSimple(TestSlideBindingFactory.java:173)
at
com.a2a.slide.test.TestSlideBindingFactory.main(TestSlideBindingFactory.java:198)
There is no http request sent.
Adding a transaction for a setPath is stupid.
It is just to show u that there is a problem.
-----Message d'origine-----
De�: Jacob Lund [mailto:[EMAIL PROTECTED]
Envoy�: mercredi 18 mai 2005 09:32
��: Slide Users Mailing List
Objet�: Re: Binding store & rename & accents
If you are using the files based store and windows then you have to have
following parameter on you java machine -Dfile.encoding=UTF-8 - otherwise
java will use local characterset instead of unicode in IO operations.
I am not familiar with the client lib, but I don't think that lib will do
the UTF-8 conversion for you. If I am correct the you will have to change
"/slide/files/test���" to "/slide/files/test%c3%a9%c3%a0%c3%b9".
/jacob
----- Original Message -----
From: "Laurent Michenaud" <[EMAIL PROTECTED]>
To: "Slide Users Mailing List" <[email protected]>
Sent: Wednesday, May 18, 2005 9:06 AM
Subject: RE: Binding store & rename & accents
Slide 2.1
Encoding : UTF-8
Client : Java Webdavlib
Store : BindingStore
The code :
HttpURL oHttpURL = new HttpURL("http://localhost:8080/slide");
oHttpURL.setUserinfo(SLIDE_ADMIN, SLIDE_PASSWORD);
WebdavResource oWebdavResource = new WebdavResource(oHttpURL);
oWebdavResource.startTransaction(SLIDE_ADMIN, SLIDE_TIMEOUT );
if ( oWebdavResource.moveMethod(
"/slide/files/test", "/slide/files/test���")) {
oWebdavResource.commitTransaction();
}
else oWebdavResource.abortTransaction();
oWebdavResource.close();
-----Message d'origine-----
De : Jacob Lund [mailto:[EMAIL PROTECTED]
Envoy� : mercredi 18 mai 2005 08:57
� : Slide Users Mailing List
Objet : Re: Binding store & rename & accents
Sounds like an encoding problem!
What version of slide are you using? What client? What encoding have you
configured?
/jacob
----- Original Message -----
From: "Laurent Michenaud" <[EMAIL PROTECTED]>
To: "Slide Users Mailing List" <[email protected]>
Sent: Tuesday, May 17, 2005 12:18 PM
Subject: Binding store & rename & accents
Hi,
I use the binding store.
If I try to rename a resource and the new resource name contains
accents, then
my resource disappears. I can't see it anymore.
In the console, I can see when I access the parent folder of my resource
:
http-8081-Processor20, 17-mai-2005 12:17:31, root, GET, 500 "Internal
Server Error", 16 ms, /files/workspaces
Any idea ?
Thanks
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]