vaadin / framework

Vaadin 6, 7, 8 is a Java framework for modern Java web applications.
http://vaadin.com/
Other
1.78k stars 729 forks source link

handleVariableBurst method of AbstractCommunicationManager works sometimes incorrectly #2206

Closed vaadin-bot closed 12 years ago

vaadin-bot commented 12 years ago

Originally by Ville Korpi


Method handleVariableBurst(Object source, Application app, boolean success, final String burst) of com.vaadin.terminal.gwt.server.AbstractCommunicationManager class works incorrectly in the case where the "burst" variable contains only one record.

The "burst" variable is split and it's parts are saved into the variableRecords[][] array. Depending on the case when the method is called the length of the outer array of the variableRecords is sometimes 1, sometimes 2. When the length is 1 the method does not work correctly: It doesn't save values of VariableRecords[0] into the variable Map<String, Object> m . Because of that the changeVariables(source, owner, m) call in the method uses incorrect parameter "m" which has no values.

Testing and repeating the bug: For example, see Ticket #738 in the Vaadin Pro Account trac.

Client and server OS: Kubuntu 11.10 64 bit Server: Liferay 6.0 Client Browser: Firefox 10.0.2


Imported from https://dev.vaadin.com/ issue #8512

vaadin-bot commented 12 years ago

Originally by @jdahlstrom


The analysis appears to be incorrect: if there's only a single variable, it is passed to Collections.singletonMap(), whose return value is assigned to m. m then contains the single key->value pair. It doesn't seem that m can ever be completely empty.

If this is really a core framework problem, we're going to need a minimal test case reproducing the bug. Feel free to reopen this ticket if such a test case is found.