nevado-jms/src/main/java/org/skyscreamer/nevado/jms/message/NevadoStreamMessage.java
/**
     * Reads an object from the stream message. <p/>
     * <P>
     * This method can be used to return, in objectified format, an object in
     * the Java programming language ("Java object") that has been written to
     * the stream with the equivalent <CODE>writeObject</CODE> method call, or
     * its equivalent primitive <CODE>write<I>type</I></CODE> method. <p/>
     * <P>
     * Note that byte values are returned as <CODE>byte[]</CODE>, not <CODE>Byte[]</CODE>.
     * <p/>
     * <P>
     * An attempt to call <CODE>readObject</CODE> to read a byte field value
     * into a new <CODE>byte[]</CODE> object before the full value of the byte
     * field has been read will throw a <CODE>MessageFormatException</CODE>.
     *
     * @return a Java object from the stream message, in objectified format (for
     *         example, if the object was written as an <CODE>int</CODE>, an
     *         <CODE>Integer</CODE> is returned)
     * @throws JMSException
     *             if the JMS provider fails to read the message due to some
     *             internal error.
     * @throws MessageEOFException
     *             if unexpected end of message stream has been reached.
     * @throws MessageFormatException
     *             if this type conversion is invalid.
     * @throws MessageNotReadableException
     *             if the message is in write-only mode.
     * @see #readBytes(byte[] value)
     */
Reads an object from the stream message. 

This method can be used to return, in objectified format, an object in
the Java programming language ("Java object") that has been written to
the stream with the equivalent writeObject method call, or
its equivalent primitive writetype method. 

Note that byte values are returned as byte[], not Byte[].


An attempt to call readObject to read a byte field value
into a new byte[] object before the full value of the byte
field has been read will throw a MessageFormatException.

@return a Java object from the stream message, in objectified format (for
example, if the object was written as an int, an
Integer is returned)
@throws JMSException
if the JMS provider fails to read the message due to some
internal error.
@throws MessageEOFException
if unexpected end of message stream has been reached.
@throws MessageFormatException
if this type conversion is invalid.
@throws MessageNotReadableException
if the message is in write-only mode.
Reads an object from the stream message . This method can be used to return in objectified format an object in the Java programming language ( " Java object " ) that has been written to the stream with the equivalent writeObject method call or its equivalent primitive writetype method . Note that byte values are returned as byte [] not Byte [] . An attempt to call readObject to read a byte field value into a new byte [] object before the full value of the byte field has been read will throw a MessageFormatException . @return a Java object from the stream message in objectified format ( for example if the object was written as an int an Integer is returned ) @throws JMSException if the JMS provider fails to read the message due to some internal error . @throws MessageEOFException if unexpected end of message stream has been reached . @throws MessageFormatException if this type conversion is invalid . @throws MessageNotReadableException if the message is in write - only mode .
public Object readObject() throws JMSException {
        initializeReading();
        try {
            this.dataIn.mark(65);
            int type = this.dataIn.read();
            if (type == -1) {
                throw new MessageEOFException("reached end of data");
            }
            if (type == MarshallingSupport.NULL) {
                return null;
            }
            if (type == MarshallingSupport.BIG_STRING_TYPE) {
                return MarshallingSupport.readUTF8(dataIn);
            }
            if (type == MarshallingSupport.STRING_TYPE) {
                return this.dataIn.readUTF();
            }
            if (type == MarshallingSupport.LONG_TYPE) {
                return new Long(this.dataIn.readLong());
            }
            if (type == MarshallingSupport.INTEGER_TYPE) {
                return new Integer(this.dataIn.readInt());
            }
            if (type == MarshallingSupport.SHORT_TYPE) {
                return new Short(this.dataIn.readShort());
            }
            if (type == MarshallingSupport.BYTE_TYPE) {
                return new Byte(this.dataIn.readByte());
            }
            if (type == MarshallingSupport.FLOAT_TYPE) {
                return new Float(this.dataIn.readFloat());
            }
            if (type == MarshallingSupport.DOUBLE_TYPE) {
                return new Double(this.dataIn.readDouble());
            }
            if (type == MarshallingSupport.BOOLEAN_TYPE) {
                return this.dataIn.readBoolean() ? Boolean.TRUE : Boolean.FALSE;
            }
            if (type == MarshallingSupport.CHAR_TYPE) {
                return new Character(this.dataIn.readChar());
            }
            if (type == MarshallingSupport.BYTE_ARRAY_TYPE) {
                int len = this.dataIn.readInt();
                byte[] value = new byte[len];
                this.dataIn.readFully(value);
                return value;
            } else {
                this.dataIn.reset();
                throw new MessageFormatException("unknown type");
            }
        } catch (NumberFormatException mfe) {
            try {
                this.dataIn.reset();
            } catch (IOException ioe) {
                JMSException jmsEx = new MessageFormatException(ioe.getMessage());
                jmsEx.setLinkedException(ioe);
                throw jmsEx;
            }
            throw mfe;
        } catch (EOFException e) {
            JMSException jmsEx = new MessageEOFException(e.getMessage());
            jmsEx.setLinkedException(e);
            throw jmsEx;
        } catch (IOException e) {
            JMSException jmsEx = new MessageFormatException(e.getMessage());
            jmsEx.setLinkedException(e);
            throw jmsEx;
        }
    }
public Object readObject ( ) throws JMSException { initializeReading ( ) ; try { this . dataIn . mark ( 65 ) ; int type = this . dataIn . read ( ) ; if ( type == - 1 ) { throw new MessageEOFException ( "reached end of data" ) ; } if ( type == MarshallingSupport . NULL ) { return null ; } if ( type == MarshallingSupport . BIG_STRING_TYPE ) { return MarshallingSupport . readUTF8 ( dataIn ) ; } if ( type == MarshallingSupport . STRING_TYPE ) { return this . dataIn . readUTF ( ) ; } if ( type == MarshallingSupport . LONG_TYPE ) { return new Long ( this . dataIn . readLong ( ) ) ; } if ( type == MarshallingSupport . INTEGER_TYPE ) { return new Integer ( this . dataIn . readInt ( ) ) ; } if ( type == MarshallingSupport . SHORT_TYPE ) { return new Short ( this . dataIn . readShort ( ) ) ; } if ( type == MarshallingSupport . BYTE_TYPE ) { return new Byte ( this . dataIn . readByte ( ) ) ; } if ( type == MarshallingSupport . FLOAT_TYPE ) { return new Float ( this . dataIn . readFloat ( ) ) ; } if ( type == MarshallingSupport . DOUBLE_TYPE ) { return new Double ( this . dataIn . readDouble ( ) ) ; } if ( type == MarshallingSupport . BOOLEAN_TYPE ) { return this . dataIn . readBoolean ( ) ? Boolean . TRUE : Boolean . FALSE ; } if ( type == MarshallingSupport . CHAR_TYPE ) { return new Character ( this . dataIn . readChar ( ) ) ; } if ( type == MarshallingSupport . BYTE_ARRAY_TYPE ) { int len = this . dataIn . readInt ( ) ; byte [ ] value = new byte [ len ] ; this . dataIn . readFully ( value ) ; return value ; } else { this . dataIn . reset ( ) ; throw new MessageFormatException ( "unknown type" ) ; } } catch ( NumberFormatException mfe ) { try { this . dataIn . reset ( ) ; } catch ( IOException ioe ) { JMSException jmsEx = new MessageFormatException ( ioe . getMessage ( ) ) ; jmsEx . setLinkedException ( ioe ) ; throw jmsEx ; } throw mfe ; } catch ( EOFException e ) { JMSException jmsEx = new MessageEOFException ( e . getMessage ( ) ) ; jmsEx . setLinkedException ( e ) ; throw jmsEx ; } catch ( IOException e ) { JMSException jmsEx = new MessageFormatException ( e . getMessage ( ) ) ; jmsEx . setLinkedException ( e ) ; throw jmsEx ; } }
Reads an object from the stream message.
Reads an object from the stream message .