[ 
https://issues.apache.org/jira/browse/WSCOMMONS-168?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rich Scheuerle resolved WSCOMMONS-168.
--------------------------------------

    Resolution: Fixed

Committed revision 508793.

> Multi-part boundary calculation is using the wrong character set.
> -----------------------------------------------------------------
>
>                 Key: WSCOMMONS-168
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-168
>             Project: WS-Commons
>          Issue Type: Bug
>          Components: AXIOM
>            Reporter: Rich Scheuerle
>         Assigned To: Rich Scheuerle
>
> MIMEOutputUtils uses the following code to write out the boundary
>  /**
>        * @throws IOException
>        *             This will write the boundary to output Stream
>        */
>     public static void writeMimeBoundary(OutputStream outStream,
>                                          String boundary) throws IOException {
>         outStream.write(new byte[]{45, 45});
>         outStream.write(boundary.getBytes());
>     }
> Note that 45 is the UTF-8 character for "-".  However the boundary bytes are 
> obtained using the default charset.  This code fails on an EBCDIC based 
> machine.
> The tactical solution is to change the code to make it consistent (see full 
> solution at the end of this remark):
>         outStream.write(new byte[]{45, 45});
>         outStream.write(boundary.getBytes("UTF-8"));  <---------------
> A similar change is needed in Attachments.java where the boundary is read:
> Currently:
>         // Boundary always have the prefix "--".
>         this.boundary = ("--" + contentType.getParameter("boundary"))
>                 .getBytes();
> Proposed:
>         // Boundary always have the prefix "--".
>         this.boundary = ("--" + contentType.getParameter("boundary"))
>                 .getBytes("UTF-8");  <-----------------------
> ----------------------------------------------------------------------
> The full solution is to change the code to respect the charset of the message.
> However, I believe that this will cause problems in the lower level boundary 
> delimitted stream code and other lower level classes.
> I believe the lower level classes have hard-code checks for UTF-8 characters 
> and assume 1-byte character lengths.
> This jira covers the tactical solution.  I will open a separate jira to 
> address the full solution.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to