aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary D. Gregory <ggregory@apache.org>2016-06-13 07:41:48 +0000
committerGary D. Gregory <ggregory@apache.org>2016-06-13 07:41:48 +0000
commita35b256ce3c2aebcc96d054b2a526bb37b4f0bd4 (patch)
tree5d228a2f5e9c65192f5ede794769e4374fae14e9
parent687fd988a316c937698c6c550b3c87507a60e361 (diff)
downloadapache-commons-bcel-a35b256ce3c2aebcc96d054b2a526bb37b4f0bd4.tar.gz
Use try-with-resources.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/bcel/trunk@1748108 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/main/java/org/apache/bcel/classfile/JavaClass.java10
-rw-r--r--src/main/java/org/apache/bcel/generic/AnnotationEntryGen.java64
-rw-r--r--src/main/java/org/apache/bcel/util/Class2HTML.java29
-rw-r--r--src/main/java/org/apache/bcel/util/ClassLoaderRepository.java17
-rw-r--r--src/main/java/org/apache/bcel/util/ClassPath.java5
-rw-r--r--src/main/java/org/apache/bcel/util/ClassPathRepository.java37
-rw-r--r--src/main/java/org/apache/bcel/util/MemorySensitiveClassPathRepository.java38
7 files changed, 84 insertions, 116 deletions
diff --git a/src/main/java/org/apache/bcel/classfile/JavaClass.java b/src/main/java/org/apache/bcel/classfile/JavaClass.java
index 03f0537f..f3d3cd52 100644
--- a/src/main/java/org/apache/bcel/classfile/JavaClass.java
+++ b/src/main/java/org/apache/bcel/classfile/JavaClass.java
@@ -229,7 +229,7 @@ public class JavaClass extends AccessFlags implements Cloneable, Node, Comparabl
* @param file Output file
* @throws IOException
*/
- public void dump( final File file ) throws IOException {
+ public void dump(final File file) throws IOException {
String parent = file.getParent();
if (parent != null) {
File dir = new File(parent);
@@ -239,14 +239,8 @@ public class JavaClass extends AccessFlags implements Cloneable, Node, Comparabl
}
}
}
- DataOutputStream dos = null;
- try {
- dos = new DataOutputStream(new FileOutputStream(file));
+ try (DataOutputStream dos = new DataOutputStream(new FileOutputStream(file))) {
dump(dos);
- } finally {
- if (dos != null) {
- dos.close();
- }
}
}
diff --git a/src/main/java/org/apache/bcel/generic/AnnotationEntryGen.java b/src/main/java/org/apache/bcel/generic/AnnotationEntryGen.java
index aeedbfd4..a90a600d 100644
--- a/src/main/java/org/apache/bcel/generic/AnnotationEntryGen.java
+++ b/src/main/java/org/apache/bcel/generic/AnnotationEntryGen.java
@@ -216,24 +216,22 @@ public class AnnotationEntryGen {
ByteArrayOutputStream rvaBytes = new ByteArrayOutputStream();
ByteArrayOutputStream riaBytes = new ByteArrayOutputStream();
- DataOutputStream rvaDos = new DataOutputStream(rvaBytes);
- DataOutputStream riaDos = new DataOutputStream(riaBytes);
-
- rvaDos.writeShort(countVisible);
- riaDos.writeShort(countInvisible);
-
- // put the annotations in the right output stream
- for (AnnotationEntryGen a : annotationEntryGens) {
- if (a.isRuntimeVisible()) {
- a.dump(rvaDos);
- } else {
- a.dump(riaDos);
+ try (DataOutputStream rvaDos = new DataOutputStream(rvaBytes);
+ DataOutputStream riaDos = new DataOutputStream(riaBytes)) {
+
+ rvaDos.writeShort(countVisible);
+ riaDos.writeShort(countInvisible);
+
+ // put the annotations in the right output stream
+ for (AnnotationEntryGen a : annotationEntryGens) {
+ if (a.isRuntimeVisible()) {
+ a.dump(rvaDos);
+ } else {
+ a.dump(riaDos);
+ }
}
}
- rvaDos.close();
- riaDos.close();
-
byte[] rvaData = rvaBytes.toByteArray();
byte[] riaData = riaBytes.toByteArray();
@@ -296,34 +294,34 @@ public class AnnotationEntryGen {
}
// Lets do the visible ones
ByteArrayOutputStream rvaBytes = new ByteArrayOutputStream();
- DataOutputStream rvaDos = new DataOutputStream(rvaBytes);
- rvaDos.writeByte(vec.length); // First goes number of parameters
- for (int i = 0; i < vec.length; i++) {
- rvaDos.writeShort(visCount[i]);
- if (visCount[i] > 0) {
- for (AnnotationEntryGen element : vec[i]) {
- if (element.isRuntimeVisible()) {
- element.dump(rvaDos);
+ try (DataOutputStream rvaDos = new DataOutputStream(rvaBytes)) {
+ rvaDos.writeByte(vec.length); // First goes number of parameters
+ for (int i = 0; i < vec.length; i++) {
+ rvaDos.writeShort(visCount[i]);
+ if (visCount[i] > 0) {
+ for (AnnotationEntryGen element : vec[i]) {
+ if (element.isRuntimeVisible()) {
+ element.dump(rvaDos);
+ }
}
}
}
}
- rvaDos.close();
// Lets do the invisible ones
ByteArrayOutputStream riaBytes = new ByteArrayOutputStream();
- DataOutputStream riaDos = new DataOutputStream(riaBytes);
- riaDos.writeByte(vec.length); // First goes number of parameters
- for (int i = 0; i < vec.length; i++) {
- riaDos.writeShort(invisCount[i]);
- if (invisCount[i] > 0) {
- for (AnnotationEntryGen element : vec[i]) {
- if (!element.isRuntimeVisible()) {
- element.dump(riaDos);
+ try (DataOutputStream riaDos = new DataOutputStream(riaBytes)) {
+ riaDos.writeByte(vec.length); // First goes number of parameters
+ for (int i = 0; i < vec.length; i++) {
+ riaDos.writeShort(invisCount[i]);
+ if (invisCount[i] > 0) {
+ for (AnnotationEntryGen element : vec[i]) {
+ if (!element.isRuntimeVisible()) {
+ element.dump(riaDos);
+ }
}
}
}
}
- riaDos.close();
byte[] rvaData = rvaBytes.toByteArray();
byte[] riaData = riaBytes.toByteArray();
int rvaIndex = -1;
diff --git a/src/main/java/org/apache/bcel/util/Class2HTML.java b/src/main/java/org/apache/bcel/util/Class2HTML.java
index 490ef6dd..883bd436 100644
--- a/src/main/java/org/apache/bcel/util/Class2HTML.java
+++ b/src/main/java/org/apache/bcel/util/Class2HTML.java
@@ -217,24 +217,19 @@ public class Class2HTML {
private void writeMainHTML( final AttributeHTML attribute_html ) throws IOException {
- PrintWriter file = new PrintWriter(new FileOutputStream(dir + class_name + ".html"));
+ try (PrintWriter file = new PrintWriter(new FileOutputStream(dir + class_name + ".html"))) {
+ file.println("<HTML>\n" + "<HEAD><TITLE>Documentation for " + class_name + "</TITLE>" + "</HEAD>\n"
+ + "<FRAMESET BORDER=1 cols=\"30%,*\">\n" + "<FRAMESET BORDER=1 rows=\"80%,*\">\n"
+ + "<FRAME NAME=\"ConstantPool\" SRC=\"" + class_name + "_cp.html" + "\"\n MARGINWIDTH=\"0\" "
+ + "MARGINHEIGHT=\"0\" FRAMEBORDER=\"1\" SCROLLING=\"AUTO\">\n" + "<FRAME NAME=\"Attributes\" SRC=\""
+ + class_name + "_attributes.html" + "\"\n MARGINWIDTH=\"0\" "
+ + "MARGINHEIGHT=\"0\" FRAMEBORDER=\"1\" SCROLLING=\"AUTO\">\n" + "</FRAMESET>\n"
+ + "<FRAMESET BORDER=1 rows=\"80%,*\">\n" + "<FRAME NAME=\"Code\" SRC=\"" + class_name
+ + "_code.html\"\n MARGINWIDTH=0 " + "MARGINHEIGHT=0 FRAMEBORDER=1 SCROLLING=\"AUTO\">\n"
+ + "<FRAME NAME=\"Methods\" SRC=\"" + class_name + "_methods.html\"\n MARGINWIDTH=0 "
+ + "MARGINHEIGHT=0 FRAMEBORDER=1 SCROLLING=\"AUTO\">\n" + "</FRAMESET></FRAMESET></HTML>");
+ }
Attribute[] attributes = java_class.getAttributes();
- file.println("<HTML>\n" + "<HEAD><TITLE>Documentation for " + class_name + "</TITLE>"
- + "</HEAD>\n" + "<FRAMESET BORDER=1 cols=\"30%,*\">\n"
- + "<FRAMESET BORDER=1 rows=\"80%,*\">\n" + "<FRAME NAME=\"ConstantPool\" SRC=\""
- + class_name + "_cp.html" + "\"\n MARGINWIDTH=\"0\" "
- + "MARGINHEIGHT=\"0\" FRAMEBORDER=\"1\" SCROLLING=\"AUTO\">\n"
- + "<FRAME NAME=\"Attributes\" SRC=\"" + class_name + "_attributes.html"
- + "\"\n MARGINWIDTH=\"0\" "
- + "MARGINHEIGHT=\"0\" FRAMEBORDER=\"1\" SCROLLING=\"AUTO\">\n" + "</FRAMESET>\n"
- + "<FRAMESET BORDER=1 rows=\"80%,*\">\n" + "<FRAME NAME=\"Code\" SRC=\""
- + class_name + "_code.html\"\n MARGINWIDTH=0 "
- + "MARGINHEIGHT=0 FRAMEBORDER=1 SCROLLING=\"AUTO\">\n"
- + "<FRAME NAME=\"Methods\" SRC=\"" + class_name
- + "_methods.html\"\n MARGINWIDTH=0 "
- + "MARGINHEIGHT=0 FRAMEBORDER=1 SCROLLING=\"AUTO\">\n"
- + "</FRAMESET></FRAMESET></HTML>");
- file.close();
for (int i = 0; i < attributes.length; i++) {
attribute_html.writeAttribute(attributes[i], "class" + i);
}
diff --git a/src/main/java/org/apache/bcel/util/ClassLoaderRepository.java b/src/main/java/org/apache/bcel/util/ClassLoaderRepository.java
index 5f2b2e8f..5ad10f87 100644
--- a/src/main/java/org/apache/bcel/util/ClassLoaderRepository.java
+++ b/src/main/java/org/apache/bcel/util/ClassLoaderRepository.java
@@ -79,25 +79,20 @@ public class ClassLoaderRepository implements Repository {
* Lookup a JavaClass object from the Class Name provided.
*/
@Override
- public JavaClass loadClass( final String className ) throws ClassNotFoundException {
+ public JavaClass loadClass(final String className) throws ClassNotFoundException {
String classFile = className.replace('.', '/');
JavaClass RC = findClass(className);
if (RC != null) {
return RC;
}
- try {
- InputStream is = loader.getResourceAsStream(classFile + ".class");
+ try (InputStream is = loader.getResourceAsStream(classFile + ".class")) {
if (is == null) {
throw new ClassNotFoundException(className + " not found.");
}
- try {
- ClassParser parser = new ClassParser(is, className);
- RC = parser.parse();
- storeClass(RC);
- return RC;
- } finally {
- is.close();
- }
+ ClassParser parser = new ClassParser(is, className);
+ RC = parser.parse();
+ storeClass(RC);
+ return RC;
} catch (IOException e) {
throw new ClassNotFoundException(className + " not found: " + e, e);
}
diff --git a/src/main/java/org/apache/bcel/util/ClassPath.java b/src/main/java/org/apache/bcel/util/ClassPath.java
index 226776a8..c3f19560 100644
--- a/src/main/java/org/apache/bcel/util/ClassPath.java
+++ b/src/main/java/org/apache/bcel/util/ClassPath.java
@@ -307,10 +307,9 @@ public class ClassPath {
* @param suffix file name ends with suffix, e.g. .java
* @return byte array for file on class path
*/
- public byte[] getBytes( final String name, final String suffix ) throws IOException {
+ public byte[] getBytes(final String name, final String suffix) throws IOException {
DataInputStream dis = null;
- try {
- InputStream is = getInputStream(name, suffix);
+ try (InputStream is = getInputStream(name, suffix)) {
if (is == null) {
throw new IOException("Couldn't find: " + name + suffix);
}
diff --git a/src/main/java/org/apache/bcel/util/ClassPathRepository.java b/src/main/java/org/apache/bcel/util/ClassPathRepository.java
index 2619c5bb..d8145d88 100644
--- a/src/main/java/org/apache/bcel/util/ClassPathRepository.java
+++ b/src/main/java/org/apache/bcel/util/ClassPathRepository.java
@@ -106,28 +106,21 @@ public class ClassPathRepository implements Repository {
*/
@Override
public JavaClass loadClass(final Class<?> clazz) throws ClassNotFoundException {
- InputStream clsStream = null;
- try {
- String className = clazz.getName();
- JavaClass repositoryClass = findClass(className);
- if (repositoryClass != null) {
- return repositoryClass;
- }
- String name = className;
- int i = name.lastIndexOf('.');
- if (i > 0) {
- name = name.substring(i + 1);
- }
- clsStream = clazz.getResourceAsStream(name + ".class");
- return loadClass(clsStream, className);
- } finally {
- try {
- if (clsStream != null) {
- clsStream.close();
- }
- } catch (IOException ioe) {
- // don't care
- }
+ String className = clazz.getName();
+ JavaClass repositoryClass = findClass(className);
+ if (repositoryClass != null) {
+ return repositoryClass;
+ }
+ String name = className;
+ int i = name.lastIndexOf('.');
+ if (i > 0) {
+ name = name.substring(i + 1);
+ }
+ JavaClass cls = null;
+ try (InputStream clsStream = clazz.getResourceAsStream(name + ".class")) {
+ return cls = loadClass(clsStream, className);
+ } catch (IOException e) {
+ return cls;
}
}
diff --git a/src/main/java/org/apache/bcel/util/MemorySensitiveClassPathRepository.java b/src/main/java/org/apache/bcel/util/MemorySensitiveClassPathRepository.java
index e8520343..b97e2cf7 100644
--- a/src/main/java/org/apache/bcel/util/MemorySensitiveClassPathRepository.java
+++ b/src/main/java/org/apache/bcel/util/MemorySensitiveClassPathRepository.java
@@ -112,29 +112,23 @@ public class MemorySensitiveClassPathRepository implements Repository {
*/
@Override
public JavaClass loadClass(final Class<?> clazz) throws ClassNotFoundException {
- InputStream clsStream = null;
- try {
- String className = clazz.getName();
- JavaClass repositoryClass = findClass(className);
- if (repositoryClass != null) {
- return repositoryClass;
- }
- String name = className;
- int i = name.lastIndexOf('.');
- if (i > 0) {
- name = name.substring(i + 1);
- }
- clsStream = clazz.getResourceAsStream(name + ".class");
- return loadClass(clsStream, className);
- } finally {
- try {
- if (clsStream != null) {
- clsStream.close();
- }
- } catch (IOException ioe) {
- // don't care
- }
+ String className = clazz.getName();
+ JavaClass repositoryClass = findClass(className);
+ if (repositoryClass != null) {
+ return repositoryClass;
+ }
+ String name = className;
+ int i = name.lastIndexOf('.');
+ if (i > 0) {
+ name = name.substring(i + 1);
}
+ JavaClass cls = null;
+ try (InputStream clsStream = clazz.getResourceAsStream(name + ".class")) {
+ return cls = loadClass(clsStream, className);
+ } catch (IOException e) {
+ return cls;
+ }
+
}
private JavaClass loadClass(final InputStream is, final String className) throws ClassNotFoundException {