Attila Sasvari created KAFKA-7813:
-------------------------------------

             Summary: JmxTool throws NPE when --object-name is omitted
                 Key: KAFKA-7813
                 URL: https://issues.apache.org/jira/browse/KAFKA-7813
             Project: Kafka
          Issue Type: Bug
            Reporter: Attila Sasvari


Running the JMX tool without --object-name parameter, results in a 
NullPointerException:
{code}
$ bin/kafka-run-class.sh kafka.tools.JmxTool  --jmx-url 
service:jmx:rmi:///jndi/rmi://127.0.0.1:9999/jmxrmi
...
Exception in thread "main" java.lang.NullPointerException
        at kafka.tools.JmxTool$$anonfun$3.apply(JmxTool.scala:143)
        at kafka.tools.JmxTool$$anonfun$3.apply(JmxTool.scala:143)
        at 
scala.collection.LinearSeqOptimized$class.exists(LinearSeqOptimized.scala:93)
        at scala.collection.immutable.List.exists(List.scala:84)
        at kafka.tools.JmxTool$.main(JmxTool.scala:143)
        at kafka.tools.JmxTool.main(JmxTool.scala)
{code} 

Documentation of the tool says:
{code}
--object-name <String: name>             A JMX object name to use as a query.  
                                           This can contain wild cards, and    
                                           this option can be given multiple   
                                           times to specify more than one      
                                           query. If no objects are specified  
                                           all objects will be queried.
{code}

Running the tool with {{--object-name ''}}, also results in an NPE:
{code}
$ bin/kafka-run-class.sh kafka.tools.JmxTool  --jmx-url 
service:jmx:rmi:///jndi/rmi://127.0.0.1:9999/jmxrmi --object-name ''
...
Exception in thread "main" java.lang.NullPointerException
        at kafka.tools.JmxTool$.main(JmxTool.scala:197)
        at kafka.tools.JmxTool.main(JmxTool.scala)
{code}

Runnig the tool with --object-name without an argument, the tool with 
OptionMissingRequiredArgumentException:
{code}
$ bin/kafka-run-class.sh kafka.tools.JmxTool  --jmx-url 
service:jmx:rmi:///jndi/rmi://127.0.0.1:9999/jmxrmi --object-name 

Exception in thread "main" joptsimple.OptionMissingRequiredArgumentException: 
Option object-name requires an argument
        at 
joptsimple.RequiredArgumentOptionSpec.detectOptionArgument(RequiredArgumentOptionSpec.java:48)
        at 
joptsimple.ArgumentAcceptingOptionSpec.handleOption(ArgumentAcceptingOptionSpec.java:257)
        at joptsimple.OptionParser.handleLongOptionToken(OptionParser.java:513)
        at 
joptsimple.OptionParserState$2.handleArgument(OptionParserState.java:56)
        at joptsimple.OptionParser.parse(OptionParser.java:396)
        at kafka.tools.JmxTool$.main(JmxTool.scala:104)
        at kafka.tools.JmxTool.main(JmxTool.scala)
{code}




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to