Figure out how to deal with serialization incompatibilities

Bug #788918 reported by Matt Giuca
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MUGLE
New
High
Unassigned

Bug Description

I just spent awhile trying to deal with a student project that was using the wrong serialization ID for java.util.Vector. This was raising exceptions:
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: Invalid type signature for java.util.Vector

Currently, the MUGLE server appears to be using serialization ID for Vector: 3057315478
This student's code (which I compiled last night using Eclipse) has serialization ID for Vector: 3125574444

Hence the exception. I must have a different version of GWT in my Eclipse since I compiled the student code with Eclipse and MUGLE with Ant. It doesn't seem to be a problem for primitive types; probably the Vector signature was explicitly changed. But that's beside the point: the point is that this sort of thing is going to happen a lot if we have students compiling code using different versions of GWT to MUGLE.

We need to find a way to deal with these issues. This also ties in with the fact that using java.io.Serializable doesn't seem to be working (we can't generally deserialize student types, since the server needs to know about them in advance). Probably we will replace the entire serialization framework to use something more like JSON. A less-severe alternative is to keep the same API, but do the serialization on the client side and send blobs to the database (this would still require recompilation of all the student code, but they wouldn't need to modify the code).

Tags: api
Revision history for this message
Matt Giuca (mgiuca) wrote :

Confirmed: Recompiling the student code with Eclipse on a different machine fixed the issue. (But again, not the point.)

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.