diff --git a/jdk/test/ProblemList.txt b/jdk/test/ProblemList.txt index 6fa0de27305de5366fbdc67c0ac8e674f49fefbd..5cb3a983dabc2e9b8d1df2f67d8fe561b62e68af 100644 --- a/jdk/test/ProblemList.txt +++ b/jdk/test/ProblemList.txt @@ -187,73 +187,6 @@ java/beans/XMLEncoder/6329581/Test6329581.java generic-all ############################################################################ -# 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 @@ java/nio/channels/Selector/Wakeup.java windows-all 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 --git a/jdk/test/java/io/BufferedReader/BigMark.java b/jdk/test/java/io/BufferedReader/BigMark.java index 67b5dd3e09ef943d8ce5ae866cdd3b482b273896..fe336a41a9a75ba26b0ed9d4546e70304cdbd1be 100644 --- a/jdk/test/java/io/BufferedReader/BigMark.java +++ b/jdk/test/java/io/BufferedReader/BigMark.java @@ -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 --git a/jdk/test/java/io/BufferedReader/ReadLineSync.java b/jdk/test/java/io/BufferedReader/ReadLineSync.java index 1b2dd495bade4b9963d62a9195ebd8bddfbf1aba..2af83e47d6fec7e062dd3b12d608bc11f7f18cd0 100644 --- a/jdk/test/java/io/BufferedReader/ReadLineSync.java +++ b/jdk/test/java/io/BufferedReader/ReadLineSync.java @@ -46,16 +46,20 @@ public class ReadLineSync { 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 --git a/jdk/test/java/io/DataInputStream/OpsAfterClose.java b/jdk/test/java/io/DataInputStream/OpsAfterClose.java index a0f0fdfc349e2f1057d91241fd349ebe6487d762..a54926b2ed17eb0548f1e4f181267a6b094b5b01 100644 --- a/jdk/test/java/io/DataInputStream/OpsAfterClose.java +++ b/jdk/test/java/io/DataInputStream/OpsAfterClose.java @@ -244,13 +244,19 @@ public enum OpsAfterClose { 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 --git a/jdk/test/java/io/DataInputStream/ReadFully.java b/jdk/test/java/io/DataInputStream/ReadFully.java index ad9428016e6b1ea020d15edf8aa8ef059af785dc..53c0ee5c41fa10ef72f3a8341939bb8a60e59280 100644 --- a/jdk/test/java/io/DataInputStream/ReadFully.java +++ b/jdk/test/java/io/DataInputStream/ReadFully.java @@ -43,6 +43,7 @@ public class ReadFully { } catch (IndexOutOfBoundsException ie) { caughtException = true; } finally { + dis.close(); if (!caughtException) throw new RuntimeException("Test failed"); } diff --git a/jdk/test/java/io/File/DeleteOnExit.java b/jdk/test/java/io/File/DeleteOnExit.java index 74100ee52e5d25cbc16b1063241e83abe38a4731..b332bf9c88b91fe491c590538b608e22e8b2385a 100644 --- a/jdk/test/java/io/File/DeleteOnExit.java +++ b/jdk/test/java/io/File/DeleteOnExit.java @@ -48,7 +48,9 @@ public class DeleteOnExit { 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 --git a/jdk/test/java/io/File/DeleteOnExitNPE.java b/jdk/test/java/io/File/DeleteOnExitNPE.java index dff7915d01c7be2626b142479be7d5b7600d0344..50a29c3c8823b94ee12d18bdae62e69217dff225 100644 --- a/jdk/test/java/io/File/DeleteOnExitNPE.java +++ b/jdk/test/java/io/File/DeleteOnExitNPE.java @@ -45,7 +45,8 @@ public class DeleteOnExitNPE implements Runnable 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 --git a/jdk/test/java/io/File/IsHidden.java b/jdk/test/java/io/File/IsHidden.java index a0198d1efdf559b9d2a5e8c464786399e3dbb204..e34fcc39910ac1915e7586752cc3aa486c0e10d7 100644 --- a/jdk/test/java/io/File/IsHidden.java +++ b/jdk/test/java/io/File/IsHidden.java @@ -27,7 +27,7 @@ */ import java.io.*; - +import java.nio.file.attribute.DosFileAttributeView; public class IsHidden { @@ -41,15 +41,20 @@ public class IsHidden { 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 --git a/jdk/test/java/io/FileInputStream/LeadingSlash.java b/jdk/test/java/io/FileInputStream/LeadingSlash.java index 7b72be99cfddd68c0009efa7469f64099b5c45ac..3b57243025820201ec369e1e6379f4970feb9a26 100644 --- a/jdk/test/java/io/FileInputStream/LeadingSlash.java +++ b/jdk/test/java/io/FileInputStream/LeadingSlash.java @@ -36,8 +36,8 @@ public class LeadingSlash { 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 --git a/jdk/test/java/io/InputStream/OpsAfterClose.java b/jdk/test/java/io/InputStream/OpsAfterClose.java index 7c64c985996125a3d7416427c9e55498e2ea6dbb..9685782ff00cd40de60fc6d4701db56a2be23aa6 100644 --- a/jdk/test/java/io/InputStream/OpsAfterClose.java +++ b/jdk/test/java/io/InputStream/OpsAfterClose.java @@ -125,23 +125,35 @@ public enum OpsAfterClose { 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 --git a/jdk/test/java/io/InputStream/ReadParams.java b/jdk/test/java/io/InputStream/ReadParams.java index 36713aa8eee9aebbd39bd7355bfc99152471bf7b..602445cd0a2d2415707697876ff61023e2d19f22 100644 --- a/jdk/test/java/io/InputStream/ReadParams.java +++ b/jdk/test/java/io/InputStream/ReadParams.java @@ -137,6 +137,7 @@ public class ReadParams { 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 --git a/jdk/test/java/io/InputStreamReader/GrowAfterEOF.java b/jdk/test/java/io/InputStreamReader/GrowAfterEOF.java index 7434401b4147deda1962cc49026e7b3c6a446dba..96bb2a971a4c8da8497c1bae3ec6a227cf3740cb 100644 --- a/jdk/test/java/io/InputStreamReader/GrowAfterEOF.java +++ b/jdk/test/java/io/InputStreamReader/GrowAfterEOF.java @@ -33,29 +33,36 @@ public class GrowAfterEOF { 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 --git a/jdk/test/java/io/ObjectInputStream/ResolveProxyClass.java b/jdk/test/java/io/ObjectInputStream/ResolveProxyClass.java index 59cd3d349c27f9418016114debdc0bddd4f126a3..eaea1c32ca1b5525b85b79745836d6689054980b 100644 --- a/jdk/test/java/io/ObjectInputStream/ResolveProxyClass.java +++ b/jdk/test/java/io/ObjectInputStream/ResolveProxyClass.java @@ -79,7 +79,7 @@ public class ResolveProxyClass { * 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 --git a/jdk/test/java/io/RandomAccessFile/EOF.java b/jdk/test/java/io/RandomAccessFile/EOF.java index aa65fd361c42fa98cd6d1263894542daf07a72b4..50b48de77a7f6dc76f15f9215fdd234d5071e10e 100644 --- a/jdk/test/java/io/RandomAccessFile/EOF.java +++ b/jdk/test/java/io/RandomAccessFile/EOF.java @@ -35,12 +35,16 @@ public class EOF { 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 --git a/jdk/test/java/io/RandomAccessFile/ParameterCheck.java b/jdk/test/java/io/RandomAccessFile/ParameterCheck.java index 97319fcffc6c3b2063c78ffa1b18eb15bd0a408e..e483929cdf0a3ae185cfe738975bd8e303a43d3e 100644 --- a/jdk/test/java/io/RandomAccessFile/ParameterCheck.java +++ b/jdk/test/java/io/RandomAccessFile/ParameterCheck.java @@ -44,6 +44,7 @@ public class ParameterCheck { 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 @@ public class ParameterCheck { fout.write(i); } fout.close(); - RandomAccessFile raf = new RandomAccessFile(fn , "rw"); + raf = new RandomAccessFile(fn , "rw"); System.err.println("-----------------------------" + "-----------------------------"); @@ -125,6 +126,8 @@ public class ParameterCheck { System.err.println("-----------------------------" + "-----------------------------"); } finally { + if (raf != null) + raf.close(); fn.delete(); } diff --git a/jdk/test/java/io/RandomAccessFile/ReadLine.java b/jdk/test/java/io/RandomAccessFile/ReadLine.java index 879926f89ffca986cda16fc1057fde28dab5fe8e..1d63ce08aebb257cbe22a162e9bf49ca4e94f6e4 100644 --- a/jdk/test/java/io/RandomAccessFile/ReadLine.java +++ b/jdk/test/java/io/RandomAccessFile/ReadLine.java @@ -33,26 +33,30 @@ public class ReadLine { 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 --git a/jdk/test/java/io/RandomAccessFile/Seek.java b/jdk/test/java/io/RandomAccessFile/Seek.java index a3f15cde10cfba3b2e0c90c41c2815dd6866b511..2a505e58fdcea0c3cd26fa22b4499e52c3e3cc75 100644 --- a/jdk/test/java/io/RandomAccessFile/Seek.java +++ b/jdk/test/java/io/RandomAccessFile/Seek.java @@ -44,6 +44,8 @@ public class Seek throw new Exception ("Should have thrown an IOException when seek offset is < 0"); } catch (IOException e) { + } finally { + raf.close(); } } } diff --git a/jdk/test/java/io/RandomAccessFile/WriteBytesChars.java b/jdk/test/java/io/RandomAccessFile/WriteBytesChars.java index 6803f2b2d82e1841425ec70381eb163d1d43a9e5..bbb94943b749cfd92cc05a13b0ade6b65b36e07c 100644 --- a/jdk/test/java/io/RandomAccessFile/WriteBytesChars.java +++ b/jdk/test/java/io/RandomAccessFile/WriteBytesChars.java @@ -37,8 +37,8 @@ public class WriteBytesChars { 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 @@ public class WriteBytesChars { RuntimeException("RandomAccessFile.writeChars, wrong result"); } } finally { + raf.close(); fn.delete(); } } diff --git a/jdk/test/java/io/RandomAccessFile/WriteUTF.java b/jdk/test/java/io/RandomAccessFile/WriteUTF.java index ed831273adf3e94521dbe6418f2765e790b46c9b..c3d13e0493a0823716d45a1ed1c71d98d6a69b8f 100644 --- a/jdk/test/java/io/RandomAccessFile/WriteUTF.java +++ b/jdk/test/java/io/RandomAccessFile/WriteUTF.java @@ -42,8 +42,8 @@ public class WriteUTF { 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 @@ public class WriteUTF { throw new RuntimeException("UTFDataFormatException not thrown"); } finally { + f.close(); fn.delete(); } diff --git a/jdk/test/java/io/RandomAccessFile/skipBytes/SkipBytes.java b/jdk/test/java/io/RandomAccessFile/skipBytes/SkipBytes.java index 9c4cf04390a2f77fbde31ba0f9f22c1869bef147..0e8723ebe0283408aa5551c278e740b20ba60a50 100644 --- a/jdk/test/java/io/RandomAccessFile/skipBytes/SkipBytes.java +++ b/jdk/test/java/io/RandomAccessFile/skipBytes/SkipBytes.java @@ -96,14 +96,18 @@ public class SkipBytes{ public static void main(String[] args) throws Exception { RandomAccessFile raf = new RandomAccessFile("input.txt" , "rw"); - 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); + 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); + } finally{ + raf.close(); + } } diff --git a/jdk/test/java/io/Reader/Skip.java b/jdk/test/java/io/Reader/Skip.java index cc4255bc35f825733e81b61db1cc5c8dd10f7fb2..08f627f7a3a0f98af016ca8d4f77676041338e0e 100644 --- a/jdk/test/java/io/Reader/Skip.java +++ b/jdk/test/java/io/Reader/Skip.java @@ -35,12 +35,16 @@ public class Skip { 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 --git a/jdk/test/java/io/Reader/SkipNegative.java b/jdk/test/java/io/Reader/SkipNegative.java index 17ec0c050389ea15edf62321c6823f06529c713d..e1aec0ca5959d88f13853b06c54c8b798a2a1f90 100644 --- a/jdk/test/java/io/Reader/SkipNegative.java +++ b/jdk/test/java/io/Reader/SkipNegative.java @@ -41,6 +41,8 @@ public class SkipNegative { } catch(IllegalArgumentException e){ // Negative argument caught return; + } finally { + fr.close(); } throw new Exception("Skip should not accept negative values"); } diff --git a/jdk/test/java/io/StreamTokenizer/Comment.java b/jdk/test/java/io/StreamTokenizer/Comment.java index 056362629c71a29cc4104b1cee81c598dde95ad6..f1192fe62053d033f1a2dad31f5e279d69f0b8aa 100644 --- a/jdk/test/java/io/StreamTokenizer/Comment.java +++ b/jdk/test/java/io/StreamTokenizer/Comment.java @@ -41,40 +41,45 @@ public class Comment { int slashStarComment = 4; for (int i = 0; i < 8 ; i++) { - StreamTokenizer st = new StreamTokenizer(new FileReader(f)); + FileReader reader = new FileReader(f); + try { + StreamTokenizer st = new StreamTokenizer(reader); - /* decide the state of this run */ - boolean slashCommentFlag = ((i & slashIsCommentStart) != 0); - boolean slashSlashCommentFlag = ((i & slashSlashComment) != 0); - boolean slashStarCommentFlag = ((i & slashStarComment) != 0); + /* 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); + /* 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 --git a/jdk/test/java/io/readBytes/ReadBytesBounds.java b/jdk/test/java/io/readBytes/ReadBytesBounds.java index 4f69e68ba36a6c28831038cb702cc89a5b863658..eef870b7408c3a0734743375978f1fcfa0080b45 100644 --- a/jdk/test/java/io/readBytes/ReadBytesBounds.java +++ b/jdk/test/java/io/readBytes/ReadBytesBounds.java @@ -57,24 +57,28 @@ public class ReadBytesBounds { } 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 {