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
-
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
- is caused by
-
PROTON-1941 Add WritableBuffer API for requesting space when writing complex types
- Closed
- is related to
-
PROTON-2058 small/array8 byte array encodes incorrectly due to element count omission
- Closed
- links to