Hi Ray, Here is the source for CollaborativeOperation: https://github.com/goodow/realtime-operation/blob/master/src/main/java/com/goodow/realtime/operation/impl/CollaborativeOperation.java
the final project which depends on realtime-operation: https://github.com/goodow/realtime-store (Using the ./gwt-compile.sh to compile) and the live playground: http://realtimeplayground.goodow.com/ Thanks! On Tuesday, July 1, 2014 1:18:33 AM UTC+8, Ray Cromwell wrote: > > Can you post the full source for CollaborativeOperation? My guess is > the UserID and SessionID fields are being proven by the compiler to be > uninstantiated types. Are userId/sessionId simple Strings, or some > other type? > > . > > On Mon, Jun 30, 2014 at 8:18 AM, 'Daniel Kurka' via GWT Contributors > <[email protected] <javascript:>> wrote: > > 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] <javascript:>> > 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] <javascript:>. > > >>>> 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. > > > >>>> 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] > <javascript:>. > >> 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. > > > >> > >> 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] > <javascript:>. > > 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. > -- 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/8849efc2-0ffb-47ce-a9f8-822266de9287%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
