diff options
author | Gary D. Gregory <ggregory@apache.org> | 2016-06-13 07:41:48 +0000 |
---|---|---|
committer | Gary D. Gregory <ggregory@apache.org> | 2016-06-13 07:41:48 +0000 |
commit | a35b256ce3c2aebcc96d054b2a526bb37b4f0bd4 (patch) | |
tree | 5d228a2f5e9c65192f5ede794769e4374fae14e9 | |
parent | 687fd988a316c937698c6c550b3c87507a60e361 (diff) | |
download | apache-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
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 { |