[ https://issues.apache.org/jira/browse/SENTRY-1572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16286646#comment-16286646 ]
Hadoop QA commented on SENTRY-1572: ----------------------------------- Here are the results of testing the latest attachment https://issues.apache.org/jira/secure/attachment/12901547/SENTRY-1572.002.patch against master. {color:green}Overall:{color} +1 all checks pass {color:green}SUCCESS:{color} all tests passed Console output: https://builds.apache.org/job/PreCommit-SENTRY-Build/3573/console This message is automatically generated. > SentryMain() shouldn't dynamically load tool class > -------------------------------------------------- > > Key: SENTRY-1572 > URL: https://issues.apache.org/jira/browse/SENTRY-1572 > Project: Sentry > Issue Type: Improvement > Components: Sentry > Reporter: Alexander Kolbasov > Assignee: Xinran Tinney > Labels: bite-sized, newbie > Attachments: SENTRY-1572.001.patch, SENTRY-1572.002.patch > > > TheSentryMain class currently works by mapping the command name to a Java > class that is then dynamically loaded: > {code} > String commandName = commandLine.getOptionValue(COMMAND); > String commandClazz = COMMANDS.get(commandName); > Object command; > try { > command = Class.forName(commandClazz.trim()).newInstance(); > } catch (Exception e) { > String msg = "Could not create instance of " + commandClazz + " for > command " + commandName; > throw new IllegalStateException(msg, e); > } > if (!(command instanceof Command)) { > String msg = "Command " + command.getClass().getName() + " is not an > instance of " > + Command.class.getName(); > throw new IllegalStateException(msg); > } > ((Command)command).run(commandLine.getArgs()); > } > {code} > This ia too complicated and causes subtle problems at runtime. Instead it > should just create a new instance of appropriate class and call it directly. -- This message was sent by Atlassian JIRA (v6.4.14#64029)