Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.4.1
-
None
Description
Here's the test that fails:
public class TestBufferOwnershipTransfer { //... private static class Pointer<T> { T value; } private static CallBack newTriggerCallback(final Pointer<Boolean> trigger) { trigger.value = false; return new CallBack() { @Override public void doWork() { trigger.value = true; } }; } @Test public void emptyListTransferShouldNotTriggerSchemaChange() { final BufferAllocator allocator = new RootAllocator(Integer.MAX_VALUE); final Pointer<Boolean> trigger1 = new Pointer<>(); final Pointer<Boolean> trigger2 = new Pointer<>(); final ListVector v1 = new ListVector("v1", allocator, FieldType.nullable(ArrowType.Null.INSTANCE), newTriggerCallback(trigger1)); final ListVector v2 = new ListVector("v2", allocator, FieldType.nullable(ArrowType.Null.INSTANCE), newTriggerCallback(trigger2)); v1.makeTransferPair(v2).transfer(); assertFalse(trigger1.value); assertFalse(trigger2.value); // fails } }