From: <svn...@os...> - 2010-09-21 06:43:08
|
Author: bencaradocdavies Date: 2010-09-21 06:43:02 +0000 (Tue, 21 Sep 2010) New Revision: 36216 Modified: branches/2.6.x/modules/unsupported/app-schema/app-schema/src/main/java/org/geotools/filter/expression/VocabFunction.java Log: Fixed resource leak and added a buffer in app-schema vocab handling [GEOT-3271] Modified: branches/2.6.x/modules/unsupported/app-schema/app-schema/src/main/java/org/geotools/filter/expression/VocabFunction.java =================================================================== --- branches/2.6.x/modules/unsupported/app-schema/app-schema/src/main/java/org/geotools/filter/expression/VocabFunction.java 2010-09-21 06:39:00 UTC (rev 36215) +++ branches/2.6.x/modules/unsupported/app-schema/app-schema/src/main/java/org/geotools/filter/expression/VocabFunction.java 2010-09-21 06:43:02 UTC (rev 36216) @@ -15,10 +15,12 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ +import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -141,12 +143,22 @@ properties = new Properties(); File file = new File( urn ); if( file.exists() ){ + InputStream input = null; try { - properties.load( new FileInputStream( file ) ); + input = new BufferedInputStream(new FileInputStream(file)); + properties.load(input); } catch (FileNotFoundException e) { throw new RuntimeException("Could not find file for lookup table "+urn ); } catch (IOException e) { throw new RuntimeException("Difficulty parsing lookup table "+urn ); + } finally { + if (input != null) { + try { + input.close(); + } catch (IOException e) { + // we tried; + } + } } } else { |