public void out(Object key, Object value) { List listeners; synchronized (this) { Data data = (Data) map.get(key); if (data == null) map.put(key, (data = new Data(key))); data.add(value); listeners = data.getListeners(); this.notifyAll(); } if (listeners != null) { Iterator iter = listeners.iterator(); while (iter.hasNext()) { ((SpaceListener) iter.next()).notify(key, value); } } }