Thanks very much Thomas - that was it. I checked the gwt-websocket, and it 
is indeed using $entry, while gwt-stomp is not. I altered the code and the 
problem seems to be resolved. Whew! So happy to have found this solution.

Kay

On Friday, September 23, 2016 at 1:21:42 AM UTC-7, Thomas Broyer wrote:
>
>
>
> On Friday, September 23, 2016 at 2:04:19 AM UTC+2, Kay Pac wrote:
>>
>> I have a somewhat complex problem related to a CellTable that updates 
>> based on messages received over a WebSocket connection. The problem is as 
>> follows: The table does not update in real-time, even though "setRowData" 
>> and redraw* are called in real-time. There is a delay in the row appearing 
>> in the CellTable, or rather in the DOM as a table row. I realize that 
>> redraw does not actually redraw but sets a flag via 
>> HasDataPresenter.redraw, which checked elsewhere. It is often the case that 
>> mouse movement causes the row to appear - and I have been able to reproduce 
>> this behavior. When I put in a timer firing every 300 milliseconds, its 
>> execution also causes the row to appear.
>>
>
> That hints at the callback that calls the setRowData and redraw not being 
> wrapped in $entry().
> CellTable defers its DOM update using Scheduler.scheduleFinally(), and 
> "finally commands" (and "entry commands") are processed by $entry().
> So, your callback schedules a finally task, but because it's not in 
> $entry() it's not called "at the end of the event loop" as it's expected 
> to; it's actually called at the end of the next event loop that uses 
> $entry(), which is the case for almost anything that GWT does: event 
> handlers, timers, etc.
> So: make sure your WebSocket's callback is wrapped in $entry() (this also 
> takes care of the GWT.UncaughtExceptionHandler btw)
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to