[
https://issues.apache.org/jira/browse/HIVE-6451?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ding Yuan updated HIVE-6451:
----------------------------
Attachment: HIVE-6451.patch
Thanks[~ ashutoshc] for the review. Attaching the same patch renamed according
to convention.
> Exception handling improvements
> -------------------------------
>
> Key: HIVE-6451
> URL: https://issues.apache.org/jira/browse/HIVE-6451
> Project: Hive
> Issue Type: Improvement
> Components: HCatalog, JDBC
> Affects Versions: 0.12.0
> Reporter: Ding Yuan
> Priority: Trivial
> Attachments: HIVE-6451.patch, hive-6451.patch
>
>
> I am reporting a few cases where the exception handling could be improved.
> Attaching a proposed patch against trunk for review. Below are some
> explanations for two of the cases. Other cases are trivial by looking at the
> patch.
> =========================
> Case 1:
> The code below might throw many kinds of exceptions. While some
> reflection-related
> exceptions such as ClassNotFoundException are expected to occur, some others,
> such
> as InvocationTargetException, should be silently swallowed. A good practice is
> to differentiate different exceptions.
> Line: 1463, File: "org/apache/hive/beeline/BeeLine.java"
> {noformat}
> 1450: try {
> 1451: Class c = Class.forName(className, false,
> 1452: Thread.currentThread().getContextClassLoader());
> 1453: if (!Driver.class.isAssignableFrom(c)) {
> 1454: continue;
> 1455: }
> 1456:
> 1457: if (Modifier.isAbstract(c.getModifiers())) {
> 1458: continue;
> 1459: }
> 1460:
> 1461: // now instantiate and initialize it
> 1462: driverClasses.add(c.newInstance());
> 1463: } catch (Throwable t) {
> 1464: }
> {noformat}
> A similar snippet is at line 1522.
> =========================
> =========================
> Case 2:
> getField(String name) will not thrown IOException, but is declared with
> throws IOException.
> hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/JobState.java
> (revision 1568587)
> {noformat}
> - public String getField(String name)
> - throws IOException {
> + public String getField(String name) {
> return storage.getField(type, id, name);
> }
> {noformat}
> =========================
--
This message was sent by Atlassian JIRA
(v6.2#6252)