Hello,
I have a Vaadin + FullCalendar addon issue where the calendar UI fails to update on the client side when a refresh is triggered from inside a second (confirmation) Dialog.
Originally, my flow worked fine. The user fills in a form inside a Dialog, hits OK, the data gets saved to the DB via a DAO, and the calendar updates correctly with no issues.
The issue started when I introduced a conflict-detection(boolean) step. If a conflict is detected, instead of saving immediately, a second confirmation Dialog opens asking the user to explicitly confirm before proceeding. Inside that confirm button’s click listener, I run the same DB save logic as before.
After saving inside this second Dialog’s listener, the calendar UI does NOT update. The database is correctly updated, but the browser shows the old data until a manual page refresh (F5).
Because of this, I explicitly added my createCalendarContent() method call right after the save inside the confirm listener. This method:
- Calls removeAllEntries() on the existing EntryProvider
- Re-fetches the updated list from the DB
- Adds entries back in a for loop
- Calls refreshAll() at the end
Debugging Results:
I confirmed that everything on the server side executes correctly:
- The DB save works
- The re-fetched list contains the newly added entry
- The for loop runs and all entries are added to the EntryProvider without errors
- refreshAll() is called without errors
But the UI still does not update. Nothing is pushed to the browser.
What’s confusing is that the exact same DB save + calendar refresh logic works perfectly when triggered from the first Dialog. The moment it runs from inside the nested confirmation Dialog’s listener, the UI update simply doesn’t happen.
Is there something specific about nested Dialogs or Vaadin’s response cycle that would block refreshAll() from pushing changes to the client?
Thanks in advance!