提交 401ff5fb 编写于 作者: P pchelko

8027992: FileInputStream and BufferedInputStream should be closed in sun.applet.*

Reviewed-by: anthony, serb
上级 0ca485cd
......@@ -794,18 +794,13 @@ abstract class AppletPanel extends Panel implements AppletStub, Runnable {
doInit = true;
} else {
// serName is not null;
InputStream is = (InputStream)
java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction() {
public Object run() {
return loader.getResourceAsStream(serName);
}
});
ObjectInputStream ois =
new AppletObjectInputStream(is, loader);
Object serObject = ois.readObject();
applet = (Applet) serObject;
doInit = false; // skip over the first init
try (InputStream is = AccessController.doPrivileged(
(PrivilegedAction<InputStream>)() -> loader.getResourceAsStream(serName));
ObjectInputStream ois = new AppletObjectInputStream(is, loader)) {
applet = (Applet) ois.readObject();
doInit = false; // skip over the first init
}
}
// Determine the JDK level that the applet targets.
......@@ -1239,20 +1234,13 @@ abstract class AppletPanel extends Panel implements AppletStub, Runnable {
// append .class
final String resourceName = name + ".class";
InputStream is = null;
byte[] classHeader = new byte[8];
try {
is = (InputStream) java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction() {
public Object run() {
return loader.getResourceAsStream(resourceName);
}
});
try (InputStream is = AccessController.doPrivileged(
(PrivilegedAction<InputStream>) () -> loader.getResourceAsStream(resourceName))) {
// Read the first 8 bytes of the class file
int byteRead = is.read(classHeader, 0, 8);
is.close();
// return if the header is not read in entirely
// for some reasons.
......
......@@ -668,11 +668,11 @@ public class AppletViewer extends Frame implements AppletContext,
String dname = fd.getDirectory();
File file = new File(dname, fname);
try {
BufferedOutputStream s = new BufferedOutputStream(new FileOutputStream(file));
ObjectOutputStream os = new ObjectOutputStream(s);
showStatus(amh.getMessage("appletsave.err1",
panel.applet.toString(), file.toString()));
try (FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
ObjectOutputStream os = new ObjectOutputStream(bos)) {
showStatus(amh.getMessage("appletsave.err1", panel.applet.toString(), file.toString()));
os.writeObject(panel.applet);
} catch (IOException ex) {
System.err.println(amh.getMessage("appletsave.err2", ex));
......
......@@ -432,10 +432,8 @@ public class Main {
}
// SAVE THE FILE
try {
FileOutputStream out = new FileOutputStream(dotAV);
try (FileOutputStream out = new FileOutputStream(dotAV)) {
avProps.store(out, lookup("main.prop.store"));
out.close();
} catch (IOException e) {
System.err.println(lookup("main.err.prop.cantsave",
dotAV.toString()));
......@@ -472,13 +470,10 @@ public class Main {
// read the file
Properties tmpProps = new Properties();
try {
FileInputStream in = new FileInputStream(inFile);
try (FileInputStream in = new FileInputStream(inFile)) {
tmpProps.load(new BufferedInputStream(in));
in.close();
} catch (IOException e) {
System.err.println(lookup("main.err.prop.cantread",
inFile.toString()));
System.err.println(lookup("main.err.prop.cantread", inFile.toString()));
}
// pick off the properties we care about
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册