Uploaded image for project: 'MINA'
  1. MINA
  2. DIRMINA-321

BufferUnderflowException in ObjectSerializationInputStream

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.0.1
    • 1.0.2
    • Filter
    • None

    Description

      Andrew Vokhmin's report:

      MINA 1.0 provides an own object serialization streams. But I have a problem
      with it...
      or may be It's my unawareness.

      Try MINA 1.0.0 and MINA 1.0.1;
      JDK 1.5.0_09
      Windows 2003 Server

      Source:

      import java.io.ByteArrayInputStream;
      import java.io.ByteArrayOutputStream;
      import java.io.ObjectInputStream;
      import java.io.ObjectOutputStream;

      import junit.framework.TestCase;

      import
      org.apache.mina.filter.codec.serialization.ObjectSerializationInputStream;
      import
      org.apache.mina.filter.codec.serialization.ObjectSerializationOutputStream;

      public class ObjectSerializationStreamsTest extends TestCase {

      public ObjectSerializationStreamsTest(String arg0)

      { super(arg0); }

      public static void main(String[] args)

      { junit.textui.TestRunner.run(ObjectSerializationStreamsTest.class); }

      protected void setUp() throws Exception

      { super.setUp(); }

      protected void tearDown() throws Exception

      { super.tearDown(); }

      /*

      • Standart Object streams works - OK...
        */
        public void testObjectStandartStreams() throws Exception { ObjectInputStream osis; ObjectOutputStream osos; //Integer msgA = new Integer(12345); String msgA = "Test"; ByteArrayOutputStream baos = new ByteArrayOutputStream(); osos = new ObjectOutputStream(baos); osos.writeObject(msgA); osos.flush(); byte xbA[] = baos.toByteArray(); osis = new ObjectInputStream(new ByteArrayInputStream(xbA)); osos.writeObject(msgA); Object msg = osis.readObject(); assertEquals(msgA, msg); osos.close(); osis.close(); }

      /*

      • MINA Object streams works - FAILED!..
        */
        public void testObjectSerializationStreams() throws Exception { ObjectSerializationInputStream osis; ObjectSerializationOutputStream osos; //Integer msgA = new Integer(12345); String msgA = new String("Test"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); osos = new ObjectSerializationOutputStream(baos); osos.writeObject(msgA); osos.flush(); byte xbA[] = baos.toByteArray(); osis = new ObjectSerializationInputStream(new ByteArrayInputStream(xbA)); osos.writeObject(msgA); Object msg = osis.readObject(); assertEquals(msgA, msg); osos.close(); osis.close(); }

      }

      Output:

      ..E
      Time: 0,109
      There was 1 error:
      1)
      testObjectSerializationStreams(ru.territory.telex.mina.test.ObjectSerializat
      ionStreamsTest)java.nio.BufferUnderflowException
      at org.apache.mina.common.ByteBuffer.getObject(ByteBuffer.java:1613)
      at
      org.apache.mina.filter.codec.serialization.ObjectSerializationInputStream.re
      adObject(ObjectSerializationInputStream.java:125)
      at
      ru.territory.telex.mina.test.ObjectSerializationStreamsTest.testObjectSerial
      izationStreams(ObjectSerializationStreamsTest.java:61)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
      )
      at
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
      .java:25)
      at
      ru.territory.telex.mina.test.ObjectSerializationStreamsTest.main(ObjectSeria
      lizationStreamsTest.java:20)

      FAILURES!!!
      Tests run: 2, Failures: 0, Errors: 1

      Attachments

        Activity

          People

            trustin Trustin Lee
            trustin Trustin Lee
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: