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) {