From 909d0bb109a24e0d0e74882137f386df45a19d44 Mon Sep 17 00:00:00 2001 From: Alan Bateman <alanb@openjdk.org> Date: Sat, 19 Jun 2010 15:17:36 +0100 Subject: [PATCH] 6962419: TEST_BUG: java_io tests fails in samevm mode Reviewed-by: ohair, sherman --- jdk/test/ProblemList.txt | 71 ------------------- jdk/test/java/io/BufferedReader/BigMark.java | 2 + .../java/io/BufferedReader/ReadLineSync.java | 18 +++-- .../io/DataInputStream/OpsAfterClose.java | 18 +++-- .../java/io/DataInputStream/ReadFully.java | 1 + jdk/test/java/io/File/DeleteOnExit.java | 4 +- jdk/test/java/io/File/DeleteOnExitNPE.java | 3 +- jdk/test/java/io/File/IsHidden.java | 17 +++-- .../java/io/FileInputStream/LeadingSlash.java | 4 +- .../java/io/InputStream/OpsAfterClose.java | 30 +++++--- jdk/test/java/io/InputStream/ReadParams.java | 1 + .../io/InputStreamReader/GrowAfterEOF.java | 47 ++++++------ .../ObjectInputStream/ResolveProxyClass.java | 2 +- jdk/test/java/io/RandomAccessFile/EOF.java | 14 ++-- .../io/RandomAccessFile/ParameterCheck.java | 5 +- .../java/io/RandomAccessFile/ReadLine.java | 38 +++++----- jdk/test/java/io/RandomAccessFile/Seek.java | 2 + .../io/RandomAccessFile/WriteBytesChars.java | 5 +- .../java/io/RandomAccessFile/WriteUTF.java | 3 +- .../RandomAccessFile/skipBytes/SkipBytes.java | 20 +++--- jdk/test/java/io/Reader/Skip.java | 14 ++-- jdk/test/java/io/Reader/SkipNegative.java | 2 + jdk/test/java/io/StreamTokenizer/Comment.java | 63 ++++++++-------- .../java/io/readBytes/ReadBytesBounds.java | 40 ++++++----- 24 files changed, 214 insertions(+), 210 deletions(-) diff --git a/jdk/test/ProblemList.txt b/jdk/test/ProblemList.txt index 6fa0de27305..5cb3a983dab 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 67b5dd3e09e..fe336a41a9a 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 1b2dd495bad..2af83e47d6f 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 a0f0fdfc349..a54926b2ed1 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 ad9428016e6..53c0ee5c41f 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 74100ee52e5..b332bf9c88b 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 dff7915d01c..50a29c3c882 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 a0198d1efdf..e34fcc39910 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 7b72be99cfd..3b572430258 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 7c64c985996..9685782ff00 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 36713aa8eee..602445cd0a2 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 7434401b414..96bb2a971a4 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 59cd3d349c2..eaea1c32ca1 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 aa65fd361c4..50b48de77a7 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 97319fcffc6..e483929cdf0 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 879926f89ff..1d63ce08aeb 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 a3f15cde10c..2a505e58fdc 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 6803f2b2d82..bbb94943b74 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 ed831273adf..c3d13e0493a 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 9c4cf04390a..0e8723ebe02 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 cc4255bc35f..08f627f7a3a 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 17ec0c05038..e1aec0ca595 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 056362629c7..f1192fe6205 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 4f69e68ba36..eef870b7408 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 { -- GitLab