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

Michael Miller commented on ACCUMULO-4444:
------------------------------------------

I was thinking of leaving ChangeSecret as is since its a special case requiring 
2 passwords.  

It might be as easy as adding code to prompt for password to 
ClientOpts.getToken().  Like you mentioned in pr153, my concern is with the 
tools that don't use PasswordTokens.  Do you know if the "--tokenClass" 
parameter acts a catch all for non-password tokens?

> NullPointerException when password not given to TraceTableStats
> ---------------------------------------------------------------
>
>                 Key: ACCUMULO-4444
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-4444
>             Project: Accumulo
>          Issue Type: Bug
>          Components: trace
>    Affects Versions: 1.7.2, 1.8.0
>         Environment: 1.7.2 cluster
>            Reporter: Sean Busbey
>            Assignee: Michael Miller
>            Priority: Critical
>             Fix For: 1.7.3, 1.8.1, 2.0.0
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> I'm trying to follow the [admin guide on 
> tracing|https://accumulo.apache.org/1.7/accumulo_user_manual#_viewing_collected_traces],
>  specifically with the {{TraceTableStats}} command.
> In attempting to get prompted for the password, I provided a username and no 
> password, which resulted in a NullPointerException.
> {code}
> $ accumulo org.apache.accumulo.tracer.TraceTableStats -i accumulo -u foobar
> 2016-09-01 11:05:47,420 [conf.ConfigSanityCheck] WARN : Use of 
> instance.dfs.uri and instance.dfs.dir are deprecated. Consider using 
> instance.volumes instead.
> 2016-09-01 11:05:47,564 [client.ClientConfiguration] WARN : Found no 
> client.conf in default paths. Using default client configuration values.
> 2016-09-01 11:05:47,567 [client.ClientConfiguration] WARN : Found no 
> client.conf in default paths. Using default client configuration values.
> 2016-09-01 11:05:47,720 [start.Main] ERROR: Thread 
> 'org.apache.accumulo.tracer.TraceTableStats' died.
> java.lang.NullPointerException
>         at 
> org.apache.accumulo.core.client.impl.ConnectorImpl.<init>(ConnectorImpl.java:59)
>         at 
> org.apache.accumulo.core.client.ZooKeeperInstance.getConnector(ZooKeeperInstance.java:248)
>         at 
> org.apache.accumulo.core.cli.ClientOpts.getConnector(ClientOpts.java:315)
>         at 
> org.apache.accumulo.tracer.TraceTableStats.count(TraceTableStats.java:75)
>         at 
> org.apache.accumulo.tracer.TraceTableStats.main(TraceTableStats.java:71)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at org.apache.accumulo.start.Main$2.run(Main.java:157)
>         at java.lang.Thread.run(Thread.java:745)
> {code}
> The impacted line is checking to see if the credential has expired, without 
> checking to see if there is a credential in the first place, I think?
> {code}
> 57  public ConnectorImpl(final ClientContext context) throws 
> AccumuloException, AccumuloSecurityException {
> 58    checkArgument(context != null, "context is null");
> 59    if (context.getCredentials().getToken().isDestroyed())
> 60      throw new 
> AccumuloSecurityException(context.getCredentials().getPrincipal(), 
> SecurityErrorCode.TOKEN_EXPIRED);
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to