[ 
https://issues.apache.org/jira/browse/DERBY-1256?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12665795#action_12665795
 ] 

Knut Anders Hatlen commented on DERBY-1256:
-------------------------------------------

I see a similar IOException when I run ReplicationRun_Local with 
file.encoding=UTF-16 on OpenSolaris/JDK6:

java.io.IOException: Cannot run program 
"/usr/jdk/instances/jdk1.6.0/jre/bin/java": error=2, No such file or directory
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
        at java.lang.Runtime.exec(Runtime.java:593)
        at java.lang.Runtime.exec(Runtime.java:431)
        at 
org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun$4.run(ReplicationRun.java:2366)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: error=2, No such file or directory
        at java.lang.UNIXProcess.forkAndExec(Native Method)
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
        at java.lang.ProcessImpl.start(ProcessImpl.java:65)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
        ... 4 more

However, I see the same problem when I execute the following code with 
file.encoding set (works fine without the property):

public class FileEncoding {
    public static void main(String[] args) throws Exception {
        Process p = Runtime.getRuntime().exec("/usr/bin/ls");
        System.out.println("Status: " + p.waitFor());
    }
}

Exception in thread "main" java.io.IOException: Cannot run program 
"/usr/bin/ls": error=2, No such file or directory
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
        at java.lang.Runtime.exec(Runtime.java:593)
        at java.lang.Runtime.exec(Runtime.java:431)
        at java.lang.Runtime.exec(Runtime.java:328)
        at FileEncoding.main(FileEncoding.java:3)
Caused by: java.io.IOException: error=2, No such file or directory
        at java.lang.UNIXProcess.forkAndExec(Native Method)
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
        at java.lang.ProcessImpl.start(ProcessImpl.java:65)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
        ... 4 more

So I don't think that it shows a problem in Derby or the tests.

> Remove usage of non-portable methods in derby code
> --------------------------------------------------
>
>                 Key: DERBY-1256
>                 URL: https://issues.apache.org/jira/browse/DERBY-1256
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Server, SQL, Store, Test
>            Reporter: Sunitha Kambhampati
>
> 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.
-
You can reply to this email to add a comment to the issue online.

Reply via email to