# HG changeset patch # User alanb # Date 1276957056 -3600 # Node ID e83d67ad8c96362b1e0975bf3f068e6b308d149c # Parent 6e38efd0293fe8c489e06a81c744caf9d82e05ed 6962419: TEST_BUG: java_io tests fails in samevm mode Reviewed-by: ohair, sherman diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/ProblemList.txt --- a/jdk/test/ProblemList.txt Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/ProblemList.txt Sat Jun 19 15:17:36 2010 +0100 @@ -187,73 +187,6 @@ ############################################################################ -# jdk_io - -# Many of these tests have a tendency to leave input streams open, which -# will cause following tests to be failures when used in samevm mode. - -# Should be othervm, or corrected for samevm, fails with samevm: -java/io/BufferedReader/BigMark.java generic-all -java/io/BufferedReader/ReadLineSync.java generic-all - -# Windows samevm issues? triggers other tests to fail, missing close() on f.txt? -java/io/DataInputStream/OpsAfterClose.java generic-all - -# Windows 32bit samevm failure: RuntimeException: File.getFreeSpace() failed -java/io/File/MaxPathLength.java generic-all - -# Should be othervm, or corrected for samevm, fails with samevm: -java/io/File/DeleteOnExit.java generic-all -java/io/File/DeleteOnExitLong.java generic-all -java/io/File/DeleteOnExitNPE.java generic-all -java/io/File/IsHidden.java generic-all -java/io/FileDescriptor/FileChannelFDTest.java generic-all -java/io/FileDescriptor/Finalize.java generic-all -java/io/FileInputStream/FinalizeShdCallClose.java generic-all - -# Known to cause samevm issues on windows, other tests fail, missing close()? -java/io/FileInputStream/OpsAfterClose.java generic-all - -# Should be othervm, or corrected for samevm, fails with samevm: -java/io/FileOutputStream/FinalizeShdCallClose.java generic-all - -# Known to cause samevm issues on windows, other tests fail, missing close()? -java/io/FileOutputStream/OpsAfterClose.java generic-all - -# Windows samevm issues? triggers other tests to fail, missing close() on f.txt? -java/io/InputStream/OpsAfterClose.java generic-all - -# Missing close() on x.ReadBounds file? Windows samevm issues -java/io/InputStream/ReadParams.java generic-all - -# Known to cause samevm issues on windows, other tests fail, missing close()? -java/io/InputStreamReader/GrowAfterEOF.java generic-all - -# Should be othervm, or corrected for samevm, fails with samevm: -java/io/ObjectInputStream/ResolveProxyClass.java generic-all - -# Not doing a close() on x.ParameterCheck file? windows samevm cascade error -java/io/RandomAccessFile/ParameterCheck.java generic-all - -# Not doing a close on x.ReadLine file? windows cascade samevm problems -java/io/RandomAccessFile/ReadLine.java generic-all - -# Not doing close on file input x.WriteByteChars, windows samevm problems -java/io/RandomAccessFile/WriteBytesChars.java generic-all - -# Not doing close on file input x.WriteUTF, windows samevm problems -java/io/RandomAccessFile/WriteUTF.java generic-all - -# Possibly, not doing a close() on input.txt, windows samevm issues. -java/io/RandomAccessFile/skipBytes/SkipBytes.java generic-all -java/io/readBytes/MemoryLeak.java generic-all -java/io/readBytes/ReadBytesBounds.java generic-all - -# Possibly not doing a close() on input.txt, windows samevm issues. -java/io/StreamTokenizer/Comment.java generic-all - -############################################################################ - # jdk_lang # Times out on solaris 10 sparc @@ -593,10 +526,6 @@ com/sun/nio/sctp/SctpChannel/Send.java generic-all com/sun/nio/sctp/SctpChannel/Shutdown.java generic-all -# Fails on Windows 2000, Can't delete test directory .\x.SetLastModified.dir -# at SetLastModified.main(SetLastModified.java:107) -java/io/File/SetLastModified.java generic-all - # Fails on Windows 2000, times out java/nio/channels/FileChannel/Transfer.java generic-all diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/BufferedReader/BigMark.java --- a/jdk/test/java/io/BufferedReader/BigMark.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/BufferedReader/BigMark.java Sat Jun 19 15:17:36 2010 +0100 @@ -25,6 +25,8 @@ @summary BufferedReader should throw an OutOfMemoryError when the read-ahead limit is very large @bug 6350733 + @build BigMark + @run main/othervm BigMark */ import java.io.*; diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/BufferedReader/ReadLineSync.java --- a/jdk/test/java/io/BufferedReader/ReadLineSync.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/BufferedReader/ReadLineSync.java Sat Jun 19 15:17:36 2010 +0100 @@ -46,16 +46,20 @@ BufferedReader reader = new BufferedReader( new FileReader(f)); - int threadCount = 2; + try { + int threadCount = 2; - ExecutorService es = Executors.newFixedThreadPool(threadCount); + ExecutorService es = Executors.newFixedThreadPool(threadCount); - for (int i=0; i < threadCount; i++) - es.execute(new BufferedReaderConsumer(reader)); + for (int i=0; i < threadCount; i++) + es.execute(new BufferedReaderConsumer(reader)); - // Wait for the tasks to complete - es.shutdown(); - while (!es.awaitTermination(60, TimeUnit.SECONDS)); + // Wait for the tasks to complete + es.shutdown(); + while (!es.awaitTermination(60, TimeUnit.SECONDS)); + } finally { + reader.close(); + } } static class BufferedReaderConsumer extends Thread { diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/DataInputStream/OpsAfterClose.java --- a/jdk/test/java/io/DataInputStream/OpsAfterClose.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/DataInputStream/OpsAfterClose.java Sat Jun 19 15:17:36 2010 +0100 @@ -244,13 +244,19 @@ f.deleteOnExit(); FileInputStream fis = new FileInputStream(f); - - DataInputStream dis = new DataInputStream( - new FileInputStream(f)); - if (testDataInputStream(dis)) { - failed = true; + try { + DataInputStream dis = new DataInputStream( + new FileInputStream(f)); + try { + if (testDataInputStream(dis)) { + failed = true; + } + } finally { + dis.close(); + } + } finally { + fis.close(); } - } private static boolean testDataInputStream(DataInputStream is) diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/DataInputStream/ReadFully.java --- a/jdk/test/java/io/DataInputStream/ReadFully.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/DataInputStream/ReadFully.java Sat Jun 19 15:17:36 2010 +0100 @@ -43,6 +43,7 @@ } catch (IndexOutOfBoundsException ie) { caughtException = true; } finally { + dis.close(); if (!caughtException) throw new RuntimeException("Test failed"); } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/File/DeleteOnExit.java --- a/jdk/test/java/io/File/DeleteOnExit.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/File/DeleteOnExit.java Sat Jun 19 15:17:36 2010 +0100 @@ -48,7 +48,9 @@ public static void main (String args[]) throws Exception{ if (args.length == 0) { - Runtime.getRuntime().exec(java + " DeleteOnExit -test").waitFor(); + String cmd = java + " -classpath " + System.getProperty("test.classes") + + " DeleteOnExit -test"; + Runtime.getRuntime().exec(cmd).waitFor(); if (file1.exists() || file2.exists() || file3.exists() || dir.exists() || file4.exists() || file5.exists() || file6.exists() || file7.exists()) { diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/File/DeleteOnExitNPE.java --- a/jdk/test/java/io/File/DeleteOnExitNPE.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/File/DeleteOnExitNPE.java Sat Jun 19 15:17:36 2010 +0100 @@ -45,7 +45,8 @@ public static void runTest() throws Exception { String cmd = System.getProperty("java.home") + File.separator + - "bin" + File.separator + "java"; + "bin" + File.separator + "java" + + " -classpath " + System.getProperty("test.classes"); Process process = Runtime.getRuntime().exec(cmd + " DeleteOnExitNPE -test"); BufferedReader isReader = new BufferedReader(new InputStreamReader(process.getInputStream())); BufferedReader esReader = new BufferedReader(new InputStreamReader(process.getErrorStream())); diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/File/IsHidden.java --- a/jdk/test/java/io/File/IsHidden.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/File/IsHidden.java Sat Jun 19 15:17:36 2010 +0100 @@ -27,7 +27,7 @@ */ import java.io.*; - +import java.nio.file.attribute.DosFileAttributeView; public class IsHidden { @@ -41,15 +41,20 @@ System.err.println(path + " ==> " + x); } + private static void setHidden(File f, boolean value) throws IOException { + f.toPath().getFileAttributeView(DosFileAttributeView.class).setHidden(value); + } + private static void testWin32() throws Exception { File f = new File(dir, "test"); f.deleteOnExit(); f.createNewFile(); - String name = f.getCanonicalPath(); - Process p = Runtime.getRuntime().exec("cmd.exe /c attrib +H " + name); - p.waitFor(); - ck(name, true); - + setHidden(f, true); + try { + ck(f.getPath(), true); + } finally { + setHidden(f, false); + } ck(".foo", false); ck("foo", false); } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/FileInputStream/LeadingSlash.java --- a/jdk/test/java/io/FileInputStream/LeadingSlash.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/FileInputStream/LeadingSlash.java Sat Jun 19 15:17:36 2010 +0100 @@ -36,8 +36,8 @@ File file = null; try { file = File.createTempFile("bug", "4487368"); - new FileInputStream("\\" + file.getPath()); - new FileOutputStream("\\" + file.getPath()); + new FileInputStream("\\" + file.getPath()).close(); + new FileOutputStream("\\" + file.getPath()).close(); } finally { if (file != null) file.delete(); diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/InputStream/OpsAfterClose.java --- a/jdk/test/java/io/InputStream/OpsAfterClose.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/InputStream/OpsAfterClose.java Sat Jun 19 15:17:36 2010 +0100 @@ -125,23 +125,35 @@ f.deleteOnExit(); FileInputStream fis = new FileInputStream(f); - if (testInputStream(fis)) { - failed = true; - } - if (testFileInputStream(fis)) { - failed = true; + try { + if (testInputStream(fis)) { + failed = true; + } + if (testFileInputStream(fis)) { + failed = true; + } + } finally { + fis.close(); } BufferedInputStream bs = new BufferedInputStream( new FileInputStream(f)); - if (testInputStream(bs)) { - failed = true; + try { + if (testInputStream(bs)) { + failed = true; + } + } finally { + bs.close(); } DataInputStream dis = new DataInputStream( new FileInputStream(f)); - if (testInputStream(dis)) { - failed = true; + try { + if (testInputStream(dis)) { + failed = true; + } + } finally { + dis.close(); } PushbackInputStream pbis = new PushbackInputStream( diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/InputStream/ReadParams.java --- a/jdk/test/java/io/InputStream/ReadParams.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/InputStream/ReadParams.java Sat Jun 19 15:17:36 2010 +0100 @@ -137,6 +137,7 @@ oos.writeInt(12345); oos.writeObject("Today"); oos.writeObject(new Integer(32)); + oos.close(); ObjectInputStream ois = new ObjectInputStream(new FileInputStream(fn)); doTest(ois); doTest1(ois); diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/InputStreamReader/GrowAfterEOF.java --- a/jdk/test/java/io/InputStreamReader/GrowAfterEOF.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/InputStreamReader/GrowAfterEOF.java Sat Jun 19 15:17:36 2010 +0100 @@ -33,29 +33,36 @@ public static void main(String[] args) throws Exception { File input = new File(".", "TestEOFInput.txt"); RandomAccessFile rf = new RandomAccessFile(input, "rw"); - BufferedReader r = new BufferedReader - (new InputStreamReader(new FileInputStream(input))); + try { + BufferedReader r = new BufferedReader + (new InputStreamReader(new FileInputStream(input))); + try { + // write something + rf.writeBytes("a line"); - // write something - rf.writeBytes("a line"); + // read till the end of file + while (r.readLine() != null); - // read till the end of file - while (r.readLine() != null); + // append to the end of the file + rf.seek(rf.length()); + rf.writeBytes("new line"); - // append to the end of the file - rf.seek(rf.length()); - rf.writeBytes("new line"); - - // now try to read again - boolean readMore = false; - while (r.readLine() != null) { - readMore = true; - } - if (!readMore) { - input.delete(); - throw new Exception("Failed test: unable to read!"); - } else { - input.delete(); + // now try to read again + boolean readMore = false; + while (r.readLine() != null) { + readMore = true; + } + if (!readMore) { + input.delete(); + throw new Exception("Failed test: unable to read!"); + } else { + input.delete(); + } + } finally { + r.close(); + } + } finally { + rf.close(); } } } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/ObjectInputStream/ResolveProxyClass.java --- a/jdk/test/java/io/ObjectInputStream/ResolveProxyClass.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/ObjectInputStream/ResolveProxyClass.java Sat Jun 19 15:17:36 2010 +0100 @@ -79,7 +79,7 @@ * code, and it should be the first loader on the stack when * ObjectInputStream.resolveProxyClass gets executed. */ - ClassLoader expectedLoader = ClassLoader.getSystemClassLoader(); + ClassLoader expectedLoader = ResolveProxyClass.class.getClassLoader(); TestObjectInputStream in = new TestObjectInputStream(); Class proxyClass = in.resolveProxyClass( diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/RandomAccessFile/EOF.java --- a/jdk/test/java/io/RandomAccessFile/EOF.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/RandomAccessFile/EOF.java Sat Jun 19 15:17:36 2010 +0100 @@ -35,12 +35,16 @@ int n; String dir = System.getProperty("test.src", "."); RandomAccessFile raf = new RandomAccessFile(new File(dir, "EOF.java"), "r"); - for (;;) { - n = raf.read(buf, 0, buf.length); - if (n <= 0) break; + try { + for (;;) { + n = raf.read(buf, 0, buf.length); + if (n <= 0) break; + } + if (n != -1) + throw new RuntimeException("Expected -1 for EOF, got " + n); + } finally { + raf.close(); } - if (n != -1) - throw new RuntimeException("Expected -1 for EOF, got " + n); } } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/RandomAccessFile/ParameterCheck.java --- a/jdk/test/java/io/RandomAccessFile/ParameterCheck.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/RandomAccessFile/ParameterCheck.java Sat Jun 19 15:17:36 2010 +0100 @@ -44,6 +44,7 @@ private static void doTest(String method) throws Exception { File fn = new File("x.ParameterCheck"); + RandomAccessFile raf = null; try { byte b[] = new byte[32]; @@ -55,7 +56,7 @@ fout.write(i); } fout.close(); - RandomAccessFile raf = new RandomAccessFile(fn , "rw"); + raf = new RandomAccessFile(fn , "rw"); System.err.println("-----------------------------" + "-----------------------------"); @@ -125,6 +126,8 @@ System.err.println("-----------------------------" + "-----------------------------"); } finally { + if (raf != null) + raf.close(); fn.delete(); } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/RandomAccessFile/ReadLine.java --- a/jdk/test/java/io/RandomAccessFile/ReadLine.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/RandomAccessFile/ReadLine.java Sat Jun 19 15:17:36 2010 +0100 @@ -33,26 +33,30 @@ public static void main(String args[]) throws Exception { File fn = new File("x.ReadLine"); RandomAccessFile raf = new RandomAccessFile(fn,"rw"); - String line; - int ctr = 1; - String expected; + try { + String line; + int ctr = 1; + String expected; - raf.writeBytes - ("ln1\rln2\r\nln3\nln4\rln5\r\nln6\n\rln8\r\rln10\n\nln12\r\r\nln14"); - raf.seek(0); + raf.writeBytes + ("ln1\rln2\r\nln3\nln4\rln5\r\nln6\n\rln8\r\rln10\n\nln12\r\r\nln14"); + raf.seek(0); - while ((line=raf.readLine()) != null) { - if ((ctr == 7) || (ctr == 9) || - (ctr == 11) || (ctr == 13)) { - expected = ""; - } else { - expected = "ln" + ctr; + while ((line=raf.readLine()) != null) { + if ((ctr == 7) || (ctr == 9) || + (ctr == 11) || (ctr == 13)) { + expected = ""; + } else { + expected = "ln" + ctr; + } + if (!line.equals(expected)) { + throw new Exception("Expected \"" + expected + "\"" + + ", read \"" + line + "\""); + } + ctr++; } - if (!line.equals(expected)) { - throw new Exception("Expected \"" + expected + "\"" + - ", read \"" + line + "\""); - } - ctr++; + } finally { + raf.close(); } System.err.println("Successfully completed test!"); } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/RandomAccessFile/Seek.java --- a/jdk/test/java/io/RandomAccessFile/Seek.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/RandomAccessFile/Seek.java Sat Jun 19 15:17:36 2010 +0100 @@ -44,6 +44,8 @@ throw new Exception ("Should have thrown an IOException when seek offset is < 0"); } catch (IOException e) { + } finally { + raf.close(); } } } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/RandomAccessFile/WriteBytesChars.java --- a/jdk/test/java/io/RandomAccessFile/WriteBytesChars.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/RandomAccessFile/WriteBytesChars.java Sat Jun 19 15:17:36 2010 +0100 @@ -37,8 +37,8 @@ byte[] b = new byte[80]; File fn = new File("x.WriteBytesChars"); - try{ - RandomAccessFile raf = new RandomAccessFile(fn , "rw");; + RandomAccessFile raf = new RandomAccessFile(fn , "rw");; + try { for (int i = 0; i < 80; i++) { buf[i] = 'a'; } @@ -71,6 +71,7 @@ RuntimeException("RandomAccessFile.writeChars, wrong result"); } } finally { + raf.close(); fn.delete(); } } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/RandomAccessFile/WriteUTF.java --- a/jdk/test/java/io/RandomAccessFile/WriteUTF.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/RandomAccessFile/WriteUTF.java Sat Jun 19 15:17:36 2010 +0100 @@ -42,8 +42,8 @@ s += s; System.err.println("String length " + s.length()); + f = new RandomAccessFile(fn, "rw"); try { - f = new RandomAccessFile(fn, "rw"); try { f.writeUTF(s); } @@ -53,6 +53,7 @@ throw new RuntimeException("UTFDataFormatException not thrown"); } finally { + f.close(); fn.delete(); } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/RandomAccessFile/skipBytes/SkipBytes.java --- a/jdk/test/java/io/RandomAccessFile/skipBytes/SkipBytes.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/RandomAccessFile/skipBytes/SkipBytes.java Sat Jun 19 15:17:36 2010 +0100 @@ -96,14 +96,18 @@ public static void main(String[] args) throws Exception { RandomAccessFile raf = new RandomAccessFile("input.txt" , "rw"); - int length = (int)raf.length(); + try { + int length = (int)raf.length(); - doTest(raf , 0 , 2*length); - doTest(raf , 0 , length); - doTest(raf , 0 , length/2); - doTest(raf , length/2 , -2); - doTest(raf , length , 0); - doTest(raf , 0 , -1); + doTest(raf , 0 , 2*length); + doTest(raf , 0 , length); + doTest(raf , 0 , length/2); + doTest(raf , length/2 , -2); + doTest(raf , length , 0); + doTest(raf , 0 , -1); + } finally{ + raf.close(); + } } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/Reader/Skip.java --- a/jdk/test/java/io/Reader/Skip.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/Reader/Skip.java Sat Jun 19 15:17:36 2010 +0100 @@ -35,12 +35,16 @@ File f = new File(System.getProperty("test.src", "."), "SkipInput.txt"); FileReader fr = new FileReader(f); - long nchars = 8200; - long actual = fr.skip(nchars); + try { + long nchars = 8200; + long actual = fr.skip(nchars); - if (actual > nchars) { - throw new Exception - ("Should skip " + nchars + ", but skipped " +actual+" chars"); + if (actual > nchars) { + throw new Exception + ("Should skip " + nchars + ", but skipped " +actual+" chars"); + } + } finally { + fr.close(); } } } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/Reader/SkipNegative.java --- a/jdk/test/java/io/Reader/SkipNegative.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/Reader/SkipNegative.java Sat Jun 19 15:17:36 2010 +0100 @@ -41,6 +41,8 @@ } catch(IllegalArgumentException e){ // Negative argument caught return; + } finally { + fr.close(); } throw new Exception("Skip should not accept negative values"); } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/StreamTokenizer/Comment.java --- a/jdk/test/java/io/StreamTokenizer/Comment.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/StreamTokenizer/Comment.java Sat Jun 19 15:17:36 2010 +0100 @@ -41,40 +41,45 @@ int slashStarComment = 4; for (int i = 0; i < 8 ; i++) { - StreamTokenizer st = new StreamTokenizer(new FileReader(f)); - - /* decide the state of this run */ - boolean slashCommentFlag = ((i & slashIsCommentStart) != 0); - boolean slashSlashCommentFlag = ((i & slashSlashComment) != 0); - boolean slashStarCommentFlag = ((i & slashStarComment) != 0); + FileReader reader = new FileReader(f); + try { + StreamTokenizer st = new StreamTokenizer(reader); - /* set the initial state of the tokenizer */ - if (!slashCommentFlag) { - st.ordinaryChar('/'); - } - st.slashSlashComments(slashSlashCommentFlag); - st.slashStarComments(slashStarCommentFlag); + /* decide the state of this run */ + boolean slashCommentFlag = ((i & slashIsCommentStart) != 0); + boolean slashSlashCommentFlag = ((i & slashSlashComment) != 0); + boolean slashStarCommentFlag = ((i & slashStarComment) != 0); + + /* set the initial state of the tokenizer */ + if (!slashCommentFlag) { + st.ordinaryChar('/'); + } + st.slashSlashComments(slashSlashCommentFlag); + st.slashStarComments(slashStarCommentFlag); - /* now go throgh the input file */ - while(st.nextToken() != StreamTokenizer.TT_EOF) - { - String token = st.sval; - if (token == null) { - continue; - } else { - if ((token.compareTo("Error1") == 0) && slashStarCommentFlag) { - throw new Exception("Failed to pass one line C comments!"); - } - if ((token.compareTo("Error2") == 0) && slashStarCommentFlag) { - throw new Exception("Failed to pass multi line C comments!"); - } - if ((token.compareTo("Error3") == 0) && slashSlashCommentFlag) { - throw new Exception("Failed to pass C++ comments!"); - } - if ((token.compareTo("Error4") == 0) && slashCommentFlag) { - throw new Exception("Failed to pass / comments!"); + /* now go throgh the input file */ + while(st.nextToken() != StreamTokenizer.TT_EOF) + { + String token = st.sval; + if (token == null) { + continue; + } else { + if ((token.compareTo("Error1") == 0) && slashStarCommentFlag) { + throw new Exception("Failed to pass one line C comments!"); + } + if ((token.compareTo("Error2") == 0) && slashStarCommentFlag) { + throw new Exception("Failed to pass multi line C comments!"); + } + if ((token.compareTo("Error3") == 0) && slashSlashCommentFlag) { + throw new Exception("Failed to pass C++ comments!"); + } + if ((token.compareTo("Error4") == 0) && slashCommentFlag) { + throw new Exception("Failed to pass / comments!"); + } } } + } finally { + reader.close(); } } } diff -r 6e38efd0293f -r e83d67ad8c96 jdk/test/java/io/readBytes/ReadBytesBounds.java --- a/jdk/test/java/io/readBytes/ReadBytesBounds.java Fri Jun 18 20:59:13 2010 +0100 +++ b/jdk/test/java/io/readBytes/ReadBytesBounds.java Sat Jun 19 15:17:36 2010 +0100 @@ -57,24 +57,28 @@ } public static void main(String argv[]) throws Throwable { - byte b[] = new byte[32]; - testRead(-1, -1, false); - testRead(-1, 0, false); - testRead( 0, -1, false); - testRead( 0, 33, false); - testRead(33, 0, false); - testRead(33, 4, false); - testRead( 0, 32, true); - testRead(32, 0, true); - testRead(32, 4, false); - testRead( 4, 16, true); - testRead( 1, 31, true); - testRead( 0, 0, true); - testRead(31, Integer.MAX_VALUE, false); - testRead( 0, Integer.MAX_VALUE, false); - testRead(-1, Integer.MAX_VALUE, false); - testRead(-4, Integer.MIN_VALUE, false); - testRead( 0, Integer.MIN_VALUE, false); + try { + testRead(-1, -1, false); + testRead(-1, 0, false); + testRead( 0, -1, false); + testRead( 0, 33, false); + testRead(33, 0, false); + testRead(33, 4, false); + testRead( 0, 32, true); + testRead(32, 0, true); + testRead(32, 4, false); + testRead( 4, 16, true); + testRead( 1, 31, true); + testRead( 0, 0, true); + testRead(31, Integer.MAX_VALUE, false); + testRead( 0, Integer.MAX_VALUE, false); + testRead(-1, Integer.MAX_VALUE, false); + testRead(-4, Integer.MIN_VALUE, false); + testRead( 0, Integer.MIN_VALUE, false); + } finally { + fis.close(); + raf.close(); + } } static void testRead(int off, int len, boolean expected) throws Throwable {