Marton Greber created KUDU-3593: ----------------------------------- Summary: ScanTokenBuilder does not throw exception when using snapshotTimestampRaw without setting readMode Key: KUDU-3593 URL: https://issues.apache.org/jira/browse/KUDU-3593 Project: Kudu Issue Type: Bug Components: java Reporter: Marton Greber
The below code throws an exception saying that readMode has to be specified. {code:java} KuduScanner scanner = client.newScannerBuilder(table) .snapshotTimestampRaw(startHT) // .readMode(AsyncKuduScanner.ReadMode.READ_AT_SNAPSHOT) .build(); {code} Doing the same with newScanTokenBuilder does not throw an error: {code:java} List<KuduScanToken> tokens = client.newScanTokenBuilder(table) .snapshotTimestampRaw(startHT) // .readMode(AsyncKuduScanner.ReadMode.READ_AT_SNAPSHOT) .build(); {code} I would expect that the ScanTokenBuilder throws the same error as ScannerBuilder. Full repro test: {code:java} @Test(timeout = 100000) public void testScanTokenBuilderReadModeException() throws Exception { // TEST SETUP Schema tableSchema = new Schema(Collections.singletonList( new ColumnSchema.ColumnSchemaBuilder("key", Type.INT32).key(true).build() )); CreateTableOptions tableOptions = new CreateTableOptions() .setRangePartitionColumns(Collections.singletonList("key")) .setNumReplicas(3); KuduTable table = client.createTable(tableName, tableSchema, tableOptions); long fromMicros = TimeUnit.MILLISECONDS.toMicros(System.currentTimeMillis()); long startHT = HybridTimeUtil.physicalAndLogicalToHTTimestamp(fromMicros, 0) + 1; // ISSUE REPRO // Correct: ScannerBuilder throws error. Exception exception1 = assertThrows(IllegalArgumentException.class, () -> { KuduScanner scanner = client.newScannerBuilder(table) .snapshotTimestampRaw(startHT) // .readMode(AsyncKuduScanner.ReadMode.READ_AT_SNAPSHOT) .build(); }); // Incorrect?: ScanTokenBuilder throws no error. Exception exception2 = assertThrows(IllegalArgumentException.class, () -> { List<KuduScanToken> tokens = client.newScanTokenBuilder(table) .snapshotTimestampRaw(startHT) // .readMode(AsyncKuduScanner.ReadMode.READ_AT_SNAPSHOT) .build(); }); } {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)