Non-immediate checkbox contacts server upon change

Good day, I have the following checkbox:

final CheckBox cb = new CheckBox("Cha");
cb.setImmediate(false);
l.addComponent(cb);

No value change listeners nor any other kind of listeners are present on the CheckBox. Upon clicking on the CheckBox, a request is made on the server. Mostly this works okay and the checkbox is checked immediately (on Chrome and Firefox), but in IE 10 and IE 11 the CheckBox is actually checked only after the server responds. This causes the web feels sluggish when the server is under heavy load. Similar situation occurs when using ComboBox - the server is contacted upon clicking on the pull down button. I have observed this behavior on Vaadin 7.4.1, 7.4.4 and 7.4.7.

I know that setImmediate() does not guarantee anything (as per
https://vaadin.com/forum/#!/thread/2983812/3070078
), I would just like to ask Vaadin guys if this CheckBox’s behavior is okay and intended, because it feels a bit surprising to me :slight_smile:

To reproduce this, just place a break point into com.vaadin.server.VaadinServlet service() method and click on the CheckBox - the debugger should immediately stop in the breakpoint.

I believe this to be a buggy behavior so I created a bug report: https://dev.vaadin.com/ticket/18102

Hi, tested this with IE8 (IETester) and native IE11 (win7). In my tests the checkbox gets checked immediately before the server response (when adding breakpoint to VaadinServlet.service()). Could verify this again?

Hi Johannes, thank you very much for your reply. I just tried this checkbox behavior on a simple Vaadin project and the checkbox gets checked immediately on IE 11. I will check with my colleague what the problem may be - perhaps their UI is too big (like 1000 components on one page big) or there is some misconfiguration in compilation of their widgetset?
Regardless, the problem with accessing of the VaadinServlet.service() is still present…

I believe the server roundtrip might be a “regression” introduced by Vaadin 7 - CheckBox now uses RPC to signal the value change and it does not respect setImmediate unlike legacy Vaadin 6 communication. It’s “by design” in the sense that we thought setImmediate is mostly an unnecessary optimization these days. Still, CheckBox is one of the cases it would be pretty useful.

The ticket 18102 has been fixed and the fix will appear in Vaadin 7.5.0. Thank you very much for your time and work.