[ https://issues.apache.org/jira/browse/HIVE-9981?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14364049#comment-14364049 ]
Thejas M Nair commented on HIVE-9981: ------------------------------------- [~spena] It does not look like this will avoid the exceptions in every call to this function with pre 2.6.0 hadoop versions. getEncryptionZoneForPathMethod will always be null. Maybe use a Boolean object isHdfsEncryptionSupported instead ? (if null initialize it to true/false). > Avoid throwing many exceptions when attempting to create new hdfs encryption > shim > --------------------------------------------------------------------------------- > > Key: HIVE-9981 > URL: https://issues.apache.org/jira/browse/HIVE-9981 > Project: Hive > Issue Type: Improvement > Components: Encryption > Reporter: Sergio Peña > Assignee: Sergio Peña > Attachments: HIVE-9981.1.patch > > > Hadoop23Shims.createHdfsEncryptionShim() is throwing an exception for verions > lower than 2.6.0 everytime a query is executed. > Exceptions are expensive, so rather than throwing them every time, we can use > this design pattern followed for some other functions in Hadoop23Shims - > {code} > protected static final Method accessMethod; > protected static final Method getPasswordMethod; > static { > Method m = null; > try { > m = FileSystem.class.getMethod("access", Path.class, FsAction.class); > } catch (NoSuchMethodException err) { > // This version of Hadoop does not support FileSystem.access(). > } > accessMethod = m; > try { > m = Configuration.class.getMethod("getPassword", String.class); > } catch (NoSuchMethodException err) { > // This version of Hadoop does not support getPassword(), just retrieve > password from conf. > m = null; > } > getPasswordMethod = m; > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)