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;
        }


Reply via email to