[
https://issues.apache.org/jira/browse/KAFKA-697?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Swapnil Ghike updated KAFKA-697:
--------------------------------
Attachment: kafka-697-allow-dot.patch
Thanks for your comments. I agree that allowing dot will make our lives easier.
In the attached patch, I have added dot to the regexes in Topic and Config
classes. The regexes have also been modified to escape the last hyphen so that
in the future if someone accidentally added a character at the end of the regex
group, then the hyphen will not be treated as a range identifier.
Topic has been modified to disallow "." and ".." as topic names.
TopicTest and ConfigTest have been modified accordingly.
After including this patch, we can keep Jun's patch or discard it depending on
what is convenient to keep in clientId.
John, can you please check if this patch solves the problem (after reverting
Jun's patch so that the root cause is reintroduced)?
> ConsoleConsumer throws InvalidConfigException for "." in client id
> ------------------------------------------------------------------
>
> Key: KAFKA-697
> URL: https://issues.apache.org/jira/browse/KAFKA-697
> Project: Kafka
> Issue Type: Bug
> Reporter: John Fung
> Assignee: Swapnil Ghike
> Attachments: kafka-697-allow-dot.patch, kafka-697.patch
>
>
> kafka.common.InvalidConfigException: client.id
> console-consumer-16946-ConsumerFetcherThread-console-consumer-16946_XXXX-host18.corp-1358006528116-991e3f2d-0-1
> is illegal, contains a character other than ASCII alphanumerics, _ and -
> at kafka.common.Config$class.validateChars(Config.scala:32)
> at
> kafka.consumer.ConsumerConfig$.validateChars(ConsumerConfig.scala:25)
> at
> kafka.consumer.ConsumerConfig$.validateClientId(ConsumerConfig.scala:55)
> at kafka.consumer.SimpleConsumer.<init>(SimpleConsumer.scala:88)
> at
> kafka.server.AbstractFetcherThread.<init>(AbstractFetcherThread.scala:44)
> at
> kafka.consumer.ConsumerFetcherThread.<init>(ConsumerFetcherThread.scala:27)
> at
> kafka.consumer.ConsumerFetcherManager.createFetcherThread(ConsumerFetcherManager.scala:93)
> at
> kafka.server.AbstractFetcherManager.addFetcher(AbstractFetcherManager.scala:44)
> at
> kafka.consumer.ConsumerFetcherManager$$anon$1$$anonfun$doWork$3.apply(ConsumerFetcherManager.scala:75)
> at
> kafka.consumer.ConsumerFetcherManager$$anon$1$$anonfun$doWork$3.apply(ConsumerFetcherManager.scala:72)
> at
> scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:80)
> at
> scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:80)
> at scala.collection.Iterator$class.foreach(Iterator.scala:631)
> at
> scala.collection.mutable.HashTable$$anon$1.foreach(HashTable.scala:161)
> at
> scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:194)
> at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:39)
> at scala.collection.mutable.HashMap.foreach(HashMap.scala:80)
> at
> kafka.consumer.ConsumerFetcherManager$$anon$1.doWork(ConsumerFetcherManager.scala:72)
> at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:50)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira