Author: mbenson Date: Sun Aug 11 18:23:15 2013 New Revision: 1512984 URL: http://svn.apache.org/r1512984 Log: close inputStreams
Modified: commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/BlueprintingVisitor.java commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerCleaner.java Modified: commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/BlueprintingVisitor.java URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/BlueprintingVisitor.java?rev=1512984&r1=1512983&r2=1512984&view=diff ============================================================================== --- commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/BlueprintingVisitor.java (original) +++ commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/BlueprintingVisitor.java Sun Aug 11 18:23:15 2013 @@ -18,6 +18,7 @@ */ package org.apache.commons.weaver.privilizer; +import java.io.InputStream; import java.lang.reflect.Modifier; import java.util.ArrayDeque; import java.util.ArrayList; @@ -30,6 +31,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.Validate; import org.apache.commons.lang3.mutable.MutableObject; @@ -107,11 +109,14 @@ class BlueprintingVisitor extends Privil private ClassNode read(String className) { final ClassNode result = new ClassNode(Opcodes.ASM4); + InputStream bytecode = null; try { - new ClassReader(privilizer().fileArchive.getBytecode(className)).accept(result, ClassReader.SKIP_DEBUG - | ClassReader.EXPAND_FRAMES); + bytecode = privilizer().fileArchive.getBytecode(className); + new ClassReader(bytecode).accept(result, ClassReader.SKIP_DEBUG | ClassReader.EXPAND_FRAMES); } catch (Exception e) { throw new RuntimeException(e); + } finally { + IOUtils.closeQuietly(bytecode); } return result; } @@ -197,8 +202,10 @@ class BlueprintingVisitor extends Privil final Deque<Type> stk = new ArrayDeque<Type>(); while (next.getValue() != null) { stk.push(next.getValue()); - new ClassReader(privilizer().fileArchive.getBytecode(next.getValue().getInternalName())).accept( - privilizer().new PrivilizerClassVisitor() { + InputStream bytecode = null; + try { + bytecode = privilizer().fileArchive.getBytecode(next.getValue().getInternalName()); + new ClassReader(bytecode).accept(privilizer().new PrivilizerClassVisitor() { @Override public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { @@ -219,6 +226,9 @@ class BlueprintingVisitor extends Privil return null; } }, ClassReader.SKIP_CODE); + } finally { + IOUtils.closeQuietly(bytecode); + } if (fieldAccessMap.containsKey(key)) { break; } Modified: commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java?rev=1512984&r1=1512983&r2=1512984&view=diff ============================================================================== --- commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java (original) +++ commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java Sun Aug 11 18:23:15 2013 @@ -20,6 +20,7 @@ package org.apache.commons.weaver.privil import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.io.PrintWriter; import java.io.StringWriter; import java.net.URLClassLoader; @@ -28,6 +29,7 @@ import java.util.List; import java.util.Set; import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; @@ -158,8 +160,10 @@ public class Privilizer { void blueprint(final Class<?> type, final Privilizing privilizing) { Object[] args = { type.getName(), privilizing }; env.debug("blueprinting class %s %s", args); + InputStream bytecode = null; try { - final ClassReader classReader = new ClassReader(fileArchive.getBytecode(type.getName())); + bytecode = fileArchive.getBytecode(type.getName()); + final ClassReader classReader = new ClassReader(bytecode); ClassVisitor cv; cv = new WriteClass(new ClassWriter(classReader, ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS)); @@ -169,14 +173,18 @@ public class Privilizer { classReader.accept(cv, ClassReader.EXPAND_FRAMES); } catch (Exception e) { throw new RuntimeException(e); + } finally { + IOUtils.closeQuietly(bytecode); } } void privilize(final Class<?> type) { Object[] args = { type.getName() }; env.debug("privilizing class %s", args); + InputStream bytecode = null; try { - final ClassReader classReader = new ClassReader(fileArchive.getBytecode(type.getName())); + bytecode = fileArchive.getBytecode(type.getName()); + final ClassReader classReader = new ClassReader(bytecode); ClassVisitor cv; cv = new WriteClass(new ClassWriter(classReader, ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS)); cv = new PrivilizingVisitor(this, cv); @@ -184,6 +192,8 @@ public class Privilizer { classReader.accept(cv, ClassReader.EXPAND_FRAMES); } catch (Exception e) { throw new RuntimeException(e); + } finally { + IOUtils.closeQuietly(bytecode); } } Modified: commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerCleaner.java URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerCleaner.java?rev=1512984&r1=1512983&r2=1512984&view=diff ============================================================================== --- commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerCleaner.java (original) +++ commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerCleaner.java Sun Aug 11 18:23:15 2013 @@ -19,10 +19,12 @@ package org.apache.commons.weaver.privilizer; import java.io.File; +import java.io.InputStream; import java.lang.annotation.ElementType; import java.util.ArrayList; import java.util.List; +import org.apache.commons.io.IOUtils; import org.apache.commons.weaver.model.ScanRequest; import org.apache.commons.weaver.model.Scanner; import org.apache.commons.weaver.model.WeavableClass; @@ -55,8 +57,10 @@ public class PrivilizerCleaner implement final String className = weavableClass.getTarget().getName(); environment.debug("Class %s privilized with %s; deleting.", className, privilizedPolicy); + InputStream bytecode = null; try { - final ClassReader classReader = new ClassReader(privilizer.fileArchive.getBytecode(className)); + bytecode = privilizer.fileArchive.getBytecode(className); + final ClassReader classReader = new ClassReader(bytecode); classReader.accept(new ClassVisitor(Opcodes.ASM4) { @Override public void visit(int version, int access, String name, String signature, String superName, @@ -73,6 +77,8 @@ public class PrivilizerCleaner implement }, ClassReader.SKIP_CODE + ClassReader.SKIP_DEBUG + ClassReader.SKIP_FRAMES); } catch (Exception e) { throw new RuntimeException(e); + } finally { + IOUtils.closeQuietly(bytecode); } } boolean result = false;