Author: toad
Date: 2007-11-28 00:05:25 +0000 (Wed, 28 Nov 2007)
New Revision: 16000
Modified:
trunk/freenet/src/freenet/io/AddressTracker.java
Log:
don't leak a filehandle if something is thrown
Modified: trunk/freenet/src/freenet/io/AddressTracker.java
===================================================================
--- trunk/freenet/src/freenet/io/AddressTracker.java 2007-11-27 23:24:26 UTC
(rev 15999)
+++ trunk/freenet/src/freenet/io/AddressTracker.java 2007-11-28 00:05:25 UTC
(rev 16000)
@@ -232,18 +232,27 @@
File dataBak = new File(nodeDir, "packets-"+port+".bak");
data.delete();
dataBak.delete();
+ FileOutputStream fos = null;
try {
- FileOutputStream fos = new FileOutputStream(dataBak);
+ fos = new FileOutputStream(dataBak);
BufferedOutputStream bos = new
BufferedOutputStream(fos);
OutputStreamWriter osw = new OutputStreamWriter(bos,
"UTF-8");
BufferedWriter bw = new BufferedWriter(osw);
SimpleFieldSet fs = getFieldset(bootID);
fs.writeTo(bw);
bw.close();
+ fos = null;
dataBak.renameTo(data);
} catch (IOException e) {
Logger.error(this, "Cannot store packet tracker to
disk");
return;
+ } finally {
+ if(fos != null)
+ try {
+ fos.close();
+ } catch (IOException e) {
+ // Ignore
+ }
}
}