Remove usage of non-portable methods in derby code
--------------------------------------------------
Key: DERBY-1256
URL: http://issues.apache.org/jira/browse/DERBY-1256
Project: Derby
Type: Bug
Components: Store, Test
Reporter: Sunitha Kambhampati
Fix For: 10.2.0.0
Remove usage of non portable methods that use native encoding as they could
potentially lead 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.
I went through the classes in java.io package in jdk1.4.2 and have come up
with a list of methods, constructors in the java.io.* classes that use native
encoding and did a java search on eclipse for the code in java/engine,
java/testing, java/drda, java/client.
1)ByteArrayOutputStream.toString()
testing - DerbyNetNewServer:
System.out.println( bos.toString());
server- NetworkServerCtrlInfo.getCLSSysInfo, getNetSysInfo,
2)DataInputStream.readLine()
ArrayInputStream - org.apache.derby.iapi.services.io - java/engine
readLine()
CorruptRandomAccessFile - org.apache.derbyTesting.functionTests.util.corruptio
- java/testing
readLine()
3)InputStreamReader(InputStream)
StatementDuration - org.apache.derby.diag - java/engine -
next()
ImportReadData - org.apache.derby.impl.load - java/engine -
realOpenFile()
ErrorLogReader - org.apache.derby.diag - java/engine -
next()
UCode_CharStream - org.apache.derby.impl.sql.compile - java/engine -
ReInit(InputStream, int, int, int)
xmlBinding - org.apache.derbyTesting.functionTests.tests.lang - java/testing -
insertDocWithDTD(Connection, String, String, String, int)
BaseMonitor - org.apache.derby.impl.services.monitor - java/engine -
dumpTempWriter(boolean)
DbFile - org.apache.derbyTesting.functionTests.util - java/testing -
stringFromFile(InputStream)
HandleResult - org.apache.derbyTesting.functionTests.harness - java/testing -
handleResult(int, InputStream, InputStream, PrintWriter, String) (2 matches)
ProcessStreamResult - org.apache.derbyTesting.functionTests.harness -
java/testing -
run()
FileCompare - org.apache.derbyTesting.functionTests.harness - java/testing -
doSysDiff(InputStream, String, String, File, PrintWriter)
exec(String, File, PrintWriter, String, String, String, int, boolean, boolean,
String, String, String)
UCode_CharStream(InputStream, int, int, int)
insertFiles(Connection, String, String, int) (2 matches)
4) OuputStreamWriter(OutputStream)
ExportWriteData - org.apache.derby.impl.load - java/engine
openFile()
ProcessStreamResult - org.apache.derbyTesting.functionTests.harness -
java/testing
ProcessStreamResult(InputStream, BufferedOutputStream, String, String)
RawStore - org.apache.derby.impl.store.raw - java/engine
run()
5) RandomAccessFile.readLine()
ArrayInputStream - org.apache.derby.iapi.services.io - java/engine -
readLine()
CorruptRandomAccessFile - org.apache.derbyTesting.functionTests.util.corruptio
- java/testing -
readLine()
DerbyNetAutoStart - org.apache.derbyTesting.functionTests.tests.derbynet -
java/testing -
checkLog(RandomAccessFile, String[])
PrintStream and PrintWriter , print methods uses platforms default charset
encoding.
=============
There are also non portable methods in String class
new String(byte[])
new String(byte[],int,int)
String.getBytes(). There are jira entries already for these- DERBY-900,
DERBY-901,DERBY-902,DERBY-903.
--
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