Author: toad
Date: 2008-11-26 15:41:32 +0000 (Wed, 26 Nov 2008)
New Revision: 23882
Modified:
trunk/freenet/src/freenet/support/compress/LZMACompressor.java
Log:
Don't forget to close the buckets.
Modified: trunk/freenet/src/freenet/support/compress/LZMACompressor.java
===================================================================
--- trunk/freenet/src/freenet/support/compress/LZMACompressor.java
2008-11-26 15:38:45 UTC (rev 23881)
+++ trunk/freenet/src/freenet/support/compress/LZMACompressor.java
2008-11-26 15:41:32 UTC (rev 23882)
@@ -16,6 +16,7 @@
import freenet.support.Logger;
import freenet.support.api.Bucket;
import freenet.support.api.BucketFactory;
+import freenet.support.io.Closer;
import freenet.support.io.CountedInputStream;
import freenet.support.io.CountedOutputStream;
@@ -27,17 +28,25 @@
output = bf.makeBucket(maxWriteLength);
if(Logger.shouldLog(Logger.MINOR, this))
Logger.minor(this, "Compressing "+data+" size
"+data.size()+" to new bucket "+output);
- CountedInputStream is = new CountedInputStream(new
BufferedInputStream(data.getInputStream()));
- CountedOutputStream os = new CountedOutputStream(new
BufferedOutputStream(output.getOutputStream()));
+ CountedInputStream cis = null;
+ CountedOutputStream cos = null;
+ try {
+ cis = new CountedInputStream(new
BufferedInputStream(data.getInputStream()));
+ cos = new CountedOutputStream(new
BufferedOutputStream(output.getOutputStream()));
Encoder encoder = new Encoder();
encoder.SetEndMarkerMode( true );
encoder.SetDictionarySize( 1 << 20 );
// enc.WriteCoderProperties( out );
// 5d 00 00 10 00
- encoder.Code( is, os, maxReadLength, maxWriteLength, null );
- os.close();
+ encoder.Code( cis, cos, maxReadLength, maxWriteLength, null );
if(Logger.shouldLog(Logger.MINOR, this))
- Logger.minor(this, "Output: "+output+" size
"+output.size()+" read "+is.count()+" written "+os.written());
+ Logger.minor(this, "Output: "+output+" size
"+output.size()+" read "+cis.count()+" written "+cos.written());
+ cis.close();
+ cos.close();
+ } finally {
+ Closer.close(cis);
+ Closer.close(cos);
+ }
return output;
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs