[freenet-cvs] r11908 - in trunk/freenet/src/freenet: client/async clients/http

nextgens at freenetproject.org nextgens at freenetproject.org
Sat Feb 24 21:11:06 UTC 2007


Author: nextgens
Date: 2007-02-24 21:11:05 +0000 (Sat, 24 Feb 2007)
New Revision: 11908

Modified:
   trunk/freenet/src/freenet/client/async/USKManager.java
   trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
Log:
Maybe catch #1147 : USKFetchers are never freed ... add a new metric on /statistic/

Modified: trunk/freenet/src/freenet/client/async/USKManager.java
===================================================================
--- trunk/freenet/src/freenet/client/async/USKManager.java	2007-02-24 20:38:02 UTC (rev 11907)
+++ trunk/freenet/src/freenet/client/async/USKManager.java	2007-02-24 21:11:05 UTC (rev 11908)
@@ -41,19 +41,8 @@
 	final FetchContext backgroundFetchContext;
 	final ClientRequestScheduler chkRequestScheduler;
 	final ClientRequestScheduler sskRequestScheduler;
+
 	
-	public USKManager(FetchContext backgroundFetchContext, ClientRequestScheduler chkRequestScheduler, ClientRequestScheduler sskRequestScheduler) {
-		latestVersionByClearUSK = new HashMap();
-		subscribersByClearUSK = new HashMap();
-		fetchersByUSK = new HashMap();
-		checkersByUSK = new HashMap();
-		backgroundFetchersByClearUSK = new HashMap();
-		temporaryBackgroundFetchersLRU = new LRUQueue();
-		this.backgroundFetchContext = backgroundFetchContext;
-		this.chkRequestScheduler = chkRequestScheduler;
-		this.sskRequestScheduler = sskRequestScheduler;
-	}
-	
 	public USKManager(NodeClientCore core) {
 		backgroundFetchContext = core.makeClient(RequestStarter.UPDATE_PRIORITY_CLASS).getFetcherContext();
 		backgroundFetchContext.followRedirects = false;
@@ -129,11 +118,6 @@
 		if(sched != null) sched.schedule();
 	}
 	
-	synchronized void finished(USKFetcher f) {
-		USK u = f.getOriginalUSK();
-		fetchersByUSK.remove(u);
-	}
-	
 	void update(USK origUSK, long number) {
 		boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
 		if(logMINOR) Logger.minor(this, "Updating "+origUSK.getURI()+" : "+number);
@@ -209,8 +193,10 @@
 			System.arraycopy(callbacks, 0, newCallbacks, 0, j);
 			if(newCallbacks.length > 0)
 				subscribersByClearUSK.put(clear, callbacks);
-			else
+			else{
 				subscribersByClearUSK.remove(clear);
+				fetchersByUSK.remove(origUSK);
+			}
 			if(runBackgroundFetch) {
 				USKFetcher f = (USKFetcher) backgroundFetchersByClearUSK.get(clear);
 				f.removeSubscriber(cb);
@@ -243,4 +229,14 @@
 	public void unsubscribeContent(USK origUSK, USKRetriever ret, boolean runBackgroundFetch) {
 		unsubscribe(origUSK, ret, runBackgroundFetch);
 	}
+	
+	// REMOVE: DO NOT Synchronize! ... debugging only.
+	/**
+	 * The result of that method will be displayed on the Statistic Toadlet : it will help catching #1147 
+	 * Afterwards it should be removed: it's not usefull :)
+	 * @return the number of Fetchers started by USKManager
+	 */
+	public int getFetcherByUSKSize(){
+		return fetchersByUSK.size();
+	}
 }

Modified: trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java	2007-02-24 20:38:02 UTC (rev 11907)
+++ trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java	2007-02-24 21:11:05 UTC (rev 11908)
@@ -226,6 +226,7 @@
 				if (advancedModeEnabled) {
 					if (numARKFetchers > 0) {
 						activityList.addChild("li", "ARK\u00a0Fetch\u00a0Requests:\u00a0" + numARKFetchers);
+						activityList.addChild("li", "FetcherByUSKSize:\u00a0" + node.clientCore.uskManager.getFetcherByUSKSize());
 					}
 				}
 			}




More information about the cvs mailing list