[ https://issues.apache.org/jira/browse/HBASE-28452?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ConfX updated HBASE-28452: -------------------------- Description: When `hbase.client.default.rpc.codec` is set to `org.apache.hadoop.hbase.regionserver.wal.SecureWALCellCodec` the method `createRpcClientRTEDuringConnectionSetup` gives a NoSuchMethodException for the provided default codec value. Since there was an exception, the code inside try block is not executed which contained the below code line {code:java} try (AbstractRpcClient<?> client = createRpcClientRTEDuringConnectionSetup(clientConf)) { rpcServer.start(); . . . } {code} When finally block is executed which contains {code:java} finally { rpcServer.stop(); } {code} The method `rpcServer.stop()` eventually makes call to `executor.shutdown()`. A null pointer exception is returned as `rpcServer.scheduler.executor` was never instantiated, which happens inside `rpcServer.start()` {code:java} java.lang.NullPointerException at org.apache.hadoop.hbase.ipc.FifoRpcScheduler.stop(FifoRpcScheduler.java:71) at org.apache.hadoop.hbase.ipc.SimpleRpcServer.stop(SimpleRpcServer.java:441) at org.apache.hadoop.hbase.ipc.AbstractTestIPC.testRTEDuringConnectionSetup(AbstractTestIPC.java:194){code} was: When `hbase.client.default.rpc.codec` is set to `org.apache.hadoop.hbase.regionserver.wal.SecureWALCellCodec` the method `createRpcClientRTEDuringConnectionSetup` gives a NoSuchMethodException for the provided default codec value. Since there was an exception, the code inside try block is not executed which contained the below code line ``` java try (AbstractRpcClient<?> client = createRpcClientRTEDuringConnectionSetup(clientConf)) { rpcServer.start(); . . . } ``` When finally block is executed which contains ```java finally { rpcServer.stop(); } ``` The method `rpcServer.stop()` eventually makes call to `executor.shutdown()`. A null pointer exception is returned as `rpcServer.scheduler.executor` was never instantiated, which happens inside `rpcServer.start()` ``` java.lang.NullPointerException at org.apache.hadoop.hbase.ipc.FifoRpcScheduler.stop(FifoRpcScheduler.java:71) at org.apache.hadoop.hbase.ipc.SimpleRpcServer.stop(SimpleRpcServer.java:441) at org.apache.hadoop.hbase.ipc.AbstractTestIPC.testRTEDuringConnectionSetup(AbstractTestIPC.java:194) . . . ``` > Missing null check of rpcServer.scheduler.executor causes NPE with invalid > value of hbase.client.default.rpc.codec > ------------------------------------------------------------------------------------------------------------------ > > Key: HBASE-28452 > URL: https://issues.apache.org/jira/browse/HBASE-28452 > Project: HBase > Issue Type: Bug > Reporter: ConfX > Priority: Major > > When `hbase.client.default.rpc.codec` is set to > `org.apache.hadoop.hbase.regionserver.wal.SecureWALCellCodec` the method > `createRpcClientRTEDuringConnectionSetup` gives a NoSuchMethodException for > the provided default codec value. > > Since there was an exception, the code inside try block is not executed which > contained the below code line > {code:java} > try (AbstractRpcClient<?> client = > createRpcClientRTEDuringConnectionSetup(clientConf)) > { rpcServer.start(); . . . } > {code} > > When finally block is executed which contains > {code:java} > finally > { rpcServer.stop(); } > {code} > > The method `rpcServer.stop()` eventually makes call to `executor.shutdown()`. > A null pointer exception is returned as `rpcServer.scheduler.executor` was > never instantiated, which happens inside `rpcServer.start()` > > {code:java} > java.lang.NullPointerException > at org.apache.hadoop.hbase.ipc.FifoRpcScheduler.stop(FifoRpcScheduler.java:71) > at org.apache.hadoop.hbase.ipc.SimpleRpcServer.stop(SimpleRpcServer.java:441) > at > org.apache.hadoop.hbase.ipc.AbstractTestIPC.testRTEDuringConnectionSetup(AbstractTestIPC.java:194){code} > -- This message was sent by Atlassian Jira (v8.20.10#820010)