tree 65d3302fdcacb54b0760b0d0d015bd8b5b2c5953
parent 6f6d35aab8e9fe7002de3768e6d5a30cad2d4cb7
author QI Jiale <qijiale76@foxmail.com> 1714446611 +0800
committer GitHub <noreply@github.com> 1714446611 +0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJmMGETCRC1aQ7uu5UhlAAAnPcQADWEhH8ze9AQfLoAxJKBBNao
 YuKCoOjy5mnuHOUuVO1H+ioQtTeheA1md5SYpCayNXIpC0siT0a2eT4ItUelo2wr
 HxEcdOm517xkOHLCSSHOAy6PKXoPqaE0Tf4k7CRzENIfWx9aNQUOEcuTv2ZUeCEt
 G+8YF0anK7i7p0lMtOx8H2L6stInKPkBYKl6qdn4F2qDTkhqSlPkLLi9JjuinQnK
 veGESFLC1NsvCTV/GPOQnIeEKgBvdTGdZYU77G3Md4UJgF97eL+WZ8R+hL8kEXPp
 E6ZjwDeSe2tGz5qlvfSQVT5ceQq63LGNODHretYs+uKJzZq4s1gPg0fCFb9dTTju
 AQGPgfL00IiRjs7VZMec6ztkiMdhDiwDEU/McVwvBEEFQ0tRDwkH5de4zJpQaR60
 SQEbGuLVdlfykAUooBcGF9J2UVfJc5eW5vPnNbydq163qoV46i3Ww4IqAKjTaJp1
 6EEFVx2f+RTxQtbo/wQ6fmzSMGZuBChE9t+NBF7Zjssp9tKROJZV6VoWRoS0Ovtz
 It3/EDsvnEyGhqYUQlfbllouzYVg7z8sLUM7Qid4AWurt3HsVVSMQ/ODqCZ95s8w
 rlGuiQNQKEfIgd6DgiqYiu3SQ/jHhEQiKxLC1XWj8x0+GgiYVhQ51fpK1TmYgTum
 wZCMYF9rv9kVhTVrB0PW
 =NydT
 -----END PGP SIGNATURE-----
 

[#1341] fix(mr): Fix MR Combiner ArrayIndexOutOfBoundsException Bug. (#1666)

### What changes were proposed in this pull request?

The current implementation of the SortBufferIterator.getKey() and .getValue() methods in the SortWriteBuffer class assumes that keys and values are always stored within a single buffer. This assumption can lead to runtime exceptions, specifically ArrayIndexOutOfBoundsException, when keys or values span multiple WrappedBuffer instances.

In the current implementation, due to the execution of the `compact()`, the data of the key will not span buffers. However, the data of the value may be located on different buffers from the key and may span multiple buffers.

This PR update getKey() to use fetchDataFromBuffers() to retrieve the key data. And this PR update getValue() to first adjust the starting index and offset based on the length of the key and then use fetchDataFromBuffers() to retrieve the value data.

Another solution to this bug is to modify `addRecord()` method by keeping key and value in the same WrappedBuffer.

### Why are the changes needed?

Fix: #1341

### Does this PR introduce _any_ user-facing change?

No.

### How was this patch tested?

Tested manually. I'll submit a new integration test later.