http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/RemoteServiceFinalFields.gwt.xml File user/src/com/google/gwt/user/RemoteServiceFinalFields.gwt.xml (right):
http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/RemoteServiceFinalFields.gwt.xml#newcode18 user/src/com/google/gwt/user/RemoteServiceFinalFields.gwt.xml:18: --> This comments seems like copy/paste from another gwt.xml file. http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/RemoteServiceFinalFieldsFalseNoWarn.gwt.xml File user/src/com/google/gwt/user/RemoteServiceFinalFieldsFalseNoWarn.gwt.xml (right): http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/RemoteServiceFinalFieldsFalseNoWarn.gwt.xml#newcode18 user/src/com/google/gwt/user/RemoteServiceFinalFieldsFalseNoWarn.gwt.xml:18: --> Another comment that should be removed (or updated). http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java File user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java (right): http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java#newcode617 user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java:617: == Shared.SerializeFinalFieldsOptions.FALSE) { I was really confused why this was "== FALSE" instead of "!= TRUE". If the setting is "FALSE" and the field is not returned, then shouldn't "FALSE_NOWARN" also mean that the field should be not returned? Seems like they should be consistent. It turns on this is broken--because you changed the server-side signature to always include final fields, final fields always need to be returned from this method. (You correctly changed FieldSerializerCreator to re-check this setting before writing out the field-setting code.) It would be nice if FALSE|FALSE_NOWARN were set, then fields weren't ever returned, but since the server-side type signature checker doesn't have access to the type oracle settings to conditionally build its signature, I don't see a better way. Note that I found this by adding a "FinalFieldsFalseTest"--you add a FinalFieldsTest and FinalFieldsFalseNoWarn (which worked because the check above was == FALSE), but if you add a FinalFieldsFalseTest, the == FALSE check above kicks in, and then the signature check will fail. http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java#newcode621 user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java:621: * If the type has a custom seriaherelizer, assume the programmer knows Looks like "here" got pasted into the middle "serializer". :-) http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/rebind/rpc/Shared.java File user/src/com/google/gwt/user/rebind/rpc/Shared.java (right): http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/rebind/rpc/Shared.java#newcode60 user/src/com/google/gwt/user/rebind/rpc/Shared.java:60: private static SerializeFinalFieldsOptions serializeFinalFieldsValue; This static field should be removed, it's not needed. http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/rebind/rpc/Shared.java#newcode108 user/src/com/google/gwt/user/rebind/rpc/Shared.java:108: SerializeFinalFieldsOptions.valueOf(serializeFinalFieldsStringValue); Just return the valueOf result instead of "assigning it to the static field, and then returning the static field". http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/rebind/rpc/Shared.java#newcode250 user/src/com/google/gwt/user/rebind/rpc/Shared.java:250: return propVal; I would just "return prop.getCurrentValue()" instead of making an otherwise unused "propVal" local variable. http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java File user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java (right): http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java#newcode405 user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java:405: static boolean isNotStaticTransientOrEnum(Field field) { The old "isNonStaticTransientOrFinal" method isn't called anymore so can be removed since you added this one. http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/test/com/google/gwt/user/client/rpc/FinalFieldsTestFalseNoWarn.java File user/test/com/google/gwt/user/client/rpc/FinalFieldsTestFalseNoWarn.java (right): http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/test/com/google/gwt/user/client/rpc/FinalFieldsTestFalseNoWarn.java#newcode27 user/test/com/google/gwt/user/client/rpc/FinalFieldsTestFalseNoWarn.java:27: public class FinalFieldsTestFalseNoWarn extends RpcTestBase { Should name this FinalFieldsFalseNoWarnTest, with Test at the end? http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/test/com/google/gwt/user/server/rpc/FinalFieldsTestServiceImplFalseNoWarn.java File user/test/com/google/gwt/user/server/rpc/FinalFieldsTestServiceImplFalseNoWarn.java (right): http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/test/com/google/gwt/user/server/rpc/FinalFieldsTestServiceImplFalseNoWarn.java#newcode20 user/test/com/google/gwt/user/server/rpc/FinalFieldsTestServiceImplFalseNoWarn.java:20: import com.google.gwt.user.client.rpc.TestSetValidator; Unused import. http://gwt-code-reviews.appspot.com/1380807/diff/40002/user/test/com/google/gwt/user/server/rpc/FinalFieldsTestServiceImplFalseNoWarn.java#newcode26 user/test/com/google/gwt/user/server/rpc/FinalFieldsTestServiceImplFalseNoWarn.java:26: public class FinalFieldsTestServiceImplFalseNoWarn extends RemoteServiceServlet Minor, but might call this "FinalFieldsFalseNoWarnTestServiceImpl"--or just something that puts "ServiceImpl" at the end. http://gwt-code-reviews.appspot.com/1380807/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors