I've integrated your changes, also synced the changes.

Thanks!

Could you please review it?

Sure. I understand a bit more about how it works now.

Previously, the server-side ignored all final fields. You understandably
had to change that, but since the server-side doesn't have access to the
type oracle's rpc.final.serialize property, it *always* expects final
fields.

So, final fields are now always in the signatures, payloads, etc., and
the FALSE FALSE_NOWARN behavior is implemented merely by skipping the
"setXxx" call in FieldSerializerCreator.

However, since that is only for the client-side, the server-side now
always sets final fields, regardless of the rpc.final.serialize value.
See this failing assertion:

https://github.com/stephenh/scalagwt-gwt/commit/41abe191926ba31b7634f529f1ac8d455e729fe9#L3R52

Previously the server-side would have called the no-arg cstr (which
assigns 5) and then done nothing else. So technically this is a breaking
change.

Is this intentional? That finals are always sent over the wire?

It seems like making the server-side aware of the rpc.final.serialize
value would be better, perhaps by putting it in the serialization policy
file? Then it could know when it should/should not use final fields.

http://gwt-code-reviews.appspot.com/1380807/

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to