db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Myrna van Lunteren (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 Thu, 16 Feb 2006 20:44:11 GMT
    [ http://issues.apache.org/jira/browse/DERBY-902?page=comments#action_12366679 ] 

Myrna van Lunteren commented on DERBY-902:

The String errSeparator in class SystemProcedures is only ever used within NetworkServer,
so I don't see how it could be a problem in other encodings, or am I missing something in
my understanding of how this works?
It seems to me it does not matter much what the content of the String in question is, as long
as it 
1. is identical to what's assigned to SQLERRMC_MESSAGE_DELIMITER  in java/drda/org/apache/derby/impl/drda/DRDAConnThread
2. is short (comments in DRDAConnThread indicate CCC can only handle up to 70 characters of
errors concatenated with this string)  
3. can never be found in any error messages.
So, there are 2 alternatives:
1. leave the string as is, and add a comment indicating it's only used internally in network
2. replace the string with something else, in both classes, for instance, 
      String errSeparator=":;:"
Please advise, I can make another patch with whichever alternative is preferred. I am going
back-and-forth between the two.

> 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