db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Deepa Remesh (JIRA)" <derby-...@db.apache.org>
Subject [jira] Updated: (DERBY-683) Use correct encoding for ClobOutputStream on client
Date Wed, 01 Feb 2006 20:27:05 GMT
     [ http://issues.apache.org/jira/browse/DERBY-683?page=all ]

Deepa Remesh updated DERBY-683:
-------------------------------

    Attachment: derby-683.diff
                clob.java

Attaching a patch 'derby-683.diff'. 

The write methods in ClobOutputStream were using default encoding when constructing a String
from bytes. ClobOutputStream is the output stream returned by call to Clob.setAsciiStream.
This is meant to be a stream to which ascii encoded characters can be written. So the writes
to this stream should not be using default encoding.  This patch changes the write methods
to use String constructors with ascii encoding. 

Currently, I have a repro to test this. I am working on adding a test to the harness. This
requires some changes to the test harness and I would like to submit this as a separate patch.
To test this using the repro, run the following command on Windows with Sun JDK1.5:

java -Dfile.encoding=UTF-16 -Doutput.encoding=Cp1252 clob

With this patch, I have run derbyall on Windows with Sun JDK 1.4.2. No failures. It would
be good if someone can look at this patch and commit the code changes if they are okay. I
will submit the harness changes and a test in a separate patch.

> Use correct encoding for ClobOutputStream on client
> ---------------------------------------------------
>
>          Key: DERBY-683
>          URL: http://issues.apache.org/jira/browse/DERBY-683
>      Project: Derby
>         Type: Bug
>   Components: Network Client
>     Versions: 10.1.1.1, 10.1.1.0
>  Environment: all
>     Reporter: Sunitha Kambhampati
>     Assignee: Deepa Remesh
>      Fix For: 10.2.0.0
>  Attachments: ascii.txt, clob.java, derby-683.diff
>
> In client, there is code in ClobOutputStream which uses this api - new String(byte[]).
  Per the java api http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#String(byte[])
,this will construct a string by decoding the array of bytes using the platform's default
character set. 
> org.apache.derby.client.am.ClobOutputStream is used for Clob.setAsciiStream and the write
methods  use the String(byte[]) which is incorrect because it will use the default platform
encoding. Per the jdbcapi , this should use ascii encoding. 
> In areas related to Clobs, also check for other places where  String(byte[]) is used,as
it may not be the desired behavior. 
> Dan pointed this problem here : http://issues.apache.org/jira/browse/DERBY-463?page=comments#action_12356742

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message