Baiqiang Zhao created HBASE-25861:
-------------------------------------
Summary: Correct the usage of Configuration#addDeprecation
Key: HBASE-25861
URL: https://issues.apache.org/jira/browse/HBASE-25861
Project: HBase
Issue Type: Bug
Reporter: Baiqiang Zhao
Assignee: Baiqiang Zhao
When I was solving HBASE-25745
([PR3139|https://github.com/apache/hbase/pull/3139]), I found that our use of
Configuration#addDeprecation API was wrong.
At present, we will call Configuration#addDeprecation in the static block for
the deprecated configuration. But after testing, it is found that this does not
complete backward compatibility. When user upgrades HBase and does not change
the deprecated configuration to the new configuration, he will find that the
deprecated configuration does not effect, which may not be consistent with
expectations. The specific test results can be seen in the PR above, and we can
found the calling order of Configuration#addDeprecation is very important.
Configuration#addDeprecation is a Hadoop API, looking through the Hadoop source
code, we will find that before creating the Configuration object, the
addDeprecatedKeys() method will be called first:
[https://github.com/apache/hadoop/blob/b93e448f9aa66689f1ce5059f6cdce8add130457/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/HdfsConfiguration.java#L34]
.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)