diff --git a/core/java/src/net/i2p/client/naming/PetNameDB.java b/core/java/src/net/i2p/client/naming/PetNameDB.java index f0f176ead23b875afde7c550b2364637a2c8488d..ee5741e22e2abb92aeea7104f2336a182a77deb8 100644 --- a/core/java/src/net/i2p/client/naming/PetNameDB.java +++ b/core/java/src/net/i2p/client/naming/PetNameDB.java @@ -16,15 +16,28 @@ public class PetNameDB { _names = Collections.synchronizedMap(new HashMap()); } - public PetName getByName(String name) { return (PetName)_names.get(name.toLowerCase()); } - public void add(PetName pn) { _names.put(pn.getName().toLowerCase(), pn); } + public PetName getByName(String name) { + if ( (name == null) || (name.length() <= 0) ) return null; + return (PetName)_names.get(name.toLowerCase()); + } + public void add(PetName pn) { + if ( (pn == null) || (pn.getName() == null) ) return; + _names.put(pn.getName().toLowerCase(), pn); + } public void clear() { _names.clear(); } public boolean contains(PetName pn) { return _names.containsValue(pn); } - public boolean containsName(String name) { return _names.containsKey(name.toLowerCase()); } + public boolean containsName(String name) { + if ( (name == null) || (name.length() <= 0) ) return false; + return _names.containsKey(name.toLowerCase()); + } public boolean isEmpty() { return _names.isEmpty(); } - public Iterator iterator() { return new LinkedList(_names.values()).iterator(); } - public void remove(PetName pn) { _names.values().remove(pn); } - public void removeName(String name) { _names.remove(name.toLowerCase()); } + public Iterator iterator() { return new ArrayList(_names.values()).iterator(); } + public void remove(PetName pn) { + if (pn != null) _names.remove(pn.getName()); + } + public void removeName(String name) { + if (name != null) _names.remove(name.toLowerCase()); + } public int size() { return _names.size(); } public Set getNames() { return new HashSet(_names.keySet()); } public List getGroups() {