Missing grid refresh on custom implemented data source

Hello all!
I’m porting an old application from Swing to Vaadin and i need to wrap a Vaadin Grid (currently Vaadin 7) around a legacy data source, which is capable of autonomous bean access, data pagination on HQL query, sorting and so on… I cannot throw away the legacy data source.
So, i wrote a data source wrapper, which takes the legacy data source as a parameters and by implementing Container + Container.Indexed offers a data source interface to a Vaadin grid.
The wrapper works with a custom Property class, which accesses the legacy data source getting and setting beans attributes values. So far, so good. In read mode it works.
The issue comes in when trying to edit a cell value through Vaadin Grid UI. The value is edited but once committed by hitting the save button, the cell keeps showing the old value, until i select the row then move the selection on another row, which makes the “magic” of updating the cell with the new value.
I tought that the Grid should keep track of its own editing operations, and refresh che client accordingly, but for double check i implemented Property.ValueChangeNotifier in my Property class, and fire a ValueChangeEvent once the editing effectively changes the value (intercepted into the property setValue method).
So, while debugging, i see that listeners are being attached at each property, and i see that the setValue method is invoked by the Grid at the end of the editing session, and i fire the ValueChangeEvent but… nothing. The client side doesn’t update until i select and unselect the row.
What i’m missing? This is driving me crazy.
Thanks! Umberto

By following the hint found in


https://vaadin.com/forum/#!/thread/9683271/13162177

…i was able to make it work with setEditorBuffered( true ).
The solution doesn’t work with unbuffered mode, so i guess it’s not a final solution.
Any hints?

Hi Umberto,

Sorry for the slow response here. Have you found a solution to your problem? Which version of Vaadin are you using? The Grid should mark the rows for updating in the next response to the client, and the value is then read from the item at a later time. I’m not sure what can go wrong in between the edit and the send to client. Have you tried using a debugger in the RpcDataProviderExtension method beforeClientResponse? That is the method that should manage all updated data and send those to the client.