diff --git a/cpp/src/arrow/array/array_base.h b/cpp/src/arrow/array/array_base.h index 9bcd1621840ef..36aa335cbbfd3 100644 --- a/cpp/src/arrow/array/array_base.h +++ b/cpp/src/arrow/array/array_base.h @@ -160,7 +160,7 @@ class ARROW_EXPORT Array { /// Input-checking variant of Array::Slice Result> SliceSafe(int64_t offset) const; - std::shared_ptr data() const { return data_; } + const std::shared_ptr& data() const { return data_; } int num_fields() const { return static_cast(data_->child_data.size()); } diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/AddWritableBuffer.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/AddWritableBuffer.java index d607c55414403..07b19c2738004 100644 --- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/AddWritableBuffer.java +++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/AddWritableBuffer.java @@ -17,6 +17,7 @@ package org.apache.arrow.flight.grpc; +import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Constructor; import java.lang.reflect.Field; @@ -87,8 +88,11 @@ public class AddWritableBuffer { * @param buf The buffer to add. * @param stream The Candidate OutputStream to add to. * @return True if added. False if not possible. + * @throws IOException on error */ - public static boolean add(ByteBuf buf, OutputStream stream) { + public static boolean add(ByteBuf buf, OutputStream stream) throws IOException { + buf.readBytes(stream, buf.readableBytes()); + if (bufChainOut == null) { return false; } diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/perf/PerformanceTestServer.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/perf/PerformanceTestServer.java index a797e557a1d94..4200bbec5becb 100644 --- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/perf/PerformanceTestServer.java +++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/perf/PerformanceTestServer.java @@ -68,7 +68,7 @@ public void register(FlightProducer.ServerStreamListener listener) { @Override public WaitResult waitForListener(long timeout) { - while (!listener.isReady() && !listener.isCancelled()) { + while (!listener.isReady()) { // busy wait } return WaitResult.READY;