Description
In all versions of this client, including the current version in master, the basic QoS "prefetch count" property is specified of type int
. However, the AMQP 0.9.1 Reference specifies prefetch count to be of type short
, which it further clarifies to be 16-bit integer.
This most naturally maps to java type short
rather than int
.
As a result, it's relatively simple to specify values that are out of bounds, such as 100000
(100k). These values have their most significant bits truncated and result in a transmitted value to the server of something else. In the case of 100000 the server will see the 16 least significant bits, which come out to value 16960
. (See this SO post for context)
Possible fixes for this would include one or all of:
a) explicitly failing of the value supplied is > Short.MAX_VALUE
b) changing the allowed type in the client from int
to short