From 03e97ff030b3cc4112fb1859deb9c2c9a3f0419c Mon Sep 17 00:00:00 2001 From: Micah Kornfield Date: Mon, 1 Feb 2021 03:44:00 +0000 Subject: [PATCH 1/2] ARROW-11066: Revert "ARROW-11066: [Java][FlightRPC] fix zero-copy optimization" This reverts commit c3e307355a16287893dcb78353807ef5222ac30c. This breaks causes JVM crash on the mac. --- .../org/apache/arrow/flight/grpc/AddWritableBuffer.java | 6 +++++- .../org/apache/arrow/flight/perf/PerformanceTestServer.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) 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; From bfcdb115571786b2d523792f7df63f8f165cb987 Mon Sep 17 00:00:00 2001 From: emkornfield Date: Fri, 12 Feb 2021 18:03:19 -0800 Subject: [PATCH 2/2] Update array_base.h --- cpp/src/arrow/array/array_base.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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()); }