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

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

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: proton-j-0.30.0, proton-j-0.31.0, proton-j-0.32.0, proton-j-0.33.0
    • Fix Version/s: proton-j-0.33.1
    • Component/s: proton-j
    • Labels:
      None
    • Environment:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: