David Hoffer created ARTEMIS-4340:
-------------------------------------
Summary: ByteUtil.uncheckedZeros throws IndexOutOfBoundsException
in else condition
Key: ARTEMIS-4340
URL: https://issues.apache.org/jira/browse/ARTEMIS-4340
Project: ActiveMQ Artemis
Issue Type: Bug
Components: ActiveMQ-Artemis-Native
Affects Versions: 2.22.0
Environment: Windows 10
Reporter: David Hoffer
Assignee: Clebert Suconic
In artemis-commons:
ByteUtil.uncheckedZeros throws IndexOutOfBoundsException in the else part of
the method.
The code in the else part is looping through number of bytes specified by bytes
input parameter which is often provided by buffer.capacity(), but then the code
at
buffer.put(i + offset, zero) where buffer is of DirectByteBuffer type calls
checkIndex(int i) and it throws if i is >= limit.
But limit is not the same as capacity in a Buffer. In our case capacity is
4096 and limit is 16 so method always throws IndexOutOfBoundsException if the
else case is executed as soon as i ==16.
This code is called when Artemis is launched and it validates/creates the
various bindings files. This causes Artemis to fail to load properly.
Note I believe all versions of artemis-commons has this bug but I currently am
testing with 2.22.0.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)