From 153044013feb985c5fd708a001488e5a3a3f6dda Mon Sep 17 00:00:00 2001 From: Julien Le Dem Date: Tue, 11 Apr 2017 09:40:09 -0700 Subject: [PATCH] ARROW-1109: [JAVA] transferOwnership fails when readerIndex is not 0 --- .../main/java/io/netty/buffer/ArrowBuf.java | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/java/memory/src/main/java/io/netty/buffer/ArrowBuf.java b/java/memory/src/main/java/io/netty/buffer/ArrowBuf.java index e777b5a6a5d..a89b243fd63 100644 --- a/java/memory/src/main/java/io/netty/buffer/ArrowBuf.java +++ b/java/memory/src/main/java/io/netty/buffer/ArrowBuf.java @@ -18,19 +18,6 @@ package io.netty.buffer; -import com.google.common.base.Preconditions; - -import io.netty.util.internal.PlatformDependent; - -import org.apache.arrow.memory.AllocationManager.BufferLedger; -import org.apache.arrow.memory.ArrowByteBufAllocator; -import org.apache.arrow.memory.BaseAllocator; -import org.apache.arrow.memory.BaseAllocator.Verbosity; -import org.apache.arrow.memory.BoundsChecking; -import org.apache.arrow.memory.BufferAllocator; -import org.apache.arrow.memory.BufferManager; -import org.apache.arrow.memory.util.HistoricalLog; - import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -42,6 +29,19 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; +import org.apache.arrow.memory.AllocationManager.BufferLedger; +import org.apache.arrow.memory.ArrowByteBufAllocator; +import org.apache.arrow.memory.BaseAllocator; +import org.apache.arrow.memory.BaseAllocator.Verbosity; +import org.apache.arrow.memory.BoundsChecking; +import org.apache.arrow.memory.BufferAllocator; +import org.apache.arrow.memory.BufferManager; +import org.apache.arrow.memory.util.HistoricalLog; + +import com.google.common.base.Preconditions; + +import io.netty.util.internal.PlatformDependent; + public final class ArrowBuf extends AbstractByteBuf implements AutoCloseable { private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ArrowBuf.class); @@ -245,8 +245,7 @@ public TransferResult transferOwnership(BufferAllocator target) { final BufferLedger otherLedger = this.ledger.getLedgerForAllocator(target); final ArrowBuf newBuf = otherLedger.newArrowBuf(offset, length, null); - newBuf.readerIndex(this.readerIndex); - newBuf.writerIndex(this.writerIndex); + newBuf.setIndex(this.readerIndex, this.writerIndex); final boolean allocationFit = this.ledger.transferBalance(otherLedger); return new TransferResult(allocationFit, newBuf); }