bugfix: not-existing fetchers in preferences will not result in crashes anymore

git-svn-id: https://ipscan.svn.sourceforge.net/svnroot/ipscan/trunk@234 375186e5-ef17-0410-b0b6-91563547dcda
This commit is contained in:
angryziber 2007-11-09 18:58:15 +00:00
parent 8650cf8667
commit 90b9741fd4
3 changed files with 12 additions and 5 deletions

View File

@ -29,3 +29,4 @@ ctrl
compiz
placeholder
firewall
registry

View File

@ -14,8 +14,8 @@ import java.util.Map;
import java.util.prefs.Preferences;
/**
* Fetcher Registry singleton class.
* Actually, it registers both plugins and builtins.
* Fetcher registry singleton class.
* It registers both plugins and builtins.
*
* @author Anton Keks
*/
@ -59,8 +59,10 @@ public class FetcherRegistryImpl implements FetcherRegistry {
selectedFetchers = new LinkedHashMap<String, Fetcher>(registeredFetchers.size());
// initialize saved selected fetchers
for (int i = 0; i < fetcherPrefs.length; i++) {
if (fetcherPrefs[i].length() > 0) {
selectedFetchers.put(fetcherPrefs[i], registeredFetchers.get(fetcherPrefs[i]));
Fetcher fetcher = registeredFetchers.get(fetcherPrefs[i]);
// make sure that this fetcher is registered
if (fetcher != null) {
selectedFetchers.put(fetcherPrefs[i], fetcher);
}
}
}
@ -109,7 +111,7 @@ public class FetcherRegistryImpl implements FetcherRegistry {
}
selectedFetchers = newList;
// invorm observers
// inform observers
for (FetcherRegistryUpdateListener listener : updateListeners) {
listener.handleUpdateOfSelectedFetchers(this);
}

View File

@ -78,6 +78,10 @@ public class FetcherRegistryImplTest {
Iterator<?> iterator = fetcherRegistry.getSelectedFetchers().iterator();
assertSame(hostnameFetcher, iterator.next());
assertSame(commentFetcher, iterator.next());
preferences.put(FetcherRegistryImpl.PREFERENCE_SELECTED_FETCHERS, "not-existing-fetcher###" + hostnameFetcher.getLabel());
fetcherRegistry = new FetcherRegistryImpl(new Fetcher[] {ipFetcher, hostnameFetcher}, preferences);
assertEquals(1, fetcherRegistry.getSelectedFetchers().size());
}
@Test