public synchronized void assertPointersDisposed() { for (Map.Entry<VirtualFilePointerListener, TreeMap<String, VirtualFilePointerImpl>> entry : myUrlToPointerMaps.entrySet()) { VirtualFilePointerListener listener = entry.getKey(); TreeMap<String, VirtualFilePointerImpl> map = entry.getValue(); for (VirtualFilePointerImpl pointer : map.values()) { myUrlToPointerMaps.clear(); pointer.throwNotDisposedError("Not disposed pointer: listener=" + listener); } } synchronized (myContainers) { if (!myContainers.isEmpty()) { VirtualFilePointerContainerImpl container = myContainers.iterator().next(); myContainers.clear(); throw new RuntimeException("Not disposed container " + container); } } }