[jboss-svn-commits] JBL Code SVN: r24748 - in labs/jbossrules/trunk: drools-core/src/main/java/org/drools/agent and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jan 16 00:56:28 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-01-16 00:56:28 -0500 (Fri, 16 Jan 2009)
New Revision: 24748
Modified:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ChainedProperties.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/RuleAgent.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/asm/ClassReader.java
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-api/src/main/java/org/drools/util/ChainedProperties.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ChainedProperties.java 2009-01-16 05:31:54 UTC (rev 24747)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ChainedProperties.java 2009-01-16 05:56:28 UTC (rev 24748)
@@ -260,7 +260,9 @@
}
Properties properties = new Properties();
try {
- properties.load( confURL.openStream() );
+ java.io.InputStream is = confURL.openStream();
+ properties.load( is );
+ is.close();
chain.add( properties );
} catch ( IOException e ) {
//throw new IllegalArgumentException( "Invalid URL to properties file '" + confURL.toExternalForm() + "'" );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/RuleAgent.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/RuleAgent.java 2009-01-16 05:31:54 UTC (rev 24747)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/RuleAgent.java 2009-01-16 05:56:28 UTC (rev 24748)
@@ -96,9 +96,9 @@
URLScanner.class );
}
};
-
- String name;
+ String name;
+
/**
* This is true if the rulebase is created anew each time.
*/
@@ -284,7 +284,7 @@
listener,
ruleBaseConfiguration );
}
-
+
public void setName(String name) {
this.name = name;
if ( this.listener != null ) {
@@ -298,11 +298,20 @@
try {
props.load( in );
return props;
-
} catch ( IOException e ) {
throw new RuntimeDroolsException( "Unable to load properties. Needs to be the path and name of a config file on your classpath.",
e );
+ } finally {
+ if ( null != in ) {
+ try {
+ in.close();
+ } catch ( IOException e ) {
+ throw new RuntimeDroolsException( "Unable to load properties. Could not close InputStream.",
+ e );
+ }
+ }
}
+
}
/**
@@ -426,7 +435,7 @@
default :
if ( !inquotes && (c == ' ' || c == '\n' || c == '\r' || c == '\t') ) {
- if ( !"".equals(current.trim()) ) {
+ if ( !"".equals( current.trim() ) ) {
items.add( current );
current = "";
}
@@ -436,7 +445,7 @@
break;
}
}
- if ( !"".equals(current.trim()) ) {
+ if ( !"".equals( current.trim() ) ) {
items.add( current );
}
@@ -570,7 +579,7 @@
}
public void warning(String message,
- Object object) {
+ Object object) {
}
};
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/asm/ClassReader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/asm/ClassReader.java 2009-01-16 05:31:54 UTC (rev 24747)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/asm/ClassReader.java 2009-01-16 05:56:28 UTC (rev 24748)
@@ -276,15 +276,28 @@
if ( is == null ) {
throw new IOException( "Class not found" );
}
- byte[] b = new byte[is.available()];
- int len = 0;
- while ( true ) {
- final int n = is.read( b,
- len,
- b.length - len );
- if ( n == -1 ) {
- if ( len < b.length ) {
- final byte[] c = new byte[len];
+ try {
+ byte[] b = new byte[is.available()];
+ int len = 0;
+ while ( true ) {
+ final int n = is.read( b,
+ len,
+ b.length - len );
+ if ( n == -1 ) {
+ if ( len < b.length ) {
+ final byte[] c = new byte[len];
+ System.arraycopy( b,
+ 0,
+ c,
+ 0,
+ len );
+ b = c;
+ }
+ return b;
+ }
+ len += n;
+ if ( len == b.length ) {
+ final byte[] c = new byte[b.length + 1000];
System.arraycopy( b,
0,
c,
@@ -292,18 +305,14 @@
len );
b = c;
}
- return b;
}
- len += n;
- if ( len == b.length ) {
- final byte[] c = new byte[b.length + 1000];
- System.arraycopy( b,
- 0,
- c,
- 0,
- len );
- b = c;
+ } finally {
+ try {
+ is.close();
+ } catch ( IOException e ) {
+ throw new RuntimeException( "Unable to close InputStream", e);
}
+
}
}
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:31:54 UTC (rev 24747)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/asm/ClassFieldInspector.java 2009-01-16 05:56:28 UTC (rev 24748)
@@ -75,6 +75,7 @@
processClassWithoutByteCode( clazz,
includeFinalMethods );
}
+ stream.close();
}
/** Walk up the inheritance hierarchy recursively, reading in fields */
@@ -99,6 +100,7 @@
processClassWithoutByteCode( clazz.getSuperclass(),
includeFinalMethods );
}
+ parentStream.close();
}
if ( clazz.isInterface() ) {
final Class< ? >[] interfaces = clazz.getInterfaces();
@@ -113,6 +115,7 @@
processClassWithoutByteCode( interfaces[i],
includeFinalMethods );
}
+ parentStream.close();
}
}
}
More information about the jboss-svn-commits
mailing list