[jboss-svn-commits] JBL Code SVN: r24749 - labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/asm.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jan 16 01:35:57 EST 2009


Author: mark.proctor at jboss.com
Date: 2009-01-16 01:35:57 -0500 (Fri, 16 Jan 2009)
New Revision: 24749

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/asm/ClassFieldInspector.java
Log:
JBRULES-1672 Input streams are not closed when no longer needed
-Applied patch from JIRA to close input streams

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/asm/ClassFieldInspector.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/asm/ClassFieldInspector.java	2009-01-16 05:56:28 UTC (rev 24748)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/asm/ClassFieldInspector.java	2009-01-16 06:35:57 UTC (rev 24749)
@@ -68,14 +68,17 @@
         final InputStream stream = clazz.getResourceAsStream( name );
 
         if ( stream != null ) {
+            try {
             processClassWithByteCode( clazz,
                                       stream,
                                       includeFinalMethods );
+            } finally {
+                stream.close();
+            }
         } else {
             processClassWithoutByteCode( clazz,
                                          includeFinalMethods );
         }
-        stream.close();
     }
 
     /** Walk up the inheritance hierarchy recursively, reading in fields */
@@ -93,14 +96,17 @@
             final String name = getResourcePath( clazz.getSuperclass() );
             final InputStream parentStream = clazz.getResourceAsStream( name );
             if ( parentStream != null ) {
+                try {
                 processClassWithByteCode( clazz.getSuperclass(),
                                           parentStream,
                                           includeFinalMethods );
+                } finally {
+                    parentStream.close();
+                }
             } else {
                 processClassWithoutByteCode( clazz.getSuperclass(),
                                              includeFinalMethods );
             }
-            parentStream.close();
         }
         if ( clazz.isInterface() ) {
             final Class< ? >[] interfaces = clazz.getInterfaces();
@@ -108,14 +114,17 @@
                 final String name = getResourcePath( interfaces[i] );
                 final InputStream parentStream = clazz.getResourceAsStream( name );
                 if ( parentStream != null ) {
-                    processClassWithByteCode( interfaces[i],
-                                              parentStream,
-                                              includeFinalMethods );
+                    try {
+                        processClassWithByteCode( interfaces[i],
+                                                  parentStream,
+                                                  includeFinalMethods );
+                    } finally {
+                        parentStream.close();
+                    }
                 } else {
                     processClassWithoutByteCode( interfaces[i],
                                                  includeFinalMethods );
                 }
-                parentStream.close();
             }
         }
     }




More information about the jboss-svn-commits mailing list