ghost23
ghost23

Reputation: 2242

gae 1.7.3 update -> java.io.InvalidClassException

i just updated the Java GAE SDK to 1.7.3 and now i get exceptions, when trying to read from my local datastore:

INFO: Failed to load from the backing store,
C:\Users\<user>\Documents\myproject\war\WEB-INF\appengine-generated\local_db.bin
java.io.InvalidClassException:
com.google.appengine.repackaged.com.google.io.protocol.ProtocolMessage;
local class incompatible:
    stream classdesc serialVersionUID = 2691625986599730786,
    local class serialVersionUID = -3428150205257072157
at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)

Which prevents me from reading entities from my existing local datastore. If i downgrade to 1.7.2 it works again, but i would like to run with the latest version.

Anyone know how to solve this? Thank you.

Upvotes: 4

Views: 1104

Answers (2)

user1308609
user1308609

Reputation: 31

I think it might be possible to get back your data but require some work. If we run your project on two application servers at local: one with SDK 1.7.2 and one with newer SDK, then use remote api to access old data and copy to new datastore, you can recreate all entries.

Again, it might work, so try it only you have to.

Upvotes: 0

Ian Marshall
Ian Marshall

Reputation: 760

If I have understood you correctly, you have created a local datastore using version 1.7.2 of the development web application server, and are trying to use this same data (file) using version 1.7.3.

Newer versions of the dev app server are liable, but not guaranteed, to be unable to read data persisted with an earlier version.

I have found that data stored with the 1.7.2 dev app server cannot be used with the 1.7.3, so this time we are both unlucky.

In this case, you will have to create your data anew using 1.7.3.

Upvotes: 2

Related Questions