[bug-65184] revert due to integration test failures

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1887660 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2021-03-14 23:54:49 +00:00
parent 093fa9adb1
commit 9078e982c3
1 changed files with 11 additions and 15 deletions

View File

@ -54,32 +54,28 @@ public class POIFSMiniStore extends BlockStore {
/**
* Load the block at the given offset.
*/
protected ByteBuffer getBlockAt(final int offset) {
protected ByteBuffer getBlockAt(final int offset) throws IOException {
// Which big block is this?
int byteOffset = offset * POIFSConstants.SMALL_BLOCK_SIZE;
int bigBlockNumber = byteOffset / _filesystem.getBigBlockSize();
int bigBlockOffset = byteOffset % _filesystem.getBigBlockSize();
// Now locate the data block for it
Iterator<Integer> it = _mini_stream.getBlockOffsetIterator();
Iterator<ByteBuffer> it = _mini_stream.getBlockIterator();
for (int i = 0; i < bigBlockNumber; i++) {
it.next();
}
try {
ByteBuffer dataBlock = _filesystem.getBlockAt(it.next());
assert(dataBlock != null);
ByteBuffer dataBlock = it.next();
assert(dataBlock != null);
// Position ourselves, and take a slice
dataBlock.position(
dataBlock.position() + bigBlockOffset
);
ByteBuffer miniBuffer = dataBlock.slice();
miniBuffer.limit(POIFSConstants.SMALL_BLOCK_SIZE);
return miniBuffer;
} catch (IOException e) {
throw new RuntimeException(e);
}
// Position ourselves, and take a slice
dataBlock.position(
dataBlock.position() + bigBlockOffset
);
ByteBuffer miniBuffer = dataBlock.slice();
miniBuffer.limit(POIFSConstants.SMALL_BLOCK_SIZE);
return miniBuffer;
}
/**