http://gwt-code-reviews.appspot.com/1367801/diff/1/dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java File dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java (right):
http://gwt-code-reviews.appspot.com/1367801/diff/1/dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java#newcode64 dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java:64: private final transient String wrapperTypeName; Sorry, it's a tad subtle I suppose. It works via readResolve() below; readResolve() depends solely on JType.name which is NOT transient. So what gets written into the stream is essentially JPrimitiveType("int"). After the object gets deserialized, readResolve() replaces the newly-deserialized object with the canonical object, which has full data. http://gwt-code-reviews.appspot.com/1367801/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
