> Mailing-List: contact [EMAIL PROTECTED]; run by ezmlm
> Reply-To: "Slide Developers Mailing List" <[EMAIL PROTECTED]>
> From: "Pill, Juergen" <[EMAIL PROTECTED]>
> Date: Mon, 3 Mar 2003 11:32:04 +0100 
> X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N
> X-OriginalArrivalTime: 03 Mar 2003 10:32:14.0124 (UTC) FILETIME=[27DDF6C0:01C2E170]
> 
> Hello Ingo, Rob,
> 
> I think your patch does work for most cases (as utf-8 is mostly the default
> used encoding), but if the XML document is using a different encoding,
> things may break.
> I can see another problem: If the application decided to set the
> content-type header to the used encoding, the current implementation would
> overwrite the application's setting, isn't it.
That's right. Before setting the Content-Type header we could check if
it is already set and, if so, leave it untouched.

> 
> Rob, if I understand your mail correctly, the encoding problem arises only,
> if the body is set as a string (as the httpClient needs to convert the
> string into bytes). Couldn't we make the patch to work only in this specific
> case (string needs to be converted to byte and the content header was not
> set before).
The patch only affects setRequestBody(String bodydata) in
HttpRequestBodyMethodBase and hence only the case, when the body is
set as a String. And taking the charset specified in the Content-Type
header into account for the conversion from String to byte[] makes
sense to me.

Regards,
Ingo

> 
> Best regards
> 
> Juergen
> 
> 
> 
> 
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
> Sent: Donnerstag, 27. Februar 2003 11:58
> To: [EMAIL PROTECTED]
> Subject: cvs commit:
> jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods
> SearchMethod.java ReportMethod.java PropPatchMethod.java PropFindMethod.java
> OptionsMethod.java LockMethod.java LabelMethod.java
> HttpRequestBodyMethodBase.java AclMethod.java
> 
> ib          2003/02/27 02:58:26
> 
>   Modified:    src/webdav/client/src/org/apache/webdav/lib/methods
>                         SearchMethod.java ReportMethod.java
>                         PropPatchMethod.java PropFindMethod.java
>                         OptionsMethod.java LockMethod.java LabelMethod.java
>                         HttpRequestBodyMethodBase.java AclMethod.java
>   Log:
>   Fix charset encoding for certain WebDAV methods by setting the
>   Content-Type header before setting the request body
>   
>   Submitted by: Rob Owen ([EMAIL PROTECTED])
>   
>   Revision  Changes    Path
>   1.8       +4 -4
> jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/SearchMeth
> od.java
>   
>   Index: SearchMethod.java
>   ===================================================================
>   RCS file:
> /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/
> SearchMethod.java,v
>   retrieving revision 1.7
>   retrieving revision 1.8
>   diff -u -r1.7 -r1.8
>   --- SearchMethod.java       16 Dec 2002 15:17:28 -0000      1.7
>   +++ SearchMethod.java       27 Feb 2003 10:58:25 -0000      1.8
>   @@ -216,8 +216,8 @@
>        public void addRequestHeaders(HttpState state, HttpConnection conn)
>        throws IOException, HttpException {
>    
>   -        super.addRequestHeaders(state, conn);
>            super.setRequestHeader("Content-Type", "text/xml;
> charset=utf-8");
>   +        super.addRequestHeaders(state, conn);
>    
>        }
>    
>   
>   
>   
>   1.6       +5 -5
> jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/ReportMeth
> od.java
>   
>   Index: ReportMethod.java
>   ===================================================================
>   RCS file:
> /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/
> ReportMethod.java,v
>   retrieving revision 1.5
>   retrieving revision 1.6
>   diff -u -r1.5 -r1.6
>   --- ReportMethod.java       16 Dec 2002 15:17:28 -0000      1.5
>   +++ ReportMethod.java       27 Feb 2003 10:58:26 -0000      1.6
>   @@ -366,9 +366,9 @@
>        public void addRequestHeaders(HttpState state, HttpConnection conn)
>        throws IOException, HttpException {
>    
>   -        super.addRequestHeaders(state, conn);
>   -
>            super.setRequestHeader("Content-Type", "text/xml;
> charset=utf-8");
>   +
>   +        super.addRequestHeaders(state, conn);
>    
>            switch (depth) {
>            case DEPTH_0:
>   
>   
>   
>   1.24      +5 -5
> jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/PropPatchM
> ethod.java
>   
>   Index: PropPatchMethod.java
>   ===================================================================
>   RCS file:
> /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/
> PropPatchMethod.java,v
>   retrieving revision 1.23
>   retrieving revision 1.24
>   diff -u -r1.23 -r1.24
>   --- PropPatchMethod.java    16 Dec 2002 15:17:28 -0000      1.23
>   +++ PropPatchMethod.java    27 Feb 2003 10:58:26 -0000      1.24
>   @@ -225,9 +225,9 @@
>        public void addRequestHeaders(HttpState state, HttpConnection conn)
>        throws IOException, HttpException {
>    
>   -        super.addRequestHeaders(state, conn);
>   -
>            super.setRequestHeader("Content-Type", "text/xml;
> charset=utf-8");
>   +
>   +        super.addRequestHeaders(state, conn);
>    
>        }
>    
>   
>   
>   
>   1.33      +5 -5
> jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/PropFindMe
> thod.java
>   
>   Index: PropFindMethod.java
>   ===================================================================
>   RCS file:
> /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/
> PropFindMethod.java,v
>   retrieving revision 1.32
>   retrieving revision 1.33
>   diff -u -r1.32 -r1.33
>   --- PropFindMethod.java     16 Dec 2002 15:17:28 -0000      1.32
>   +++ PropFindMethod.java     27 Feb 2003 10:58:26 -0000      1.33
>   @@ -375,9 +375,9 @@
>        public void addRequestHeaders(HttpState state, HttpConnection conn)
>        throws IOException, HttpException {
>    
>   -        super.addRequestHeaders(state, conn);
>   -
>            super.setRequestHeader("Content-Type", "text/xml;
> charset=utf-8");
>   +
>   +        super.addRequestHeaders(state, conn);
>    
>            switch (depth) {
>            case DEPTH_0:
>   
>   
>   
>   1.15      +5 -5
> jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/OptionsMet
> hod.java
>   
>   Index: OptionsMethod.java
>   ===================================================================
>   RCS file:
> /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/
> OptionsMethod.java,v
>   retrieving revision 1.14
>   retrieving revision 1.15
>   diff -u -r1.14 -r1.15
>   --- OptionsMethod.java      16 Dec 2002 15:17:28 -0000      1.14
>   +++ OptionsMethod.java      27 Feb 2003 10:58:26 -0000      1.15
>   @@ -343,13 +343,13 @@
>            //get and set header
>         public void addRequestHeaders(HttpState state, HttpConnection conn)
>         throws IOException, HttpException {
>   -
>   -         super.addRequestHeaders(state, conn);
>             
>             if (type!= 0){
>                super.setRequestHeader("Content-Type", "text/xml;
> charset=utf-8");
>                //System.out.println("Content-Type set" );
>             }
>   +
>   +         super.addRequestHeaders(state, conn);
>         }
>    
>    /**
>   
>   
>   
>   1.34      +4 -5
> jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/LockMethod
> .java
>   
>   Index: LockMethod.java
>   ===================================================================
>   RCS file:
> /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/
> LockMethod.java,v
>   retrieving revision 1.33
>   retrieving revision 1.34
>   diff -u -r1.33 -r1.34
>   --- LockMethod.java 16 Dec 2002 15:17:28 -0000      1.33
>   +++ LockMethod.java 27 Feb 2003 10:58:26 -0000      1.34
>   @@ -439,6 +439,7 @@
>        public void addRequestHeaders(HttpState state, HttpConnection conn)
>        throws IOException, HttpException {
>    
>   +        super.setRequestHeader("Content-Type", "text/xml;
> charset=utf-8");
>            super.addRequestHeaders(state, conn);
>    
>            switch (depth) {
>   @@ -460,8 +461,6 @@
>            if (isRefresh()) {
>                super.setRequestHeader("If", "(<" + refreshOpaqueToken +
> ">)");
>            }
>   -
>   -        super.setRequestHeader("Content-Type", "text/xml;
> charset=utf-8");
>    
>        }
>    
>   
>   
>   
>   1.9       +4 -4
> jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/LabelMetho
> d.java
>   
>   Index: LabelMethod.java
>   ===================================================================
>   RCS file:
> /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/
> LabelMethod.java,v
>   retrieving revision 1.8
>   retrieving revision 1.9
>   diff -u -r1.8 -r1.9
>   --- LabelMethod.java        16 Dec 2002 15:17:28 -0000      1.8
>   +++ LabelMethod.java        27 Feb 2003 10:58:26 -0000      1.9
>   @@ -204,8 +204,8 @@
>         */
>        public void addRequestHeaders(HttpState state, HttpConnection conn)
>        throws IOException, HttpException {
>   -        super.addRequestHeaders(state, conn);
>            super.setRequestHeader("Content-Type", "text/xml;
> charset=utf-8");
>   +        super.addRequestHeaders(state, conn);
>        }
>    
>        /**
>   
>   
>   
>   1.4       +5 -4
> jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/HttpReques
> tBodyMethodBase.java
>   
>   Index: HttpRequestBodyMethodBase.java
>   ===================================================================
>   RCS file:
> /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/
> HttpRequestBodyMethodBase.java,v
>   retrieving revision 1.3
>   retrieving revision 1.4
>   diff -u -r1.3 -r1.4
>   --- HttpRequestBodyMethodBase.java  16 Dec 2002 16:46:00 -0000      1.3
>   +++ HttpRequestBodyMethodBase.java  27 Feb 2003 10:58:26 -0000      1.4
>   @@ -75,6 +75,7 @@
>    import org.apache.commons.httpclient.HttpMethodBase;
>    import org.apache.commons.httpclient.HttpState;
>    import org.apache.commons.httpclient.HttpStatus;
>   +import org.apache.commons.httpclient.HttpConstants;
>    
>    
>    /**
>   @@ -171,7 +172,7 @@
>         */
>        public void setRequestBody(String bodydata) {
>            checkNotUsed();
>   -        setRequestBody(bodydata.getBytes());
>   +        setRequestBody(HttpConstants.getContentBytes(bodydata,
> getRequestCharSet()));
>        }
>    
>        /**
>   
>   
>   
>   1.9       +4 -4
> jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/AclMethod.
> java
>   
>   Index: AclMethod.java
>   ===================================================================
>   RCS file:
> /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/
> AclMethod.java,v
>   retrieving revision 1.8
>   retrieving revision 1.9
>   diff -u -r1.8 -r1.9
>   --- AclMethod.java  16 Dec 2002 15:17:28 -0000      1.8
>   +++ AclMethod.java  27 Feb 2003 10:58:26 -0000      1.9
>   @@ -148,8 +148,8 @@
>        public void addRequestHeaders(HttpState state, HttpConnection conn)
>        throws IOException, HttpException {
>    
>   -        super.addRequestHeaders(state, conn);
>            super.setRequestHeader("Content-Type", "text/xml;
> charset=utf-8");
>   +        super.addRequestHeaders(state, conn);
>    
>        }
>    
>   
>   
>   
> 
> ---------------------------------------------------------------------
> 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]

Reply via email to