Hello, community I am creating an in-house library using the HBase client library and distributing it so that other users can use it. To prevent conflicts with the user library, we shaded the HBase package. (For example, org.apahce.hadoop.hbase... -> good.company.org.apahce.hadoop.hbase...)
However, there is one problem here. When an error occurs on the HBase server, it passes the class name to the client. The client, which receives the error class name from the server, attempts to create an error object with that class name. However, because the error class is shaded, the client cannot find the appropriate error class received from the server. There is a problem where the client does not find the appropriate error class and mistakenly determines it to be a DoNotRetryIOException, even though it should be retried. To solve this problem, I am considering forcing the shading package prefix when creating an object from the class received from the server in the HBase client. (For example, if the error class name received from the server is org.apache.hadoop.hbase.regionserver.RegionServerStoppedException, I am considering making it also find good.company.org.apache.hadoop.hbase.regionserver.RegionServerStoppedException.) Is there a nicer way to do this than the method mentioned above? I wonder if there are any plans to add support features for shade users in HBase. (For example, a feature that allows the client to find the shaded class name when creating an object from the class name received from the server.) Kind Regards