提交 c50f281e 编写于 作者: S smarks

7022624: use try-with-resources in java.io tests

Reviewed-by: alanb
上级 3aa63cac
......@@ -105,9 +105,9 @@ public class SetLastModified {
System.getProperty("os.name").startsWith("Windows") ? 0L : 3L*G;
long pos = 0L;
while (pos <= MAX_POSITION) {
FileChannel fc = new FileOutputStream(f).getChannel();
fc.position(pos).write(ByteBuffer.wrap("x".getBytes()));
fc.close();
try (FileChannel fc = new FileOutputStream(f).getChannel()) {
fc.position(pos).write(ByteBuffer.wrap("x".getBytes()));
}
ot = f.lastModified();
System.out.format("check with file size: %d\n", f.length());
if (!f.setLastModified(nt))
......
......@@ -47,12 +47,12 @@ public class AtomicAppend {
for (int i = 0; i < nThreads; i++)
es.execute(new Runnable() { public void run() {
try {
FileOutputStream s = new FileOutputStream(file, true);
for (int j = 0; j < 1000; j++) {
s.write((int) 'x');
s.flush();
try (FileOutputStream s = new FileOutputStream(file, true)) {
for (int j = 0; j < 1000; j++) {
s.write((int) 'x');
s.flush();
}
}
s.close();
} catch (Throwable t) { unexpected(t); }}});
es.shutdown();
es.awaitTermination(10L, TimeUnit.MINUTES);
......
......@@ -35,8 +35,9 @@ public class Encode implements Runnable {
new Encode();
}
final ServerSocket ss = new ServerSocket(0);
Encode() throws Exception {
ss = new ServerSocket(0);
(new Thread(this)).start();
String toEncode = "\uD800\uDC00 \uD801\uDC01 ";
String enc1 = URLEncoder.encode(toEncode, "UTF-8");
......@@ -47,27 +48,31 @@ public class Encode implements Runnable {
"/missing.nothtml";
HttpURLConnection uc = (HttpURLConnection)new URL(url).openConnection();
uc.connect();
String enc2 = URLEncoder.encode(toEncode, "UTF-8");
if (!enc1.equals(enc2))
throw new RuntimeException("test failed");
uc.disconnect();
try {
String enc2 = URLEncoder.encode(toEncode, "UTF-8");
if (!enc1.equals(enc2)) {
System.out.println("test failed");
throw new RuntimeException("test failed");
}
} finally {
uc.disconnect();
}
}
ServerSocket ss;
public void run() {
try {
Socket s = ss.accept();
BufferedReader in = new BufferedReader(
new InputStreamReader(s.getInputStream()));
try (ServerSocket serv = ss;
Socket s = serv.accept();
BufferedReader in =
new BufferedReader(new InputStreamReader(s.getInputStream())))
{
String req = in.readLine();
PrintStream out = new PrintStream(new BufferedOutputStream(
s.getOutputStream()));
out.print("HTTP/1.1 403 Forbidden\r\n");
out.print("\r\n");
out.flush();
s.close();
ss.close();
try (OutputStream os = s.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(os);
PrintStream out = new PrintStream(bos))
{
out.print("HTTP/1.1 403 Forbidden\r\n");
out.print("\r\n");
}
} catch (Exception e) {
e.printStackTrace();
}
......
......@@ -34,11 +34,11 @@ public class EncodingConstructor {
public static void main(String args[]) throws Exception {
ByteArrayOutputStream bo = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(bo, false, "UTF-8");
String s = "xyzzy";
int n = s.length();
ps.print(s);
ps.close();
try (PrintStream ps = new PrintStream(bo, false, "UTF-8")) {
ps.print(s);
}
byte[] ba = bo.toByteArray();
if (ba.length != n)
throw new Exception("Length mismatch: " + n + " " + ba.length);
......
......@@ -35,6 +35,8 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.nio.file.Files;
import java.nio.file.Path;
public class FailingConstructors {
static final String fileName = "FailingConstructorsTest";
......@@ -45,14 +47,13 @@ public class FailingConstructors {
test(false, new File(fileName));
/* create the file and write its contents */
File file = File.createTempFile(fileName, null);
file.deleteOnExit();
FileOutputStream fos = new FileOutputStream(file);
fos.write(FILE_CONTENTS.getBytes());
fos.close();
test(true, file);
file.delete();
Path path = Files.createTempFile(fileName, null);
try {
Files.write(path, FILE_CONTENTS.getBytes());
test(true, path.toFile());
} finally {
Files.delete(path);
}
}
private static void test(boolean exists, File file) throws Throwable {
......
......@@ -27,7 +27,7 @@
* @build install/SerialDriver.java test/SerialDriver.java extension/ExtendedObjectInputStream.java
* @summary Enable resolveClass() to accommodate package renaming.
* This fix enables one to implement a resolveClass method that maps a
* Serialiazable class within a serialization stream to the same class
* Serializable class within a serialization stream to the same class
* in a different package within the JVM runtime. See run shell script
* for instructions on how to run this test.
*/
......@@ -86,16 +86,15 @@ public class SerialDriver implements Serializable {
File f = new File("stream.ser");
if (serialize) {
// Serialize the subclass
try {
FileOutputStream fo = new FileOutputStream(f);
ObjectOutputStream so = new ObjectOutputStream(fo);
try (FileOutputStream fo = new FileOutputStream(f);
ObjectOutputStream so = new ObjectOutputStream(fo))
{
so.writeObject(obj);
/* Skip arrays since they do not work with rename yet.
The serialVersionUID changes due to the name change
and there is no way to set the serialVersionUID for an
array. */
so.writeObject(array);
so.flush();
} catch (Exception e) {
System.out.println(e);
throw e;
......@@ -103,16 +102,14 @@ public class SerialDriver implements Serializable {
}
if (deserialize) {
// Deserialize the subclass
try {
FileInputStream fi = new FileInputStream(f);
ExtendedObjectInputStream si =
new ExtendedObjectInputStream(fi);
try (FileInputStream fi = new FileInputStream(f);
ExtendedObjectInputStream si = new ExtendedObjectInputStream(fi))
{
si.addRenamedClassName("test.SerialDriver", "install.SerialDriver");
si.addRenamedClassName("[Ltest.SerialDriver;",
"[Linstall.SerialDriver");
obj = (SerialDriver) si.readObject();
array = (SerialDriver[]) si.readObject();
si.close();
} catch (Exception e) {
System.out.println(e);
throw e;
......
......@@ -27,7 +27,7 @@
* @build install/SerialDriver.java test/SerialDriver.java extension/ExtendedObjectInputStream.java
* @summary Enable resolveClass() to accommodate package renaming.
* This fix enables one to implement a resolveClass method that maps a
* Serialiazable class within a serialization stream to the same class
* Serializable class within a serialization stream to the same class
* in a different package within the JVM runtime. See run shell script
* for instructions on how to run this test.
*/
......@@ -83,14 +83,13 @@ public class SerialDriver implements Serializable {
File f = new File("stream.ser");
if (serialize) {
// Serialize the subclass
try {
FileOutputStream fo = new FileOutputStream(f);
ObjectOutputStream so = new ObjectOutputStream(fo);
try (FileOutputStream fo = new FileOutputStream(f);
ObjectOutputStream so = new ObjectOutputStream(fo))
{
so.writeObject(obj);
/* Comment out since renaming arrays does not work
since it changes the serialVersionUID. */
so.writeObject(array);
so.flush();
} catch (Exception e) {
System.out.println(e);
throw e;
......@@ -98,16 +97,15 @@ public class SerialDriver implements Serializable {
}
if (deserialize) {
// Deserialize the subclass
try {
FileInputStream fi = new FileInputStream(f);
ExtendedObjectInputStream si = new ExtendedObjectInputStream(fi);
try (FileInputStream fi = new FileInputStream(f);
ExtendedObjectInputStream si = new ExtendedObjectInputStream(fi))
{
si.addRenamedClassName("install.SerialDriver",
"test.SerialDriver");
si.addRenamedClassName("[Linstall.SerialDriver;",
"[Ltest.SerialDriver");
obj = (SerialDriver) si.readObject();
array = (SerialDriver[]) si.readObject();
si.close();
} catch (Exception e) {
System.out.println(e);
throw e;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册