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

Reply via email to