From 9a324bd4d07e4e00ac559f245315993155619989 Mon Sep 17 00:00:00 2001 From: Wei-Chiu Chuang Date: Tue, 22 Jun 2021 18:15:02 -0700 Subject: [PATCH] Remove the reflection and call Configuration.getPassword() directly. (#3408) Reviewed-by: Viraj Jasani Reviewed-by: Wellington Chevreuil Reviewed-by: litao --- .../hadoop/hbase/HBaseConfiguration.java | 37 ++++--------------- 1 file changed, 8 insertions(+), 29 deletions(-) diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseConfiguration.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseConfiguration.java index 0bc8a1400f1..596c52b0093 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseConfiguration.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseConfiguration.java @@ -200,35 +200,14 @@ public class HBaseConfiguration extends Configuration { */ public static String getPassword(Configuration conf, String alias, String defPass) throws IOException { - String passwd = null; - try { - Method m = Configuration.class.getMethod("getPassword", String.class); - char[] p = (char[]) m.invoke(conf, alias); - if (p != null) { - LOG.debug(String.format("Config option \"%s\" was found through" + - " the Configuration getPassword method.", alias)); - passwd = new String(p); - } else { - LOG.debug(String.format( - "Config option \"%s\" was not found. Using provided default value", - alias)); - passwd = defPass; - } - } catch (NoSuchMethodException e) { - // this is a version of Hadoop where the credential - //provider API doesn't exist yet - LOG.debug(String.format( - "Credential.getPassword method is not available." + - " Falling back to configuration.")); - passwd = conf.get(alias, defPass); - } catch (SecurityException e) { - throw new IOException(e.getMessage(), e); - } catch (IllegalAccessException e) { - throw new IOException(e.getMessage(), e); - } catch (IllegalArgumentException e) { - throw new IOException(e.getMessage(), e); - } catch (InvocationTargetException e) { - throw new IOException(e.getMessage(), e); + String passwd; + char[] p = conf.getPassword(alias); + if (p != null) { + LOG.debug("Config option {} was found through the Configuration getPassword method.", alias); + passwd = new String(p); + } else { + LOG.debug("Config option {} was not found. Using provided default value", alias); + passwd = defPass; } return passwd; }