db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-902) Remove use of String(byte[]) and String(byte[], int, int) constructors in engine leading to non-portable behaviour
Date Fri, 17 Feb 2006 01:31:25 GMT
    [ http://issues.apache.org/jira/browse/DERBY-902?page=comments#action_12366733 ] 

Kathey Marsden commented on DERBY-902:

As I recall, the way this works is that the contents of the String do make it across the wire
to the client, but the client just passes the contents back as a parameter to the SQLCAMESSAGE
stored procedure, so the client itself does not know what the separation characters are. 
 (I think )

Also note there are two different kinds of separators, one to separate the message tokens
and one to separate the messages if there are multiple SQLExceptions.

These separators have  all caused a fair amount of pain over time.  I think that it would
be good to have  an analysis of what the situation is and our options for th   network server
Exception handling in general in the context of what DRDA currently has to offer. 

For the patch, I am not confident that US-ASCII is the right thing here.    I don't fully
understand the impact of option 2 either, to change it to ";:" .  Well,  this is an awfully
long post to just still say I always have been and remain rather confused on this issue. 
 It would be a good first step to research and document how this all works now.

> Remove use of String(byte[]) and String(byte[], int, int) constructors in engine leading
to non-portable behaviour
> ------------------------------------------------------------------------------------------------------------------
>          Key: DERBY-902
>          URL: http://issues.apache.org/jira/browse/DERBY-902
>      Project: Derby
>         Type: Bug
>   Components: Network Server
>     Reporter: Daniel John Debrunner
>      Fix For:
>  Attachments: DERBY-902_021306.stat, DERBY-902_021306_2.diff
> These constructors use the Java default platform encoding to convert the bytes to a String,
this typically leads to bugs on platforms with different encodings.
> Replace with code using fixed conversion, or alternative mechanisms. 
> If the call is required its use should be commented as to why it is required.
> org.apache.derby.catalog.SystemProcedures
> I generated this list using the Java search in eclipse for references to the constructors
> String(byte[])
> String(byte[],int,int) - no occurrrences in java/engine

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message