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

Neha Narkhede commented on KAFKA-1618:
--------------------------------------

[~balaji.sesha...@dish.com] To answer your question - 
{noformat}
nnarkhed-mn1:tools nnarkhed$ pwd
/Users/nnarkhed/Projects/kafka-git-idea/core/src/main/scala/kafka/tools
nnarkhed-mn1:tools nnarkhed$ grep -R "broker-list" *
ConsoleProducer.scala:    val brokerListOpt = parser.accepts("broker-list", 
"REQUIRED: The broker list string in the form HOST1:PORT1,HOST2:PORT2.")
ConsoleProducer.scala:      .describedAs("broker-list")
GetOffsetShell.scala:    val brokerListOpt = parser.accepts("broker-list", 
"REQUIRED: The list of hostname and port of the server to connect to.")
ProducerPerformance.scala:    val brokerListOpt = parser.accepts("broker-list", 
"REQUIRED: broker info (the list of broker host and port for bootstrap.")
ReplayLogProducer.scala:    val brokerListOpt = parser.accepts("broker-list", 
"REQUIRED: the broker list must be specified.")
ReplicaVerificationTool.scala:    val brokerListOpt = 
parser.accepts("broker-list", "REQUIRED: The list of hostname and port of the 
server to connect to.")
SimpleConsumerShell.scala:    val brokerListOpt = parser.accepts("broker-list", 
"REQUIRED: The list of hostname and port of the server to connect to.")
{noformat}

Few review comments -
1. In lines 222-227, options.valueOf(brokerListOpt) is repeated several times. 
It will be great if you can extract the value in a local variable and use that. 
2. I'm actually a -1 on guessing anything and hardcoding it. Currently, the 
defaults we have for the broker port are inconsistent and exist in 2 different 
places (KafkaConfig and server.properties). Since the users can start Kafka on 
a different port anyways, the behavior of the tools would be more confusing if 
we attempt to guess the port ineffectively. I'd prefer exiting after giving a 
clear error message instead.

> Exception thrown when running console producer with no port number for the 
> broker
> ---------------------------------------------------------------------------------
>
>                 Key: KAFKA-1618
>                 URL: https://issues.apache.org/jira/browse/KAFKA-1618
>             Project: Kafka
>          Issue Type: Improvement
>    Affects Versions: 0.8.1.1
>            Reporter: Gwen Shapira
>            Assignee: Gwen Shapira
>              Labels: newbie
>             Fix For: 0.8.2
>
>         Attachments: KAFKA-1618.patch
>
>
> When running console producer with just "localhost" as the broker list, I get 
> ArrayIndexOutOfBounds exception.
> I expect either a clearer error about arguments or for the producer to 
> "guess" a default port.
> [root@shapira-1 bin]# ./kafka-console-producer.sh  --topic rufus1 
> --broker-list localhost
> java.lang.ArrayIndexOutOfBoundsException: 1
>       at 
> kafka.client.ClientUtils$$anonfun$parseBrokerList$1.apply(ClientUtils.scala:102)
>       at 
> kafka.client.ClientUtils$$anonfun$parseBrokerList$1.apply(ClientUtils.scala:97)
>       at 
> scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
>       at 
> scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
>       at 
> scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
>       at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
>       at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
>       at scala.collection.AbstractTraversable.map(Traversable.scala:105)
>       at kafka.client.ClientUtils$.parseBrokerList(ClientUtils.scala:97)
>       at 
> kafka.producer.BrokerPartitionInfo.<init>(BrokerPartitionInfo.scala:32)
>       at 
> kafka.producer.async.DefaultEventHandler.<init>(DefaultEventHandler.scala:41)
>       at kafka.producer.Producer.<init>(Producer.scala:59)
>       at kafka.producer.ConsoleProducer$.main(ConsoleProducer.scala:158)
>       at kafka.producer.ConsoleProducer.main(ConsoleProducer.scala)



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

Reply via email to