github vaadin/flow 24.10.0-beta1
Vaadin Flow 24.10.0-beta1

pre-release2 hours ago

Changes since 24.10.0-alpha2

All changes

Fixes

  • Detect router-link attribute in ancestor elements during click navigation (#23786)
    Commit · Pull request

    When a nested element (e.g., Button) inside a RouterLink is clicked, the navigation trigger was incorrectly reported as CLIENT_SIDE because only the direct click target was checked for the router-link attribute. Traverse the composed path instead so any ancestor with router-link is correctly identified as a ROUTER_LINK trigger.

  • Log instead of throwing (#23692)
    Commit · Pull request · Issue

    Log instead of throwing when node_modules removal fails in cleanUp.

  • Clamp effectiveRequested range in DataCommunicator to prevent IndexOutOfBoundsException (#23672)
    Commit · Pull request · Issue

    When a data provider returns fewer items than its size() reports (e.g. items deleted between the count and fetch queries), getJsonItems() would crash with an IndexOutOfBoundsException. Clamp effectiveRequested to match the actual number of fetched items before processing changes.

  • Use raw request URI for baseHref calculation to support encoded slashes (#23569)
    Commit · Pull request · Issue

    The previous fix for encoded slashes (%2F) in wildcard route parameters (commit b0c121b) set urlPathHelper.setUrlDecode(false) in ForwardingRequestWrapper, which made getPathInfo() return percent-encoded paths for all requests. This broke static resource serving for files with spaces in their names and potentially affected other getPathInfo() consumers like DAUUtils. Instead of disabling URL decoding globally, fix the actual site where the raw path matters: BootstrapHandlerHelper.getServiceUrl(). This method uses getCancelingRelativePath() to count path segments for the baseHref, which must use the raw URI so that %2F is not mistaken for a real path separator. The fix computes the raw path info by stripping the context path and servlet path from the request URI, preserving the original encoding. This allows reverting setUrlDecode(false) so that getPathInfo() returns properly decoded paths for all consumers.

Don't miss a new flow release

NewReleases is sending notifications on new releases.