guluo created HBASE-29709:
-----------------------------

             Summary: NPE may occur when compacting table via RawAsyncHBaseAdmin
                 Key: HBASE-29709
                 URL: https://issues.apache.org/jira/browse/HBASE-29709
             Project: HBase
          Issue Type: Bug
          Components: asyncclient
            Reporter: guluo


NPE may occur when calling RawAsyncHBaseAdmin.compact(), as follows:

 
{code:java}
// RawAsyncHBaseAdmin.compact()
if (locations == null || locations.isEmpty()) {
    future.completeExceptionally(new TableNotFoundException(tableName));
}
CompletableFuture<?>[] compactFutures =
    locations.stream().filter(l -> l.getRegion() != null)
        .filter(l -> !l.getRegion().isOffline()).filter(l -> l.getServerName() 
!= null)
        .map(l -> compact(l.getServerName(), l.getRegion(), major, 
columnFamily))
        .toArray(CompletableFuture<?>[]::new); {code}
The issue is that after completing the future exceptionally when locations is 
null or empty, there is no return statement. 

This allows the execution to continue, which may lead to NPE issue when 
locations.stream() is called.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to