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)

Reply via email to