@Override
 public String readUTF() throws JMSException {
   if (!readMode) throw new MessageNotReadableException("Message not readable");
   try {
     return readOnlyMessage.readUTF();
   } catch (IOException eof) {
     MessageEOFException eofEx = new MessageEOFException("eof ?");
     eofEx.setLinkedException(eof);
     throw eofEx;
   }
 }
 @Override
 public int readBytes(byte[] data, int length) throws JMSException {
   if (!readMode) throw new MessageNotReadableException("Message not readable");
   try {
     return readOnlyMessage.readBytes(data, length);
   } catch (IOException eof) {
     MessageEOFException eofEx = new MessageEOFException("eof ?");
     eofEx.setLinkedException(eof);
     throw eofEx;
   }
 }
 private byte[] getPayloadData() throws IOException {
   if (readMode) return readOnlyMessage.getDataCopy();
   return writeOnlyMessage.getPayloadAsBytes();
 }
 @Override
 public long getBodyLength() throws JMSException {
   if (!readMode) throw new MessageNotReadableException("Message not readable");
   return readOnlyMessage.getBodyLength();
 }