Friday, June 19, 2020

Re: StyleInjector chokes on startup

Yes, we can probably consider that a bug in GWT.
I'd also call this pattern of doing real work in a static initializer a code smell: http://misko.hevery.com/code-reviewers-guide/flaw-constructor-does-real-work/
While still a flaw considering the above link, it's however a common practice to call `ensureInjected()` from the class constructor (ideally, you'd rather call it in a lifecycle method, such as Activity#start, or Widget#onAttach); and that would likely fix your issue here.

On Thursday, June 18, 2020 at 8:33:06 PM UTC+2, Gordan Krešić wrote:
On 18. 06. 2020. 20:25, Gordan Krešić wrote:
> Probably unrelated with StyleInjector but with Scheduler.scheduleFinally

Ok, I've put a most basic repro case to prove that this is a Scheduler issue:

public class Foo {

        static {
                Scheduler.get().scheduleFinally(() -> GWT.log("Finally!"));
        }
        
}

Now initialite Foo on startup (in EntryPoint.onModuleLoad() for example),
but "Finally!" will be printed only *after* first event loop, like described:

Scheduler.get().scheduleFixedDelay(() -> {
        return false;
}, 0);

        -gkresic.

--
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 google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/1ecd7663-8a5a-449e-aef5-4008d3735433o%40googlegroups.com.

No comments:

Post a Comment