Skip to content

Commit 6eac5cf

Browse files
committed
Use non-empty TsBlock helpers
1 parent 59e6783 commit 6eac5cf

12 files changed

Lines changed: 74 additions & 77 deletions

iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext;
7070
import static org.apache.iotdb.db.queryengine.execution.operator.AggregationOperatorTest.TEST_TIME_SLICE;
7171
import static org.apache.iotdb.db.queryengine.execution.operator.AggregationUtil.initTimeRangeIterator;
72-
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.nextNonNull;
72+
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.nextNonEmpty;
7373
import static org.junit.Assert.assertEquals;
7474
import static org.junit.Assert.assertTrue;
7575

@@ -123,7 +123,7 @@ public void testAggregationWithoutTimeFilter() throws Exception {
123123
initAlignedSeriesAggregationScanOperator(aggregators, null, true, null);
124124
int count = 0;
125125
while (seriesAggregationScanOperator.hasNext()) {
126-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
126+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
127127
for (int i = 0; i < measurementSchemas.size(); i++) {
128128
assertEquals(500, resultTsBlock.getColumn(i).getLong(0));
129129
}
@@ -154,7 +154,7 @@ public void testAggregationWithoutTimeFilterOrderByTimeDesc() throws Exception {
154154
initAlignedSeriesAggregationScanOperator(aggregators, null, false, null);
155155
int count = 0;
156156
while (seriesAggregationScanOperator.hasNext()) {
157-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
157+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
158158
for (int i = 0; i < measurementSchemas.size(); i++) {
159159
assertEquals(500, resultTsBlock.getColumn(i).getLong(0));
160160
}
@@ -190,7 +190,7 @@ public void testMultiAggregationFuncWithoutTimeFilter1() throws Exception {
190190
initAlignedSeriesAggregationScanOperator(aggregators, null, true, null);
191191
int count = 0;
192192
while (seriesAggregationScanOperator.hasNext()) {
193-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
193+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
194194
assertEquals(500, resultTsBlock.getColumn(0).getLong(0));
195195
assertEquals(6524750.0, resultTsBlock.getColumn(1).getDouble(0), 0.0001);
196196
count++;
@@ -228,7 +228,7 @@ public void testMultiAggregationFuncWithoutTimeFilter2() throws Exception {
228228
initAlignedSeriesAggregationScanOperator(aggregators, null, true, null);
229229
int count = 0;
230230
while (seriesAggregationScanOperator.hasNext()) {
231-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
231+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
232232
assertTrue(resultTsBlock.getColumn(0).getBoolean(0));
233233
assertEquals(10499, resultTsBlock.getColumn(1).getInt(0));
234234
assertEquals(20199, resultTsBlock.getColumn(2).getLong(0));
@@ -270,7 +270,7 @@ public void testMultiAggregationFuncWithoutTimeFilterOrderByTimeDesc() throws Ex
270270
initAlignedSeriesAggregationScanOperator(aggregators, null, false, null);
271271
int count = 0;
272272
while (seriesAggregationScanOperator.hasNext()) {
273-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
273+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
274274
assertTrue(resultTsBlock.getColumn(0).getBoolean(0));
275275
assertEquals(10499, resultTsBlock.getColumn(1).getInt(0));
276276
assertEquals(20199, resultTsBlock.getColumn(2).getLong(0));
@@ -305,7 +305,7 @@ public void testAggregationWithTimeFilter1() throws Exception {
305305
initAlignedSeriesAggregationScanOperator(aggregators, timeFilter, true, null);
306306
int count = 0;
307307
while (seriesAggregationScanOperator.hasNext()) {
308-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
308+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
309309
for (int i = 0; i < measurementSchemas.size(); i++) {
310310
assertEquals(resultTsBlock.getColumn(i).getLong(0), 380);
311311
}
@@ -338,7 +338,7 @@ public void testAggregationWithTimeFilter2() throws Exception {
338338
initAlignedSeriesAggregationScanOperator(aggregators, timeFilter, true, null);
339339
int count = 0;
340340
while (seriesAggregationScanOperator.hasNext()) {
341-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
341+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
342342
for (int i = 0; i < measurementSchemas.size(); i++) {
343343
assertEquals(resultTsBlock.getColumn(i).getLong(0), 380);
344344
}
@@ -371,7 +371,7 @@ public void testAggregationWithTimeFilter3() throws Exception {
371371
initAlignedSeriesAggregationScanOperator(aggregators, timeFilter, true, null);
372372
int count = 0;
373373
while (seriesAggregationScanOperator.hasNext()) {
374-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
374+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
375375
for (int i = 0; i < measurementSchemas.size(); i++) {
376376
assertEquals(resultTsBlock.getColumn(i).getLong(0), 300);
377377
}
@@ -411,7 +411,7 @@ public void testMultiAggregationWithTimeFilter() throws Exception {
411411
initAlignedSeriesAggregationScanOperator(aggregators, timeFilter, true, null);
412412
int count = 0;
413413
while (seriesAggregationScanOperator.hasNext()) {
414-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
414+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
415415
assertTrue(resultTsBlock.getColumn(0).getBoolean(0));
416416
assertEquals(399, resultTsBlock.getColumn(1).getInt(0));
417417
assertEquals(20199, resultTsBlock.getColumn(2).getLong(0));
@@ -449,7 +449,7 @@ public void testGroupByWithoutGlobalTimeFilter() throws Exception {
449449
initAlignedSeriesAggregationScanOperator(aggregators, null, true, groupByTimeParameter);
450450
int count = 0;
451451
while (seriesAggregationScanOperator.hasNext()) {
452-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
452+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
453453
int positionCount = resultTsBlock.getPositionCount();
454454
for (int pos = 0; pos < positionCount; pos++) {
455455
assertEquals(100 * count, resultTsBlock.getTimeColumn().getLong(pos));
@@ -490,7 +490,7 @@ public void testGroupByWithGlobalTimeFilter() throws Exception {
490490
aggregators, timeFilter, true, groupByTimeParameter);
491491
int count = 0;
492492
while (seriesAggregationScanOperator.hasNext()) {
493-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
493+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
494494
int positionCount = resultTsBlock.getPositionCount();
495495
for (int pos = 0; pos < positionCount; pos++) {
496496
assertEquals(100 * count, resultTsBlock.getTimeColumn().getLong(pos));
@@ -535,7 +535,7 @@ public void testGroupByWithMultiFunction() throws Exception {
535535
initAlignedSeriesAggregationScanOperator(aggregators, null, true, groupByTimeParameter);
536536
int count = 0;
537537
while (seriesAggregationScanOperator.hasNext()) {
538-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
538+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
539539
int positionCount = resultTsBlock.getPositionCount();
540540
for (int pos = 0; pos < positionCount; pos++) {
541541
assertEquals(100 * count, resultTsBlock.getTimeColumn().getLong(pos));
@@ -581,7 +581,7 @@ public void testGroupByWithMultiFunctionOrderByTimeDesc() throws Exception {
581581
initAlignedSeriesAggregationScanOperator(aggregators, null, false, groupByTimeParameter);
582582
int count = 0;
583583
while (seriesAggregationScanOperator.hasNext()) {
584-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
584+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
585585
int positionCount = resultTsBlock.getPositionCount();
586586
for (int pos = 0; pos < positionCount; pos++) {
587587
assertEquals(100 * (3 - count), resultTsBlock.getTimeColumn().getLong(pos));
@@ -617,7 +617,7 @@ public void testGroupBySlidingTimeWindow() throws Exception {
617617
initAlignedSeriesAggregationScanOperator(aggregators, null, true, groupByTimeParameter);
618618
int count = 0;
619619
while (seriesAggregationScanOperator.hasNext()) {
620-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
620+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
621621
int positionCount = resultTsBlock.getPositionCount();
622622
for (int pos = 0; pos < positionCount; pos++) {
623623
assertEquals(50 * count, resultTsBlock.getTimeColumn().getLong(pos));
@@ -650,7 +650,7 @@ public void testGroupBySlidingTimeWindow2() throws Exception {
650650
initAlignedSeriesAggregationScanOperator(aggregators, null, true, groupByTimeParameter);
651651
int count = 0;
652652
while (seriesAggregationScanOperator.hasNext()) {
653-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
653+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
654654
int positionCount = resultTsBlock.getPositionCount();
655655
for (int pos = 0; pos < positionCount; pos++) {
656656
assertEquals(timeColumn[count], resultTsBlock.getTimeColumn().getLong(pos));
@@ -694,7 +694,7 @@ public void testGroupBySlidingWindowWithMultiFunction() throws Exception {
694694
initAlignedSeriesAggregationScanOperator(aggregators, null, true, groupByTimeParameter);
695695
int count = 0;
696696
while (seriesAggregationScanOperator.hasNext()) {
697-
TsBlock resultTsBlock = nextNonNull(seriesAggregationScanOperator);
697+
TsBlock resultTsBlock = nextNonEmpty(seriesAggregationScanOperator);
698698
int positionCount = resultTsBlock.getPositionCount();
699699
for (int pos = 0; pos < positionCount; pos++) {
700700
assertEquals(timeColumn[count], resultTsBlock.getTimeColumn().getLong(pos));

iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewIntoOperatorTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272

7373
import static com.google.common.util.concurrent.Futures.immediateFuture;
7474
import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext;
75-
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.lastNonNull;
75+
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.lastNonEmpty;
7676
import static org.apache.iotdb.rpc.RpcUtils.SUCCESS_STATUS;
7777
import static org.junit.Assert.assertEquals;
7878
import static org.junit.Assert.assertNotNull;
@@ -259,7 +259,7 @@ public void testSingleDeviceSmallData() throws Exception {
259259
prepareDeviceData("device0", 2);
260260
operator = createAndInitOperatorForSingleDevices(2);
261261

262-
TsBlock result = lastNonNull(operator);
262+
TsBlock result = lastNonEmpty(operator);
263263
assertNotNull(result);
264264
assertEquals(2, result.getPositionCount());
265265

@@ -274,7 +274,7 @@ public void testSingleDeviceExceedsMaxTsBlockSize() throws Exception {
274274
prepareDeviceData("device0", 10);
275275
operator = createAndInitOperatorForSingleDevices(10);
276276

277-
TsBlock result = lastNonNull(operator);
277+
TsBlock result = lastNonEmpty(operator);
278278
assertNotNull(result);
279279
assertEquals(10, result.getPositionCount());
280280

@@ -290,7 +290,7 @@ public void testMultipleDeviceSmallData() throws Exception {
290290
prepareDeviceData("device1", 1);
291291
operator = createAndInitOperatorForMultipleDevices(2, 1);
292292

293-
TsBlock result = lastNonNull(operator);
293+
TsBlock result = lastNonEmpty(operator);
294294
assertNotNull(result);
295295
assertEquals(2, result.getPositionCount());
296296

iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/FillOperatorTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
import java.util.concurrent.ExecutorService;
4444

4545
import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext;
46-
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.nextNonNull;
46+
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.nextNonEmpty;
4747
import static org.junit.Assert.assertEquals;
4848
import static org.junit.Assert.assertTrue;
4949

@@ -211,7 +211,7 @@ public long ramBytesUsed() {
211211
}
212212
};
213213
while (fillOperator.hasNext()) {
214-
TsBlock block = nextNonNull(fillOperator);
214+
TsBlock block = nextNonEmpty(fillOperator);
215215
for (int i = 0; i < block.getPositionCount(); i++) {
216216
long expectedTime = i + 1 + count * 10000L;
217217
assertEquals(expectedTime, block.getTimeByIndex(i));
@@ -384,7 +384,7 @@ public long ramBytesUsed() {
384384
}
385385
};
386386
while (fillOperator.hasNext()) {
387-
TsBlock block = nextNonNull(fillOperator);
387+
TsBlock block = nextNonEmpty(fillOperator);
388388
for (int i = 0; i < block.getPositionCount(); i++) {
389389
long expectedTime = i + 1 + count * 10000L;
390390
assertEquals(expectedTime, block.getTimeByIndex(i));
@@ -561,7 +561,7 @@ public long ramBytesUsed() {
561561
}
562562
};
563563
while (fillOperator.hasNext()) {
564-
TsBlock block = nextNonNull(fillOperator);
564+
TsBlock block = nextNonEmpty(fillOperator);
565565
for (int i = 0; i < block.getPositionCount(); i++) {
566566
long expectedTime = i + 1 + count * 10000L;
567567
assertEquals(expectedTime, block.getTimeByIndex(i));

iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868

6969
import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext;
7070
import static org.apache.iotdb.db.queryengine.execution.operator.AggregationUtil.initTimeRangeIterator;
71-
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.nextNonNull;
71+
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.nextNonEmpty;
7272
import static org.junit.Assert.assertEquals;
7373
import static org.junit.Assert.fail;
7474

@@ -204,7 +204,7 @@ public void batchTest1() throws Exception {
204204
int count = 0;
205205
while (horizontallyConcatOperator.isBlocked().isDone()
206206
&& horizontallyConcatOperator.hasNext()) {
207-
TsBlock tsBlock = nextNonNull(horizontallyConcatOperator);
207+
TsBlock tsBlock = nextNonEmpty(horizontallyConcatOperator);
208208
assertEquals(6, tsBlock.getValueColumnCount());
209209
for (int i = 0; i < tsBlock.getPositionCount(); i++, count++) {
210210
assertEquals(count, tsBlock.getTimeByIndex(i));

iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeTreeSortOperatorTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
import java.util.concurrent.atomic.AtomicInteger;
9494

9595
import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext;
96-
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.nextNonNull;
96+
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.nextNonEmpty;
9797
import static org.junit.Assert.assertEquals;
9898
import static org.junit.Assert.assertTrue;
9999
import static org.junit.Assert.fail;
@@ -1795,7 +1795,7 @@ public void mergeSortTest() throws Exception {
17951795

17961796
int index = 0;
17971797
while (treeMergeSortOperator.isBlocked().isDone() && treeMergeSortOperator.hasNext()) {
1798-
TsBlock result = nextNonNull(treeMergeSortOperator);
1798+
TsBlock result = nextNonEmpty(treeMergeSortOperator);
17991799
for (int i = 0; i < result.getPositionCount(); i++) {
18001800
long time = result.getTimeByIndex(i);
18011801
assertEquals(time, ans[index++]);

iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OffsetOperatorTest.java

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@
6565
import java.util.concurrent.TimeUnit;
6666

6767
import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext;
68-
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.nextNonNull;
68+
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.nextNonEmpty;
69+
import static org.apache.iotdb.db.queryengine.execution.operator.OperatorTestUtils.nextNonEmptyOrNull;
6970
import static org.junit.Assert.assertEquals;
7071
import static org.junit.Assert.assertTrue;
7172
import static org.junit.Assert.fail;
@@ -169,7 +170,7 @@ public void batchTest1() throws Exception {
169170
new LimitOperator(driverContext.getOperatorContexts().get(4), 250, offsetOperator);
170171
int count = 100;
171172
while (limitOperator.isBlocked().isDone() && limitOperator.hasNext()) {
172-
TsBlock tsBlock = nextNonNull(limitOperator);
173+
TsBlock tsBlock = nextNonEmpty(limitOperator);
173174
assertEquals(2, tsBlock.getValueColumnCount());
174175
assertTrue(tsBlock.getColumn(0) instanceof IntColumn);
175176
assertTrue(tsBlock.getColumn(1) instanceof IntColumn);
@@ -277,7 +278,7 @@ public void batchTest2() throws Exception {
277278

278279
int count = 0;
279280
while (offsetOperator.isBlocked().isDone() && offsetOperator.hasNext()) {
280-
TsBlock tsBlock = nextNonNull(offsetOperator);
281+
TsBlock tsBlock = nextNonEmpty(offsetOperator);
281282
assertEquals(2, tsBlock.getValueColumnCount());
282283
assertTrue(tsBlock.getColumn(0) instanceof IntColumn);
283284
assertTrue(tsBlock.getColumn(1) instanceof IntColumn);
@@ -383,16 +384,10 @@ public void batchTest3() throws Exception {
383384
new OffsetOperator(driverContext.getOperatorContexts().get(3), 500, timeJoinOperator);
384385

385386
while (offsetOperator.isBlocked().isDone() && offsetOperator.hasNext()) {
386-
TsBlock tsBlock = offsetOperator.next();
387+
TsBlock tsBlock = nextNonEmptyOrNull(offsetOperator);
387388
if (tsBlock == null) {
388389
continue;
389390
}
390-
assertEquals(2, tsBlock.getValueColumnCount());
391-
assertTrue(tsBlock.getColumn(0) instanceof IntColumn);
392-
assertTrue(tsBlock.getColumn(1) instanceof IntColumn);
393-
if (tsBlock.getPositionCount() == 0) {
394-
continue;
395-
}
396391
fail("Expected no data from offset operator");
397392
}
398393
} catch (IllegalPathException e) {
@@ -481,16 +476,10 @@ public void batchTest4() throws Exception {
481476
driverContext.getOperatorContexts().get(3), 98_784_247_808L, timeJoinOperator);
482477

483478
while (offsetOperator.isBlocked().isDone() && offsetOperator.hasNext()) {
484-
TsBlock tsBlock = offsetOperator.next();
479+
TsBlock tsBlock = nextNonEmptyOrNull(offsetOperator);
485480
if (tsBlock == null) {
486481
continue;
487482
}
488-
assertEquals(2, tsBlock.getValueColumnCount());
489-
assertTrue(tsBlock.getColumn(0) instanceof IntColumn);
490-
assertTrue(tsBlock.getColumn(1) instanceof IntColumn);
491-
if (tsBlock.getPositionCount() == 0) {
492-
continue;
493-
}
494483
fail("Expected no data from offset operator");
495484
}
496485
} catch (IllegalPathException e) {

iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorTestUtils.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,25 @@ private OperatorTestUtils() {
2828
// Utility class.
2929
}
3030

31-
public static TsBlock nextNonNull(Operator operator) throws Exception {
31+
public static TsBlock nextNonEmpty(Operator operator) throws Exception {
32+
TsBlock result = nextNonEmptyOrNull(operator);
33+
if (result != null) {
34+
return result;
35+
}
36+
throw new AssertionError("Expected a non-empty TsBlock from operator");
37+
}
38+
39+
public static TsBlock nextNonEmptyOrNull(Operator operator) throws Exception {
3240
while (operator.hasNext()) {
3341
TsBlock result = operator.next();
3442
if (!isNullOrEmpty(result)) {
3543
return result;
3644
}
3745
}
38-
throw new AssertionError("Expected a non-empty TsBlock from operator");
46+
return null;
3947
}
4048

41-
public static TsBlock lastNonNull(Operator operator) throws Exception {
49+
public static TsBlock lastNonEmpty(Operator operator) throws Exception {
4250
TsBlock result = null;
4351
while (operator.isBlocked().isDone() && operator.hasNext()) {
4452
TsBlock nextResult = operator.next();
@@ -49,7 +57,7 @@ public static TsBlock lastNonNull(Operator operator) throws Exception {
4957
return result;
5058
}
5159

52-
public static boolean isNullOrEmpty(TsBlock tsBlock) {
60+
private static boolean isNullOrEmpty(TsBlock tsBlock) {
5361
return tsBlock == null || tsBlock.getPositionCount() == 0;
5462
}
5563
}

0 commit comments

Comments
 (0)