mvysny / karibu-testing

Vaadin Server-Side Browserless Containerless Unit Testing
Apache License 2.0
105 stars 14 forks source link

Vaadin 23.2.1: java.lang.IllegalArgumentException: Cannot set a null page title #133

Closed simasch closed 1 year ago

simasch commented 1 year ago

Hi,

I see this exception in the logs after migrating my app to Vaadin 23.2.1:

2022-09-21 17:05:03.467 ERROR [,,] 5739 --- [           main] c.v.flow.router.InternalServerError      : There was an exception while trying to navigate to ''

java.lang.IllegalArgumentException: Cannot set a null page title.
    at com.vaadin.flow.component.page.Page.setTitle(Page.java:158)
    at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.updatePageTitle(AbstractNavigationStateRenderer.java:881)
    at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:238)
    at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.forward(AbstractNavigationStateRenderer.java:695)
    at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handleTriggeredBeforeEvent(AbstractNavigationStateRenderer.java:664)
    at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.sendBeforeEnterEvent(AbstractNavigationStateRenderer.java:606)
    at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.sendBeforeEnterEvent(AbstractNavigationStateRenderer.java:581)
    at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.createChainIfEmptyAndExecuteBeforeEnterNavigation(AbstractNavigationStateRenderer.java:457)
    at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:202)
    at com.vaadin.flow.router.Router.handleNavigation(Router.java:248)
    at com.vaadin.flow.router.Router.navigate(Router.java:219)
    at com.vaadin.flow.router.Router.navigate(Router.java:186)
    at com.vaadin.flow.component.UI.navigate(UI.java:1109)
    at com.vaadin.flow.component.UI.navigate(UI.java:1082)
    at com.github.mvysny.kaributesting.v10.MockVaadin.createUI$karibu_testing_v10(MockVaadin.kt:244)
    at com.github.mvysny.kaributesting.v10.MockVaadin.createSession(MockVaadin.kt:212)
    at com.github.mvysny.kaributesting.v10.MockVaadin.setup(MockVaadin.kt:95)
mvysny commented 1 year ago

Hi @simasch unfortunately I can't reproduce this issue. Does your route implement a HasDynamicTitle which returns null? Could you try to debug around AbstractNavigatinStateRenderer:875 to see why the title might be null?

simasch commented 1 year ago

The problem is that the tests run on a server with Locale EN and we neither defined a default locale nor an EN translations.