[
http://issues.apache.org/jira/browse/DERBY-901?page=comments#action_12374571 ]
Sunitha Kambhampati commented on DERBY-901:
-------------------------------------------
There is one place in DRDAConnThread.readAndSetParams where this non portable
constructor is used.
ln
case DRDAConstants.DRDA_TYPE_NFIXBYTE:
{
byte[] paramVal = reader.readBytes();
if (SanityManager.DEBUG)
trace("fix bytes parameter value is:
"+new String(paramVal));
ps.setBytes(i+1, paramVal);
break;
}
I can see two ways of fixing this,.
1) to change the trace message to say uses native encoding and leave it at that
.
2) change String to use "UTF-8" encoding and add code to catch the unsupported
encoding exception.
Does anyone have any opinions here ?
Thanks.
> Remove use of String(byte[]) constructors in network server leading to
> non-portable behaviour
> ---------------------------------------------------------------------------------------------
>
> Key: DERBY-901
> URL: http://issues.apache.org/jira/browse/DERBY-901
> Project: Derby
> Type: Bug
> Components: Network Server
> Reporter: Daniel John Debrunner
> Assignee: Sunitha Kambhampati
> Attachments: Derby901.p1.diff.txt, Derby901.p1.stat.txt, TestEnc.java
>
> 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.impl.drda.DRDAConnThread
> I generated this list using the Java search in eclipse for references to the
> constructors
> String(byte[])
> String(byte[],int,int) - no occurences found in java/drda
--
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