github vaadin/flow 24.10.1
Vaadin Flow 24.10.1

latest releases: 25.1.1, 24.9.15
3 hours ago

Changes since 24.10.0

All changes

Fixes

  • Prevent stale JAR cache in Reflector under Maven daemon (mvnd) (#23863)
    Commit · Pull request

    Mirror the Gradle daemon fix (33fa374) in the Maven plugin's Reflector and ReflectorClassLoader/CombinedClassLoader: - Extract ReflectionsClassFinder.disableJarCaching() as a public utility so both plugins can reuse it. - Wrap jar: URLs in ReflectorClassLoader.getResource() and getResources() (flow-maven-plugin) and CombinedClassLoader (flow-dev-bundle-plugin) with useCaches(false) to prevent stale JarFileFactory entries across daemon builds. - Make Reflector implement Closeable with a close() method that releases the URLClassLoader file handles, and register a Cleaner action for best-effort GC cleanup of abandoned instances. - Close the temporary Reflector in FlowModeAbstractMojo.isHillaAvailable(MavenProject) via try-with-resources. Releated to #15458

  • Prevent stale JAR cache in ReflectionsClassFinder under Gradle daemon (CP: 24.9) (#23969)
    Commit · Pull request · Issue

    Close URLClassLoader on cleanup to release JAR file handles, and disable JVM-level JAR caching in getResource() by wrapping jar: URLs with a URLStreamHandler that sets useCaches(false). The Gradle daemon reuses JVMs across builds. When a sibling module's JAR is rewritten, two independent caching layers can hold stale file handles: 1. URLClassLoader internal cache (URLClassPathJarLoader) 2. JarFileFactory static HashMap (populated via JarURLConnection) The URLClassLoader.close() call addresses layer 1, but layer 2 is JVM-global and independent of the class loader. Setting useCaches(false) on jar: URL connections prevents JarFileFactory from caching JarFile instances, matching the approach used by Spring's PathMatchingResourcePatternResolver (SPR-4639).

  • Propagate forceInstantiation and recreateLayoutChain flags through forward/reroute (#23848)
    Commit · Pull request · Issue

    When refreshCurrentRoute(true) triggers a BeforeEnterObserver that calls forwardTo() or rerouteTo(), the forceInstantiation and recreateLayoutChain flags were lost because the redirect navigation events were created without them. This caused the redirect target to reuse existing component instances instead of creating new ones. Propagate the flags in three locations: - AbstractNavigationStateRenderer.getNavigationEvent() for both normal and error redirect paths - InternalRedirectHandler.handle() for internal redirects

  • Merge property descriptors when getter and setter come from different interfaces (#23939)
    Commit · Pull request · Issue

    BeanUtil's dedup loop was replacing a read-only descriptor with a write-only one (or vice versa) instead of merging them. This caused BeanPropertySet to lose the getter when a parent interface provided it and a child interface provided the setter.

Don't miss a new flow release

NewReleases is sending notifications on new releases.