if (t == null)
elements.put(CIRCULARITY_TOKEN, Thread.currentThread());
else if (t != Thread.currentThread()) {
//System.out.println("waiting for other thread...");
try { elements.wait(1000); } catch (InterruptedException ie) {}
//System.out.println("waiting done.");
return;
} else {
if (listenerName != null) {
System.err.println("Infinite recursion encountered while " +