lwhite1 commented on code in PR #13249:
URL: https://github.com/apache/arrow/pull/13249#discussion_r886909925


##########
java/c/src/main/java/org/apache/arrow/c/ArrayImporter.java:
##########
@@ -143,7 +143,9 @@ private List<ArrowBuf> importBuffers(ArrowArray.Snapshot 
snapshot) {
       if (bufferPtr != NULL) {
         // TODO(roee88): an API for getting the size for each buffer is not yet
         // available
-        buffer = new ArrowBuf(referenceManager, null, Integer.MAX_VALUE, 
bufferPtr);
+        int length = Integer.MAX_VALUE;

Review Comment:
   The length field in ArrowBuf is referred to in the ArrowBuf code as 
_capacity_, which seems to me to be clearer. It might be worthwhile to change 
the field name and the references (e.g. the argument name in the constructor), 
as well as the usage here. 



##########
java/c/src/main/java/org/apache/arrow/c/ArrayImporter.java:
##########
@@ -143,7 +143,9 @@ private List<ArrowBuf> importBuffers(ArrowArray.Snapshot 
snapshot) {
       if (bufferPtr != NULL) {
         // TODO(roee88): an API for getting the size for each buffer is not yet
         // available

Review Comment:
   This TODO should really be a JIRA ticket for the change. The rest of the 
comment (minus "TODO") could be left to explain why you have to set the 
writerIndex explicitly in the following code.



##########
java/c/src/test/java/org/apache/arrow/c/RoundtripTest.java:
##########
@@ -678,6 +679,22 @@ public void testSchema() {
     }
   }
 
+  @Test
+  public void testImportedBufferAsNioBuffer() {
+    IntVector imported;
+    try (final IntVector vector = new IntVector("v", allocator)) {
+      setVector(vector, 1, 2, 3, null);
+      imported = (IntVector) vectorRoundtrip(vector);
+      ArrowBuf dataBuffer = imported.getDataBuffer();
+      ByteBuffer nioBuffer = dataBuffer.nioBuffer().asReadOnlyBuffer();
+      nioBuffer.order(ByteOrder.nativeOrder());
+      assertEquals(1, nioBuffer.getInt(0));
+      assertEquals(2, nioBuffer.getInt(1 << 2));
+      assertEquals(3, nioBuffer.getInt(2 << 2));
+    }
+    imported.close();

Review Comment:
   @pitrou I believe it is, as _imported_ is a new FieldVector created in 
vectorRoundTrip and not a reference to the _vector_ created in the 
try-with-resources. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to