I was just composing a comment when JIRA took a breather.
 
This is what I wanted to say:
I've looked into this (and experimented) a bit more.
 
This string 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 server.
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.
 
Myrna

 
On 2/13/06, Daniel John Debrunner (JIRA) <[email protected]> wrote:
   [ http://issues.apache.org/jira/browse/DERBY-902?page=comments#action_12366266 ]

Daniel John Debrunner commented on DERBY-902:
---------------------------------------------

Thanks Kathey for pointing that out, I was wrong, I saw the

byte[] b = {20, 20, 20};

and I mentally assumed they were 0x20, which would correspond to the space character.

> 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: 10.2.0.0
>  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:
  http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Reply via email to