Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-2057

small/array8 primitive arrays >=128 bytes fail to encode

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • proton-j-0.30.0, proton-j-0.31.0, proton-j-0.32.0, proton-j-0.33.0
    • proton-j-0.33.1
    • proton-j
    • None
    • OS: RHEL 7.2
      JRE: OpenJDK Runtime Environment (build 1.8.0_102-b14)
      proton-j 0.32.0 and 0.33.0
      qpid-jms-client 0.41.0 and 0.42.0

    Description

      While encoding a small/array8 primitive array with >=128 bytes content (and obviously <=255 bytes given array8 type), an exception will be thrown. The array size is being stored in a byte variable, which can be negative, for later writing out as a raw 1byte size field during the encoding. The value was mistakengly also being used to facilitate checking for buffer capacity or expansion, which can fail due to the potentially negative value if the array is in the appropate size range.

      This was introduced during proton-j 0.30.0 changes for PROTON-1941.

       

      ================
      Original Description:

      Receiving a AMQP short array (length less than 256) with qpid-jms-client causes this error in log:

      [AmqpProvider :(1):[amqp://localhost:5672]] WARN o.a.q.j.p.a.AmqpConsumer - Error on transform: minWritableBytes: -92 (expected: >= 0)

      The message is still kept in queue.

      Attachments

        Issue Links

          Activity

            People

              robbie Robbie Gemmell
              iongchun Ang Iongchun
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: