[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-1525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13951652#comment-13951652
 ] 

Michi Mutsuzaki commented on ZOOKEEPER-1525:
--------------------------------------------

Hi Warren,

Sorry for super-slow response. I have 2 comments:

1. Could you fix these warnings?

{noformat}
compile:
    [javac] Compiling 3 source files to 
/home/michi/svndev/zookeeper/trunk/build/classes
    [javac] warning: [options] bootstrap class path not set in conjunction with 
-source 1.5
    [javac] 
/home/michi/svndev/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/auth/ProviderRegistry.java:57:
 warning: [cast] redundant cast to AuthenticationProvider
    [javac]                             ap = 
(AuthenticationProvider)constructor.newInstance(zks);
    [javac]                                  ^
    [javac] 
/home/michi/svndev/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/auth/ProviderRegistry.java:60:
 warning: [cast] redundant cast to AuthenticationProvider
    [javac]                             ap = 
(AuthenticationProvider)constructor.newInstance();
    [javac]                                  ^
    [javac] 3 warnings
{noformat}

2. When does this throw NullPointerException? Isn't it supposed to throw 
IllegalArgumentException if the arguments don't match?

{noformat}
+                        Constructor<AuthenticationProvider> constructor = 
c.getConstructor(ZooKeeperServer.class);
+                        try {
+                            ap = 
(AuthenticationProvider)constructor.newInstance(zks);
+                        } catch (NullPointerException e) {
+                            constructor = c.getConstructor();
+                            ap = 
(AuthenticationProvider)constructor.newInstance();
+                        }
{noformat}


> Plumb ZooKeeperServer object into auth plugins
> ----------------------------------------------
>
>                 Key: ZOOKEEPER-1525
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1525
>             Project: ZooKeeper
>          Issue Type: Improvement
>            Reporter: Warren Turkal
>            Assignee: Warren Turkal
>             Fix For: 3.5.0
>
>         Attachments: ZOOKEEPER-1525.patch
>
>
> I want to plumb the ZooKeeperServer object into the auth plugins so that I 
> can store authentication data in zookeeper itself. With access to the 
> ZooKeeperServer object, I also have access to the ZKDatabase and can look up 
> entries in the local copy of the zookeeper data.
> In order to implement this, I make sure that a ZooKeeperServer instance is 
> passed in to the ProviderRegistry.initialize() method. Then initialize() will 
> try to find a constructor for the AuthenticationProvider that takes a 
> ZooKeeperServer instance. If the constructor is found, it will be used. 
> Otherwise, initialize() will look for a constructor that takes no arguments 
> and use that instead.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to