Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-6809

activemq-client returns unexpected length code on first read from stream containing empty byte array

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 5.14.5
    • 5.15.1, 5.16.0
    • JMS client
    • None

    Description

      Consider this code

      	private void testEmptyBufferInput() throws JMSException {
      		byte[] readList = new byte[BYTE_LIST.length - 1];
      		byte[] emptyList = {};
      		LOG.info("Streaming BYTE_LIST message testing EMPTY buffer input");
      		stream.writeBytes(emptyList);
      		stream.reset();
      		LOG.info("Reading BYTE_LIST message testing EMPTY buffer input");
      		final int IS_EMPTY = 0;
      		assertThat(stream.readBytes(readList)).isEqualTo(IS_EMPTY);
      	}
      

      The code above works with qpid-jms, but fails with activemq-client on the assertThat with error message java.lang.AssertionError: Not true that <-1> is equal to <0>. Judging by documentation http://docs.oracle.com/javaee/6/api/javax/jms/StreamMessage.html#readBytes(byte[]), I think that qpid-jms behavior is correct and what activemq-client does is a bug.

      Attachments

        Issue Links

          Activity

            People

              tabish Timothy A. Bish
              jdanek Jiri Daněk
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: