diff --git a/apps/addressbook/java/src/net/i2p/addressbook/ConfigIterator.java b/apps/addressbook/java/src/net/i2p/addressbook/ConfigIterator.java index aa67dfaacdb2f9280d41f75b45d1bbdc091d0a28..df13332f2ae91716b4ea09f0355128cd99407dec 100644 --- a/apps/addressbook/java/src/net/i2p/addressbook/ConfigIterator.java +++ b/apps/addressbook/java/src/net/i2p/addressbook/ConfigIterator.java @@ -71,7 +71,9 @@ class ConfigIterator implements Iterator<Map.Entry<String, String>>, Closeable { String inputLine; while ((inputLine = input.readLine()) != null) { inputLine = ConfigParser.stripComments(inputLine); - String[] splitLine = DataHelper.split(inputLine, "="); + if (inputLine.length() == 0) + continue; + String[] splitLine = DataHelper.split(inputLine, "=", 2); if (splitLine.length == 2) { next = new ConfigEntry(splitLine[0].trim().toLowerCase(Locale.US), splitLine[1].trim()); return true; diff --git a/apps/addressbook/java/src/net/i2p/addressbook/ConfigParser.java b/apps/addressbook/java/src/net/i2p/addressbook/ConfigParser.java index 38985d00ea03035e13f7b8f30eb5de3c61467497..58b08db53591c369094c309bd10b1ac78910ad9f 100644 --- a/apps/addressbook/java/src/net/i2p/addressbook/ConfigParser.java +++ b/apps/addressbook/java/src/net/i2p/addressbook/ConfigParser.java @@ -93,7 +93,9 @@ class ConfigParser { String inputLine; while ((inputLine = input.readLine()) != null) { inputLine = stripComments(inputLine); - String[] splitLine = DataHelper.split(inputLine, "="); + if (inputLine.length() == 0) + continue; + String[] splitLine = DataHelper.split(inputLine, "=", 2); if (splitLine.length == 2) { result.put(splitLine[0].trim().toLowerCase(Locale.US), splitLine[1].trim()); } diff --git a/apps/addressbook/java/src/net/i2p/addressbook/Log.java b/apps/addressbook/java/src/net/i2p/addressbook/Log.java index c6798f564769e02ade74d974e4f59e535d785303..501ab5cacf63cea43603411acd73df0200639c42 100644 --- a/apps/addressbook/java/src/net/i2p/addressbook/Log.java +++ b/apps/addressbook/java/src/net/i2p/addressbook/Log.java @@ -74,7 +74,9 @@ class Log { * * @return The File that the log is writing to. */ +/**** public File getFile() { return this.file; } +****/ } diff --git a/apps/addressbook/java/src/net/i2p/addressbook/SubscriptionList.java b/apps/addressbook/java/src/net/i2p/addressbook/SubscriptionList.java index d9135e4ff5d4e1d7ba9e7823c7cb329232a0b47c..1bca24140304527c468ed5d22fc4b65ac2345b8e 100644 --- a/apps/addressbook/java/src/net/i2p/addressbook/SubscriptionList.java +++ b/apps/addressbook/java/src/net/i2p/addressbook/SubscriptionList.java @@ -24,6 +24,7 @@ package net.i2p.addressbook; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -80,17 +81,17 @@ class SubscriptionList implements Iterable<AddressBook> { try { etags = ConfigParser.parse(etagsFile); } catch (IOException exp) { - etags = new HashMap<String, String>(); + etags = Collections.<String, String>emptyMap(); } try { lastModified = ConfigParser.parse(lastModifiedFile); } catch (IOException exp) { - lastModified = new HashMap<String, String>(); + lastModified = Collections.<String, String>emptyMap(); } try { lastFetched = ConfigParser.parse(lastFetchedFile); } catch (IOException exp) { - lastFetched = new HashMap<String, String>(); + lastFetched = Collections.<String, String>emptyMap(); } for (String location : locations) { this.subscriptions.add(new Subscription(location, etags.get(location), @@ -117,9 +118,10 @@ class SubscriptionList implements Iterable<AddressBook> { * won't be read back correctly; the '=' should be escaped. */ public void write() { - Map<String, String> etags = new HashMap<String, String>(); - Map<String, String> lastModified = new HashMap<String, String>(); - Map<String, String> lastFetched = new HashMap<String, String>(); + int sz = subscriptions.size(); + Map<String, String> etags = new HashMap<String, String>(sz); + Map<String, String> lastModified = new HashMap<String, String>(sz); + Map<String, String> lastFetched = new HashMap<String, String>(sz); for (Subscription sub : this.subscriptions) { if (sub.getEtag() != null) { etags.put(sub.getLocation(), sub.getEtag()); @@ -127,13 +129,16 @@ class SubscriptionList implements Iterable<AddressBook> { if (sub.getLastModified() != null) { lastModified.put(sub.getLocation(), sub.getLastModified()); } - lastFetched.put(sub.getLocation(), "" + sub.getLastFetched()); + lastFetched.put(sub.getLocation(), Long.toString(sub.getLastFetched())); } try { ConfigParser.write(etags, this.etagsFile); + } catch (IOException exp) {} + try { ConfigParser.write(lastModified, this.lastModifiedFile); + } catch (IOException exp) {} + try { ConfigParser.write(lastFetched, this.lastFetchedFile); - } catch (IOException exp) { - } + } catch (IOException exp) {} } }