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;


Reply via email to