code: @Override
  	public int readBytes(byte[] value) throws JMSException
      {
      	backupState();
      	try
      	{
  	        if (currentByteInputStream == null)
  	        {
  	            byte[] base = MessageConvertTools.asBytes(internalReadObject());
  	            if (base == null)
  	            	return -1; // [JMS Spec]
  	            currentByteInputStream = new ByteArrayInputStream(base);
  	        }
  	        
  	        try
  	        {        	
  	            int readAmount = currentByteInputStream.read(value);
  	            if (readAmount < value.length)
  	            {
  	                currentByteInputStream = null; // end of stream reached
  	            }
  	            
  	            return readAmount;
  	        }
  	        catch (IOException e)
  	        {
  	            throw new FFMQException("Cannot read stream message body","IO_ERROR",e);
  	        }
      	}
      	catch (JMSException e)
      	{
      		restoreState();
      		throw e;	
      	}
      	catch (RuntimeException e)
      	{
      		restoreState();
      		throw e;
      	}
      }
docs: /*
  (non-Javadoc)
  @see javax.jms.StreamMessage#readBytes(byte[])