--- openide.util.lookup/src/org/openide/util/lookup/ProxyLookup.java +++ openide.util.lookup/src/org/openide/util/lookup/ProxyLookup.java @@ -570,7 +570,22 @@ collectFires(null); } + ThreadLocal IN = new ThreadLocal(); protected void collectFires(Collection evAndListeners) { + Boolean prev = IN.get(); + if (Boolean.TRUE.equals(prev)) { +// Thread.dumpStack(); + return; + } + try { + IN.set(true); + collImpl(evAndListeners); + } finally { + IN.set(prev); + } + } + + private void collImpl(Collection evAndListeners) { boolean modified = true; final Object[] ll;