Skip to content

Vaadin Flow 24.9.25

Choose a tag to compare

@vaadin-bot vaadin-bot released this 07 Aug 08:07
8b2b68f

Changes since 24.9.24

All changes

Fixes

  • Collect frontend dependencies of dev tools message handlers (CP: 24.10) (#25097) (CP: 24.9)
    Commit · Pull request

    FrontendDependencies resolves DevToolsMessageHandler subtypes to add them as internal entry points, but the class was missing from the @HandlesTypes of DevModeStartupListener. DevModeClassFinder only knows the classes listed there and throws for anything else, and that exception was swallowed by the surrounding catch block intended for a missing dev tools classpath entry. As a result, frontend dependencies declared by dev tools plugins were silently skipped in development mode when the byte-code scanner is enabled.

  • Resolve route scope UI from the detach event (CP: 24.10) (#25069) (CP: 24.9)
    Commit · Pull request

    This PR cherry-picks changes from the original PR #25064 to branch 24.10. --- #### Original PR description > RouteStoreWrapper#getBeanStore re-points a bean store to the UI created by a > browser refresh, but the store's detach listener stays on the previous UI. > resetUI() then asked findPreservingUI() about currentUI, which is no longer > the UI the detach event comes from. > > If the refreshed UI had already been removed from the session, its session > reference is null and findPreservingUI() threw a NullPointerException. The > exception escaped before the branch that destroys the store, so the route > scoped beans were not destroyed and the store stayed in routeStores. During > session expiration the beans are still released by the session destroy > listener of RouteStoreWrapper, but when only the UIs of an idle browser > window are removed nothing cleans them up and they leak until the session > ends. > > Pass the detached UI from the event into resetUI() so the lookup always gets > the UI the event originates from, which still has its session at that point. > findPreservingUI() now also returns null instead of dereferencing a UI that > has no session anymore. > > Fixes #25027