I'm not sure about TreeSelectionListener, but do you at any time alter the dmtn in your click-and-expand method? Or do you alter Node at all?
If you get a set of the values in the HashMap, (by say doing HashMap.values()), and remove one of those values from the Set or the Vector that results...