/** Removes the given set with the name and type. The data contained in the set is abstract. */ protected void removeSet(Name name, short type, TypedObject set) { TypeMap nameInfo = findName(name); if (nameInfo == null) return; Object o = nameInfo.get(type); if (o != set && type != Type.CNAME) { type = Type.CNAME; o = nameInfo.get(type); } if (o == set) { synchronized (nameInfo) { nameInfo.remove(type); } if (nameInfo.isEmpty()) data.remove(name); } }