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)