Close streams immediately after using them.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2575 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Ray Greenwell
2003-05-14 21:34:01 +00:00
parent 37011fed41
commit e44f7c243a
4 changed files with 38 additions and 12 deletions
@@ -1,5 +1,5 @@
// //
// $Id: BundleUtil.java,v 1.5 2003/01/14 00:36:14 mdb Exp $ // $Id: BundleUtil.java,v 1.6 2003/05/14 21:34:01 ray Exp $
package com.threerings.cast.bundle; package com.threerings.cast.bundle;
@@ -9,6 +9,8 @@ import java.io.InputStream;
import java.io.InvalidClassException; import java.io.InvalidClassException;
import java.io.ObjectInputStream; import java.io.ObjectInputStream;
import com.samskivert.io.StreamUtil;
import com.threerings.cast.Log; import com.threerings.cast.Log;
import com.threerings.resource.ResourceBundle; import com.threerings.resource.ResourceBundle;
@@ -51,8 +53,9 @@ public class BundleUtil
public static Object loadObject (ResourceBundle bundle, String path) public static Object loadObject (ResourceBundle bundle, String path)
throws IOException, ClassNotFoundException throws IOException, ClassNotFoundException
{ {
InputStream bin = null;
try { try {
InputStream bin = bundle.getResource(path); bin = bundle.getResource(path);
if (bin == null) { if (bin == null) {
return null; return null;
} }
@@ -64,6 +67,9 @@ public class BundleUtil
", element=" + path + ", element=" + path +
", error=" + ice.getMessage() + "]."); ", error=" + ice.getMessage() + "].");
return null; return null;
} finally {
StreamUtil.close(bin);
} }
} }
} }
@@ -1,5 +1,5 @@
// //
// $Id: BundleUtil.java,v 1.2 2001/11/30 02:34:57 mdb Exp $ // $Id: BundleUtil.java,v 1.3 2003/05/14 21:34:01 ray Exp $
package com.threerings.media.tile.bundle; package com.threerings.media.tile.bundle;
@@ -8,6 +8,8 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.ObjectInputStream; import java.io.ObjectInputStream;
import com.samskivert.io.StreamUtil;
import com.threerings.resource.ResourceBundle; import com.threerings.resource.ResourceBundle;
/** /**
@@ -27,10 +29,15 @@ public class BundleUtil
throws IOException, ClassNotFoundException throws IOException, ClassNotFoundException
{ {
// unserialize the tileset bundles array // unserialize the tileset bundles array
InputStream tbin = bundle.getResource(METADATA_PATH); InputStream tbin = null;
ObjectInputStream oin = new ObjectInputStream( try {
new BufferedInputStream(tbin)); tbin = bundle.getResource(METADATA_PATH);
TileSetBundle tsb = (TileSetBundle)oin.readObject(); ObjectInputStream oin = new ObjectInputStream(
return tsb; new BufferedInputStream(tbin));
TileSetBundle tsb = (TileSetBundle)oin.readObject();
return tsb;
} finally {
StreamUtil.close(tbin);
}
} }
} }
@@ -1,11 +1,13 @@
// //
// $Id: MisoTileManager.java,v 1.4 2003/01/13 22:55:12 mdb Exp $ // $Id: MisoTileManager.java,v 1.5 2003/05/14 21:34:01 ray Exp $
package com.threerings.miso.tile; package com.threerings.miso.tile;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import com.samskivert.io.StreamUtil;
import com.threerings.resource.ResourceManager; import com.threerings.resource.ResourceManager;
import com.threerings.util.CompiledConfig; import com.threerings.util.CompiledConfig;
@@ -32,8 +34,9 @@ public class MisoTileManager extends TileManager
super(imgr); super(imgr);
// look for a fringe configuration in the appropriate place // look for a fringe configuration in the appropriate place
InputStream in = null;
try { try {
InputStream in = rmgr.getResource(FRINGE_CONFIG_PATH); in = rmgr.getResource(FRINGE_CONFIG_PATH);
FringeConfiguration config = (FringeConfiguration) FringeConfiguration config = (FringeConfiguration)
CompiledConfig.loadConfig(in); CompiledConfig.loadConfig(in);
@@ -44,6 +47,9 @@ public class MisoTileManager extends TileManager
Log.warning("Unable to load fringe configuration " + Log.warning("Unable to load fringe configuration " +
"[path=" + FRINGE_CONFIG_PATH + "[path=" + FRINGE_CONFIG_PATH +
", error=" + ioe + "]."); ", error=" + ioe + "].");
} finally {
StreamUtil.close(in);
} }
} }
@@ -1,5 +1,5 @@
// //
// $Id: SparseMisoSceneParser.java,v 1.1 2003/04/19 22:40:34 mdb Exp $ // $Id: SparseMisoSceneParser.java,v 1.2 2003/05/14 21:34:01 ray Exp $
package com.threerings.miso.tools.xml; package com.threerings.miso.tools.xml;
@@ -9,6 +9,7 @@ import java.io.FileInputStream;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import org.apache.commons.digester.Digester; import org.apache.commons.digester.Digester;
import com.samskivert.io.StreamUtil;
import com.samskivert.util.StringUtil; import com.samskivert.util.StringUtil;
import com.threerings.tools.xml.NestableRuleSet; import com.threerings.tools.xml.NestableRuleSet;
@@ -55,7 +56,13 @@ public class SparseMisoSceneParser
{ {
_model = null; _model = null;
_digester.push(this); _digester.push(this);
_digester.parse(new FileInputStream(path)); FileInputStream stream = null;
try {
stream = new FileInputStream(path);
_digester.parse(stream);
} finally {
StreamUtil.close(stream);
}
return _model; return _model;
} }