First thing: *thanks a lot* for this very useful project!
MockStreamMessage.readBytes is not implemented as specified in the API: http://java.sun.com/j2ee/1.4/docs/api/javax/jms/StreamMessage.html#readBytes\(byte)
Let me explain: if the read buffer is smaller than the amount of bytes in the byte that was written to the stream message, subsequent calls return a MessageEOFException because the byte as been popped from the data stack, though not totally unread.
One way to fix this would be to push the remaining of the byte back to the stack.
Note that even an empty array would have to be pushed back because, as stated in the API: "If readBytes returns a value equal to the length of the buffer, a subsequent readBytes call must be made. If there are no more bytes to be read, this call returns -1."