Author: toad
Date: 2007-09-05 23:28:07 +0000 (Wed, 05 Sep 2007)
New Revision: 14979

Added:
   trunk/freenet/src/freenet/support/io/NullBucketFactory.java
Modified:
   trunk/freenet/src/freenet/clients/http/NinjaSpider.java
   trunk/freenet/src/freenet/clients/http/Spider.java
   trunk/freenet/src/freenet/clients/http/filter/ContentFilter.java
   trunk/plugins/XMLSpider/XMLSpider.java
Log:
Don't leak a temp bucket for output of filtering in spiders

Modified: trunk/freenet/src/freenet/clients/http/NinjaSpider.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/NinjaSpider.java     2007-09-05 
20:27:56 UTC (rev 14978)
+++ trunk/freenet/src/freenet/clients/http/NinjaSpider.java     2007-09-05 
23:28:07 UTC (rev 14979)
@@ -53,6 +53,7 @@
 import freenet.support.MultiValueTable;
 import freenet.support.api.Bucket;
 import freenet.support.api.HTTPRequest;
+import freenet.support.io.NullBucketFactory;

 /**
  * FIXME move to a proper plugin.
@@ -192,7 +193,7 @@
                mimeOfURIs.put(uri.toString(), mimeType);

                try {
-                       ContentFilter.filter(data, ctx.bucketFactory, mimeType, 
new URI("http://127.0.0.1:8888/"; + uri.toString()), this);
+                       ContentFilter.filter(data, new NullBucketFactory(), 
mimeType, new URI("http://127.0.0.1:8888/"; + uri.toString()), this);
                } catch (UnsafeContentTypeException e) {
                        return; // Ignore
                } catch (IOException e) {

Modified: trunk/freenet/src/freenet/clients/http/Spider.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/Spider.java  2007-09-05 20:27:56 UTC 
(rev 14978)
+++ trunk/freenet/src/freenet/clients/http/Spider.java  2007-09-05 23:28:07 UTC 
(rev 14979)
@@ -43,6 +43,7 @@
 import freenet.support.MultiValueTable;
 import freenet.support.api.Bucket;
 import freenet.support.api.HTTPRequest;
+import freenet.support.io.NullBucketFactory;

 /**
  * Spider. Produces an index.
@@ -136,7 +137,7 @@
                Bucket data = result.asBucket();
                String mimeType = cm.getMIMEType();
                try {
-                       ContentFilter.filter(data, ctx.bucketFactory, mimeType, 
uri.toURI("http://127.0.0.1:8888/";), this);
+                       ContentFilter.filter(data, new NullBucketFactory(), 
mimeType, uri.toURI("http://127.0.0.1:8888/";), this);
                } catch (UnsafeContentTypeException e) {
                        return; // Ignore
                } catch (IOException e) {

Modified: trunk/freenet/src/freenet/clients/http/filter/ContentFilter.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/filter/ContentFilter.java    
2007-09-05 20:27:56 UTC (rev 14978)
+++ trunk/freenet/src/freenet/clients/http/filter/ContentFilter.java    
2007-09-05 23:28:07 UTC (rev 14979)
@@ -119,6 +119,7 @@

        /**
         * Filter some data.
+        * @param bf The bucket factory used to create the bucket to return the 
filtered data in.
         * @throws IOException If an internal error involving buckets occurred.
         */
        public static FilterOutput filter(Bucket data, BucketFactory bf, String 
typeName, URI baseURI, FoundURICallback cb) throws UnsafeContentTypeException, 
IOException {

Added: trunk/freenet/src/freenet/support/io/NullBucketFactory.java
===================================================================
--- trunk/freenet/src/freenet/support/io/NullBucketFactory.java                 
        (rev 0)
+++ trunk/freenet/src/freenet/support/io/NullBucketFactory.java 2007-09-05 
23:28:07 UTC (rev 14979)
@@ -0,0 +1,14 @@
+package freenet.support.io;
+
+import java.io.IOException;
+
+import freenet.support.api.Bucket;
+import freenet.support.api.BucketFactory;
+
+public class NullBucketFactory implements BucketFactory {
+
+       public Bucket makeBucket(long size) throws IOException {
+               return new NullBucket();
+       }
+
+}

Modified: trunk/plugins/XMLSpider/XMLSpider.java
===================================================================
--- trunk/plugins/XMLSpider/XMLSpider.java      2007-09-05 20:27:56 UTC (rev 
14978)
+++ trunk/plugins/XMLSpider/XMLSpider.java      2007-09-05 23:28:07 UTC (rev 
14979)
@@ -67,6 +67,7 @@
 import freenet.support.Logger;
 import freenet.support.api.Bucket;
 import freenet.support.api.HTTPRequest;
+import freenet.support.io.NullBucketFactory;

 /**
  * XMLSpider. Produces xml index for searching words. 
@@ -270,7 +271,7 @@

                try {
                        Logger.minor(this, "Filtering "+uri+" : "+page.id);
-                       ContentFilter.filter(data, ctx.bucketFactory, mimeType, 
uri.toURI("http://127.0.0.1:8888/";), page);
+                       ContentFilter.filter(data, new NullBucketFactory(), 
mimeType, uri.toURI("http://127.0.0.1:8888/";), page);
                } catch (UnsafeContentTypeException e) {
                        return; // Ignore
                } catch (IOException e) {


Reply via email to