Author: saces
Date: 2009-04-01 22:07:12 +0000 (Wed, 01 Apr 2009)
New Revision: 26326
Modified:
trunk/plugins/KeyExplorer/KeyExplorer.java
trunk/plugins/KeyExplorer/VerySimpleGet.java
trunk/plugins/KeyExplorer/VerySimpleGetter.java
Log:
fix KeyExplorer
Modified: trunk/plugins/KeyExplorer/KeyExplorer.java
===================================================================
--- trunk/plugins/KeyExplorer/KeyExplorer.java 2009-04-01 21:50:04 UTC (rev
26325)
+++ trunk/plugins/KeyExplorer/KeyExplorer.java 2009-04-01 22:07:12 UTC (rev
26326)
@@ -31,6 +31,7 @@
import freenet.keys.USK;
import freenet.l10n.L10n.LANGUAGE;
import freenet.node.LowLevelGetException;
+import freenet.node.RequestClient;
import freenet.pluginmanager.FredPlugin;
import freenet.pluginmanager.FredPluginFCP;
import freenet.pluginmanager.FredPluginHTTP;
@@ -38,9 +39,11 @@
import freenet.pluginmanager.FredPluginThreadless;
import freenet.pluginmanager.FredPluginVersioned;
import freenet.pluginmanager.PluginHTTPException;
+import freenet.pluginmanager.PluginNotFoundException;
import freenet.pluginmanager.PluginReplySender;
import freenet.pluginmanager.PluginRespirator;
import freenet.support.HTMLNode;
+import freenet.support.Logger;
import freenet.support.SimpleFieldSet;
import freenet.support.api.Bucket;
import freenet.support.api.HTTPRequest;
@@ -76,6 +79,14 @@
}
public void handle(PluginReplySender replysender, SimpleFieldSet
params, Bucket data, int accesstype) {
+ try {
+ realHandle(replysender, params, data, accesstype);
+ } catch (PluginNotFoundException pnfe) {
+ Logger.error(this, "Connction to request sender lost.",
pnfe);
+ }
+ }
+
+ private void realHandle(PluginReplySender replysender, SimpleFieldSet
params, Bucket data, int accesstype) throws PluginNotFoundException {
if (params == null) {
sendError(replysender, 0, "Got void message");
return;
@@ -111,7 +122,7 @@
try {
FreenetURI furi = new FreenetURI(uri);
- GetResult getResult = simpleGet(furi);
+ GetResult getResult = simpleGet(m_pr, furi);
SimpleFieldSet sfs = new SimpleFieldSet(true);
sfs.putSingle("Identifier", identifier);
@@ -139,21 +150,20 @@
public void terminate() {
}
- private GetResult simpleGet(FreenetURI uri) throws
MalformedURLException, LowLevelGetException {
+ private static GetResult simpleGet(PluginRespirator pr, FreenetURI uri)
throws MalformedURLException, LowLevelGetException {
ClientKey ck;
try {
ck = (ClientKey) BaseClientKey.getBaseKey(uri);
} catch (ClassCastException cce) {
- throw new MalformedURLException("Not a supported
freenet uri: "+uri);
+ throw new MalformedURLException("Not a supported
freenet uri: " + uri);
}
- VerySimpleGetter vsg = new VerySimpleGetter((short) 1,
m_pr.getNode().clientCore.requestStarters.chkFetchScheduler, m_pr
-
.getNode().clientCore.requestStarters.sskFetchScheduler, uri, new Object());
- VerySimpleGet vs = new VerySimpleGet(ck, 3,
m_pr.getHLSimpleClient().getFetchContext(), vsg);
- vs.schedule();
+ VerySimpleGetter vsg = new VerySimpleGetter((short) 1, uri,
(RequestClient) pr.getHLSimpleClient());
+ VerySimpleGet vs = new VerySimpleGet(ck, 0,
pr.getHLSimpleClient().getFetchContext(), vsg);
+ vs.schedule(null, pr.getNode().clientCore.clientContext);
return new GetResult(vs.waitForCompletion(), vs.isMetadata());
}
- private void sendError(PluginReplySender replysender, int code, String
description) {
+ private void sendError(PluginReplySender replysender, int code, String
description) throws PluginNotFoundException {
SimpleFieldSet sfs = new SimpleFieldSet(true);
sfs.putOverwrite("Status", "Error");
sfs.put("Code", code);
@@ -179,7 +189,7 @@
ClientKey tempKey = tempUSK.getSSK();
furi = tempKey.getURI();
}
- getresult = simpleGet(furi);
+ getresult = simpleGet(m_pr, furi);
data =
BucketTools.toByteArray(getresult.getData());
}
} catch (MalformedURLException e) {
@@ -472,7 +482,7 @@
}
private Metadata simpleManifestGet(FreenetURI uri) throws
MetadataParseException, LowLevelGetException, IOException {
- GetResult res = simpleGet(uri);
+ GetResult res = simpleGet(m_pr, uri);
if (!res.isMetaData()) {
throw new MetadataParseException("uri did not point to
metadata " + uri);
}
@@ -485,7 +495,7 @@
fctx.returnZIPManifests = true;
//fctx.r
FetchWaiter fw = new FetchWaiter();
- hlsc.fetch(uri, -1, this, fw, fctx);
+ hlsc.fetch(uri, -1, (RequestClient) hlsc, fw, fctx);
FetchResult fr = fw.waitForCompletion();
ZipInputStream zis = new
ZipInputStream(fr.asBucket().getInputStream());
ZipEntry entry;
@@ -516,7 +526,7 @@
fctx.returnZIPManifests = true;
//fctx.r
FetchWaiter fw = new FetchWaiter();
- hlsc.fetch(uri, -1, this, fw, fctx);
+ hlsc.fetch(uri, -1, (RequestClient) hlsc, fw, fctx);
FetchResult fr = fw.waitForCompletion();
TarInputStream zis = new
TarInputStream(fr.asBucket().getInputStream());
TarEntry entry;
Modified: trunk/plugins/KeyExplorer/VerySimpleGet.java
===================================================================
--- trunk/plugins/KeyExplorer/VerySimpleGet.java 2009-04-01 21:50:04 UTC
(rev 26325)
+++ trunk/plugins/KeyExplorer/VerySimpleGet.java 2009-04-01 22:07:12 UTC
(rev 26326)
@@ -5,15 +5,18 @@
import java.io.IOException;
+import com.db4o.ObjectContainer;
+
import freenet.client.FetchContext;
import freenet.client.async.BaseSingleFileFetcher;
+import freenet.client.async.ClientContext;
import freenet.client.async.ClientRequester;
+import freenet.client.async.KeyListenerConstructionException;
import freenet.keys.ClientKey;
import freenet.keys.ClientKeyBlock;
import freenet.keys.KeyDecodeException;
import freenet.keys.TooBigException;
import freenet.node.LowLevelGetException;
-import freenet.node.RequestScheduler;
import freenet.support.Logger;
import freenet.support.api.Bucket;
@@ -31,20 +34,19 @@
public VerySimpleGet(ClientKey key2, int maxRetries2, FetchContext ctx2,
ClientRequester parent2) {
- super(key2, maxRetries2, ctx2, parent2);
+ super(key2, maxRetries2, ctx2, parent2, true);
}
@Override
- public void onFailure(LowLevelGetException e, Object token,
- RequestScheduler sched) {
+ public void onFailure(LowLevelGetException e, Object token,
ObjectContainer container, ClientContext context) {
boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
if (logMINOR)
Logger.minor(this, "onFailure( " + e + " , ...)", e);
- if ((!isFatalError(e.code)) && (sched != null)) {
- if (retry(sched, getContext().executor)) {
+ if (!(isFatalError(e.code))) {
+ if (retry(container, context)) {
if (logMINOR)
- Logger.minor(this, "Retrying");
+ Logger.minor(this, "Retrying", new
Error("DEBUG"));
return;
}
}
@@ -56,9 +58,8 @@
}
@Override
- public void onSuccess(ClientKeyBlock block, boolean fromStore,
- Object token, RequestScheduler scheduler) {
- data = extract(block);
+ public void onSuccess(ClientKeyBlock block, boolean fromStore, Object
token, ObjectContainer container, ClientContext context) {
+ data = extract(block, context);
ismetadata = block.isMetadata();
if (data == null)
return; // failed
@@ -83,27 +84,27 @@
return data;
}
- private Bucket extract(ClientKeyBlock block) {
+ private Bucket extract(ClientKeyBlock block, ClientContext context) {
Bucket tempdata;
try {
- // FIXME What is the maximim size of an decompressed
32K chunk?
- tempdata = block.decode(getContext().bucketFactory,
1024 * 1024,
+ // FIXME What is the maximum size of an decompressed
32K chunk?
+ tempdata = block.decode(context.tempBucketFactory, 1024
* 1024,
false);
} catch (KeyDecodeException e1) {
if (Logger.shouldLog(Logger.MINOR, this))
Logger.minor(this, "Decode failure: " + e1, e1);
onFailure(new LowLevelGetException(
- LowLevelGetException.DECODE_FAILED),
null, null);
+ LowLevelGetException.DECODE_FAILED),
null, null, context);
return null;
} catch (TooBigException e) {
Logger.error(this, "Should never happens: " + e, e);
onFailure(new LowLevelGetException(
- LowLevelGetException.INTERNAL_ERROR),
null, null);
+ LowLevelGetException.INTERNAL_ERROR),
null, null, context);
return null;
} catch (IOException e) {
Logger.error(this, "Could not capture data - disk
full?: " + e, e);
onFailure(new LowLevelGetException(
- LowLevelGetException.DECODE_FAILED),
null, null);
+ LowLevelGetException.DECODE_FAILED),
null, null, context);
return null;
}
return tempdata;
@@ -136,4 +137,8 @@
return false; // assume it isn't
}
}
+
+ public void onFailed(KeyListenerConstructionException e,
ObjectContainer container, ClientContext context) {
+ Logger.error(this, "TODO?: " + e, e);
+ }
}
Modified: trunk/plugins/KeyExplorer/VerySimpleGetter.java
===================================================================
--- trunk/plugins/KeyExplorer/VerySimpleGetter.java 2009-04-01 21:50:04 UTC
(rev 26325)
+++ trunk/plugins/KeyExplorer/VerySimpleGetter.java 2009-04-01 22:07:12 UTC
(rev 26326)
@@ -3,10 +3,13 @@
* http://www.gnu.org/ for further details of the GPL. */
package plugins.KeyExplorer;
+import com.db4o.ObjectContainer;
+
+import freenet.client.async.ClientContext;
import freenet.client.async.ClientGetState;
-import freenet.client.async.ClientRequestScheduler;
import freenet.client.async.ClientRequester;
import freenet.keys.FreenetURI;
+import freenet.node.RequestClient;
import freenet.support.Logger;
/**
@@ -24,8 +27,8 @@
* @param client2
*
*/
- public VerySimpleGetter(short priorityclass, ClientRequestScheduler
chkscheduler, ClientRequestScheduler sskscheduler, FreenetURI uri2, Object
client2) {
- super(priorityclass, chkscheduler, sskscheduler, client2);
+ public VerySimpleGetter(short priorityclass, FreenetURI uri2,
RequestClient client2) {
+ super(priorityclass, client2);
uri = uri2;
}
@@ -41,13 +44,18 @@
}
@Override
- public void notifyClients() {
+ public void cancel(ObjectContainer container, ClientContext context) {
Logger.error(this, "TODO?", new Error("TODO?"));
}
@Override
- public void onTransition(ClientGetState oldState, ClientGetState
newState) {
+ public void notifyClients(ObjectContainer container, ClientContext
context) {
Logger.error(this, "TODO?", new Error("TODO?"));
}
+ @Override
+ public void onTransition(ClientGetState oldState, ClientGetState
newState, ObjectContainer container) {
+ Logger.error(this, "TODO?", new Error("TODO?"));
+ }
+
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs