I have seen this happening before when the pruner removes a type that he does not consider live but actually is live.
Fast try, can you change: final CollaborativeOperation first = operations.<CollaborativeOperation> get(0); to: final CollaborativeOperation first = (CollaborativeOperation) operations.<CollaborativeOperation> get(0); -Daniel On Mon, Jun 30, 2014 at 8:09 AM, 田传武 <[email protected]> wrote: > I'm sure this is an optimizer bug. > > null.nullField causes the following error at runtime: > SEVERE: (TypeError) : Cannot read property 'nullField' of nullcom.google. > gwt.core.client.JavaScriptException: (TypeError) : Cannot read property > 'nullField' of null > at Unknown.$compose(http: > //localhost:63342/realtime/app/bower_components/realtime-store/realtime-store.js@41 > ) > > However, the draft compilation javascript works very well. > > On Monday, June 30, 2014 10:58:08 PM UTC+8, John A. Tamplin wrote: > >> Generally, null.nullField means the compiler can prove the value is null >> at that point, and draft compile skills the optimization that defects a lot >> of that. So either it really is always null, or there is an optimizer bug. >> On Jun 30, 2014 10:31 AM, "田传武" <[email protected]> wrote: >> >>> Hello, >>> The newest @JsType feature is really very fascinating, and works in most >>> cases. The only issue i found was the wrong null.nullField javascript >>> output. >>> >>> the compile command: >>> >>> java -cp xxx com.google.gwt.dev.Compiler -war xxx -XnoclassMetadata >>> -XnocheckCasts -XjsInteropMode JS -XclosureCompiler -style >>> PRETTY com.goodow.realtime.store.StoreProd >>> >>> >>> Java code: >>> >>> public CollaborativeOperation compose(JsonArray operations) { >>> final CollaborativeOperation first = operations.<CollaborativeOperation> >>> get(0); >>> if (operations.length() == 1) { >>> return first; >>> } >>> final JsonArray components = Json.createArray(); >>> operations.forEach(...); >>> return new CollaborativeOperation(first.userId, first.sessionId, >>> components); >>> } >>> >>> >>> translated to the following javascript: >>> >>> function $compose(operations) { >>> var components; >>> components = operations[0]; >>> if (1 == operations.length) { >>> return components; >>> } >>> components = []; >>> $forEach(operations, new CollaborativeTransformer$1(components)); >>> return new CollaborativeOperation(null.nullField, null.nullField, >>> components); >>> } >>> >>> >>> >>> There's an easy workaround to fix this: using the -draftCompile options >>> when compilation. Here is the full compilation log: >>> https://travis-ci.org/goodow/realtime-store/builds/28777579 (search >>> for ./gwt-compile.sh) >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "GWT Contributors" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected] >>> . >>> To view this discussion on the web visit https://groups.google.com/d/ >>> msgid/google-web-toolkit-contributors/35eb8ed2-588b- >>> 484a-b2f4-b58b5bb01f46%40googlegroups.com >>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/35eb8ed2-588b-484a-b2f4-b58b5bb01f46%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > You received this message because you are subscribed to the Google Groups > "GWT Contributors" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/google-web-toolkit-contributors/362b0daf-c174-4021-9bc8-acee19af0cfc%40googlegroups.com > <https://groups.google.com/d/msgid/google-web-toolkit-contributors/362b0daf-c174-4021-9bc8-acee19af0cfc%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- Google Germany GmbH *Dienerstr. 12* *80331 München* Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Graham Law, Katherine Stephens -- You received this message because you are subscribed to the Google Groups "GWT Contributors" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/CALLujirJ7CD%2B_fRDFyE9kUX%2BCLeeaMbd8JQraWMMp6CWQKtNMQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
