void () { ThreadingAssertions.assertEventDispatchThread(); if (myCanceled) return; if (myPopup.isDisposed()) return; List<T> data; synchronized (lock) { data = new ArrayList<>(myData); } replaceModel(data); String caption = getCaption(getCurrentSize()); if (caption != null) { myPopup.setCaption(caption); } myPopup.pack(true, true); }