vaadin / vaadin/framework

Disabling syncId doesn't disable clientId and UI is messed up

Open
#10,744 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Stale
Dominant language
Java
Stars
1.8k
Forks
717
Avg merge
2d 6h
Merged PRs (30d)
3

Description

Vaadin versions: at least Vaadin 7.7.7 - Vaadin 8.3.2
Browsers: all browsers
Web containers: at least jetty, weblogic, and tomcat

Description
SyncId check can be disabled with following context parameter:

<context-param>
   <param-name>syncIdCheck</param-name>
   <param-value>false</param-value>
</context-param>

After which syncIds are always -1 in the uidl requests. But

  1. clientId:s are still increasing when checking for example Chrome's network tab
  2. UI or theme is messed up: at lease TextField captions and some paddings/margins are missing

Simple example app where the caption of the TextField is missing after disabling syncIdCheck

    @Override
    protected void init(VaadinRequest vaadinRequest) {
        final VerticalLayout layout = new VerticalLayout();

        final TextField name = new TextField();
        name.setCaption("Type your name here:");

        Button button = new Button("Click Me");
        button.addClickListener(e -> {
            layout.addComponent(new Label("Thanks " + name.getValue()
                    + ", it works!"));
        });

        layout.addComponents(name, button);

        setContent(layout);
    }

In more complex applications with customised Valo theme, the break down is more dramatic.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the minimal Vaadin application in the issue and enable the shown syncIdCheck context parameter. Inspect Chrome's network tab and the rendered TextField caption and layout styling, then compare requests and UI behavior with the check enabled. Done means disabling syncIdCheck no longer causes clientId or UI/theme degradation.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
frontend, web-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.