[ https://issues.apache.org/jira/browse/DRILL-5910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16223111#comment-16223111 ]
ASF GitHub Bot commented on DRILL-5910: --------------------------------------- Github user sohami commented on a diff in the pull request: https://github.com/apache/drill/pull/1013#discussion_r147541442 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/rpc/security/ClientAuthenticatorProvider.java --- @@ -57,17 +57,17 @@ private ClientAuthenticatorProvider() { // then, custom factories if (customFactories != null) { - try { - final String[] factories = customFactories.split(","); - for (final String factory : factories) { + final String[] factories = customFactories.split(","); + for (final String factory : factories) { + try { final Class<?> clazz = Class.forName(factory); if (AuthenticatorFactory.class.isAssignableFrom(clazz)) { final AuthenticatorFactory instance = (AuthenticatorFactory) clazz.newInstance(); authFactories.put(instance.getSimpleName(), instance); } + } catch (final ClassNotFoundException | IllegalAccessException | InstantiationException e) { + throw new DrillRuntimeException(String.format("Failed to create auth factory '%s'", factory), e); --- End diff -- @vrozov +1 - It makes sense to log the error and continue rather than failing because a custom factory cannot be instantiated. This is because client environment might be set to configure these custom factories but then for authentication it might be using other mechanism like Plain/Kerberos in which case connection should succeed. > ClassNotFoundException message enhancement > ------------------------------------------- > > Key: DRILL-5910 > URL: https://issues.apache.org/jira/browse/DRILL-5910 > Project: Apache Drill > Issue Type: Improvement > Affects Versions: 1.11.0 > Reporter: Volodymyr Tkach > Assignee: Volodymyr Tkach > Priority: Minor > Labels: ready-to-commit > Fix For: 1.12.0 > > > We need to add factory name in exception message when ClassNotFoundException > is caught and DrillRuntimeException is than re-thrown in > ClientAuthenticatorProvider constructor. > Steps to repoduce: > 1) Configure plain authentication > 2) Add > -Ddrill.customAuthFactories=org.apache.drill.exec.rpc.security.maprsasl.MapRSaslFactory > to SQLLINE_JAVA_OPTS or another class that is not present in classpath. > 3) Run sqlline and connect to drillbit -- This message was sent by Atlassian JIRA (v6.4.14#64029)