Author: nextgens
Date: 2008-02-09 00:57:07 +0000 (Sat, 09 Feb 2008)
New Revision: 17729
Modified:
trunk/freenet/src/freenet/clients/http/filter/ContentFilter.java
trunk/freenet/src/freenet/clients/http/filter/PNGFilter.java
Log:
PNGFilter: Fix the data-corruption bug and re-enable the stripper
Modified: trunk/freenet/src/freenet/clients/http/filter/ContentFilter.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/filter/ContentFilter.java
2008-02-09 00:55:21 UTC (rev 17728)
+++ trunk/freenet/src/freenet/clients/http/filter/ContentFilter.java
2008-02-09 00:57:07 UTC (rev 17729)
@@ -54,7 +54,7 @@
// PNG - has a filter
register(new MIMEType("image/png", "png", new String[0], new
String[0],
- true, false, new PNGFilter(false, false,
false)/* FIXME: reenable when they work */, null, false, false, false, false,
true, false,
+ true, false, new PNGFilter(true, true, false)/*
FIXME: reenable when they work */, null, false, false, false, false, true,
false,
l10n("imagePngReadAdvice"),
l10n("imagePngWriteAdvice"), false, null,
null));
Modified: trunk/freenet/src/freenet/clients/http/filter/PNGFilter.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/filter/PNGFilter.java
2008-02-09 00:55:21 UTC (rev 17728)
+++ trunk/freenet/src/freenet/clients/http/filter/PNGFilter.java
2008-02-09 00:57:07 UTC (rev 17729)
@@ -16,12 +16,14 @@
import freenet.support.HexUtil;
import freenet.support.Logger;
import freenet.support.LoggerHook.InvalidThresholdException;
+import freenet.support.OutputStreamLogger;
import freenet.support.api.Bucket;
import freenet.support.api.BucketFactory;
import freenet.support.io.ArrayBucketFactory;
import freenet.support.io.BucketTools;
import freenet.support.io.Closer;
import freenet.support.io.FileBucket;
+import freenet.support.io.FileUtil;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@@ -65,7 +67,6 @@
try {
readFilter(data, bf, charset, otherParams, cb,
deleteText, deleteTimestamp, checkCRCs, os);
os.flush();
- os.close();
} finally {
Closer.close(os);
}
@@ -226,20 +227,16 @@
if(logMINOR)
Logger.minor(this, "Writing " +
chunkTypeString + " (" + baos.size() + ") to the output bucket");
baos.writeTo(output);
+ baos.flush();
}
lastChunkType = chunkTypeString;
}
dis.close();
- if(dos != null) {
- output.flush();
- output.close();
- }
} finally {
Closer.close(dis);
Closer.close(bis);
Closer.close(is);
- Closer.close(output);
}
return data;
}