When attempting to write an updated object to a Space via the java API, org.openspaces.core.GigaSpace.write(Entry, lease, timeout, modifiers), I've run into some strange behavior that I can't duplicate outside of an existing space that already had this object at some point before.
Through trying to solve this problem, I've attempted to do numerous things:
- Restart the space
- Restart the domain the space is on
- Delete the conflicting object from the space
- Rename the object (hence the 4 below)
- Changed the serialization ID for said object
- All objects for the Space Class (FlushNotification4) are serializable.
The object in question (FlushNotification4) has two strings and an object (HotSwapRule4, serializable) which contains two additional objects (both serializable)
In a test scenario, initializing a brand new space and writing the object to the space works without any trouble. This is only an issue with an existing space that I would like to avoid having to do a hard restart of the domain to make this work.
I feel as if I've missed something dreadfully obvious, but I've just about run out of ideas of what to try.
com.gigaspaces.lrmi.nio.UnMarshallingException: Failed to unmarsh :[RequestPacket: interface com.gigaspaces.internal.remoting.RemoteOperationsExecutor.executeOperation(com.gigaspaces.internal.remoting.RemoteOperationRequest null), isOneWay = false, isCallBack = false, Priority = REGULAR]
at com.gigaspaces.lrmi.nio.Reader.unmarshall(Reader.java:625)
at com.gigaspaces.lrmi.nio.Reader.unmarshallRequest(Reader.java:509)
at com.gigaspaces.lrmi.nio.ChannelEntry.unmarshall(ChannelEntry.java:161)
at com.gigaspaces.lrmi.nio.Pivot$ChannelEntryTask.run(Pivot.java:182)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.j_spaces.core.EntrySerializationException: Failed to deserialize Entry FlushNotification4
at com.gigaspaces.internal.transport.EntryPacket.deserializePacket(EntryPacket.java:409)
at com.gigaspaces.internal.transport.EntryPacket.readExternal(EntryPacket.java:357)
at com.gigaspaces.internal.transport.AbstractEntryPacket.readExternalImpl(AbstractEntryPacket.java:296)
at com.gigaspaces.internal.serialization.AbstractExternalizable.readExternal(AbstractExternalizable.java:38)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1837)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at com.gigaspaces.internal.serialization.ObjectClassSerializer.read(ObjectClassSerializer.java:30)
at com.gigaspaces.internal.io.IOUtils.readObject(IOUtils.java:693)
at com.gigaspaces.internal.client.spaceproxy.operations.WriteEntrySpaceOperationRequest.readExternal(WriteEntrySpaceOperationRequest.java:189)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1837)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at com.gigaspaces.internal.io.IOUtils.unmarshalValue(IOUtils.java:302)
at com.gigaspaces.lrmi.nio.RequestPacket.readExternal(RequestPacket.java:219)
at com.gigaspaces.lrmi.nio.Reader.unmarshall(Reader.java:585)
... 6 more
Caused by: java.lang.ClassNotFoundException: HotSwapRuleInfo4
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.rmi.server.LoaderHandler$Loader.loadClass(LoaderHandler.java:1206)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at sun.rmi.server.LoaderHandler.loadClassForName(LoaderHandler.java:1219)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:452)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:185)
at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637)
at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264)
at com.gigaspaces.internal.io.AnnotatedObjectInputStream.resolveClass(AnnotatedObjectInputStream.java:180)
at com.gigaspaces.internal.io.MarshalInputStream.resolveClass(MarshalInputStream.java:158)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at com.gigaspaces.internal.serialization.ObjectClassSerializer.read(ObjectClassSerializer.java:30)
at com.gigaspaces.internal.io.IOUtils.readObject(IOUtils.java:693)
at com.gigaspaces.internal.io.IOUtils.readObjectArray(IOUtils.java:732)
at com.gigaspaces.internal.io.IOUtils.readObjectArrayCompressed(IOUtils.java:859)
at com.gigaspaces.internal.transport.EntryPacket.deserializePacket(EntryPacket.java:390)
↧