Uploaded image for project: 'JBoss Marshalling'
  1. JBoss Marshalling
  2. JBMAR-69

EOFException when deserializing objects that have references to objects with custom readObject

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 1.2.0.CR4
    • 1.2.0.CR3
    • River
    • None

      Marshalling a Serializable object (let's call it A) that has a reference to another Serializable object that overrides readObject(ObjectInputStream) (let's call this second object B) fails when A has other fields other than the reference to B and these fields are serialized after B. In JBMAR, this can be forced by making sure these other fields start with letters alphabetically next than the field reference to B.

      I've just committed a failing test to JBMAR trunk (SimpleMarshallerTests.testSerializableThatReferencesSerializableOverridenReadObjec).

      The exception thrown is:

      FAILED: testSerializableThatReferencesSerializableOverridenReadObject
      java.io.EOFException: Read past end of file
      at org.jboss.marshalling.AbstractUnmarshaller.eofOnRead(AbstractUnmarshaller.java:180)
      at org.jboss.marshalling.AbstractUnmarshaller.readUnsignedByteDirect(AbstractUnmarshaller.java:308)
      at org.jboss.marshalling.AbstractUnmarshaller.readUnsignedByte(AbstractUnmarshaller.java:276)
      at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:158)
      at org.jboss.marshalling.AbstractUnmarshaller.readObject(AbstractUnmarshaller.java:81)
      at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1562)
      at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1471)
      at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1119)
      at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:221)
      at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:158)
      at org.jboss.marshalling.AbstractUnmarshaller.readObject(AbstractUnmarshaller.java:81)
      at org.jboss.test.marshalling.SimpleMarshallerTests$9.runRead(SimpleMarshallerTests.java:380)
      at org.jboss.test.marshalling.TestBase.runReadWriteTest(TestBase.java:120)
      at org.jboss.test.marshalling.SimpleMarshallerTests.testSerializableThatReferencesSerializableOverridenReadObject(SimpleMarshallerTests.java:374)
      ... Removed 22 stack frames

              rh-ee-galder Galder ZamarreƱo
              rh-ee-galder Galder ZamarreƱo
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: