Reviewers: bobvawter_google.com,

Description:
Attempting to transfer objects marked as
@PersistenceCapable(detachable="true") via RPC currently fails due to
mismatched class bytecode between the server and client.  This patch
detects such objects and manually serializes the extra information
required to maintain the identity of the object should it be transferred
from aJDO-enabled server to a client and back to the server.  The object
must be in the Detached state in order for the transfer to be meaningful
-- in general, applications sending persistent objects over the wire
need to follow the same rules they would in order to successfully
serialize and deserialize such objects.

Future work:

1) Deal with classes whose persistence is specified via an xml
configuration file rather than via annotations.
2) Detect if an attempt is made to transfer an object that is not in the
Detached state.


Please review this at http://gwt-code-reviews.appspot.com/47807

Affected files:
   dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
   user/src/com/google/gwt/user/client/rpc/WeakMapping.java
   user/src/com/google/gwt/user/rebind/rpc/FieldSerializerCreator.java
   user/src/com/google/gwt/user/server/rpc/impl/Base64Utils.java
   user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java
    
user/src/com/google/gwt/user/server/rpc/impl/ServerSerializationStreamReader.java
    
user/src/com/google/gwt/user/server/rpc/impl/ServerSerializationStreamWriter.java
   user/super/com/google/gwt/emul/java/lang/Object.java
    
user/super/com/google/gwt/user/translatable/com/google/gwt/user/client/rpc/WeakMapping.java
   user/test/com/google/gwt/user/server/rpc/RPCTest.java



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

Reply via email to