[
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 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. 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: 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