[jira] [Commented] (KAFKA-3905) remove null from subscribed topics in KafkaConsumer#subscribe
[ https://issues.apache.org/jira/browse/KAFKA-3905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15376692#comment-15376692 ] ASF GitHub Bot commented on KAFKA-3905: --- Github user asfgit closed the pull request at: https://github.com/apache/kafka/pull/1601 > remove null from subscribed topics in KafkaConsumer#subscribe > -- > > Key: KAFKA-3905 > URL: https://issues.apache.org/jira/browse/KAFKA-3905 > Project: Kafka > Issue Type: Wish > Components: clients >Affects Versions: 0.10.0.0 >Reporter: Xing Huang >Assignee: Rekha Joshi >Priority: Minor > > Currently, KafkaConsumer's subscribe methods accept Collection as > topics to be subscribed, but a Collection may have null as its element. For > example > {code} > String topic = null; > Collection topics = Arrays.asList(topic); > consumer.subscribe(topics) > {code} > When this happens, consumer will throw a puzzling NullPointerException: > {code} > at org.apache.kafka.common.utils.Utils.utf8Length(Utils.java:245) > at org.apache.kafka.common.protocol.types.Type$6.sizeOf(Type.java:248) > at > org.apache.kafka.common.protocol.types.ArrayOf.sizeOf(ArrayOf.java:85) > at org.apache.kafka.common.protocol.types.Schema.sizeOf(Schema.java:89) > at org.apache.kafka.common.protocol.types.Struct.sizeOf(Struct.java:244) > at > org.apache.kafka.common.requests.RequestSend.serialize(RequestSend.java:35) > at > org.apache.kafka.common.requests.RequestSend.(RequestSend.java:29) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.request(NetworkClient.java:616) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:639) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:552) > at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:258) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:360) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:224) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:192) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:163) > at > org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:179) > at > org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:970) > at > org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:934) > {code} > Maybe it's better to remove null when doing subscription. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-3905) remove null from subscribed topics in KafkaConsumer#subscribe
[ https://issues.apache.org/jira/browse/KAFKA-3905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15369206#comment-15369206 ] ASF GitHub Bot commented on KAFKA-3905: --- GitHub user rekhajoshm opened a pull request: https://github.com/apache/kafka/pull/1601 KAFKA-3905; Handle invalid collection of topics, patterns on subscription for list of topics, with patterns, and with assignments KAFKA-3905: Handling null/empty topics and collections, patterns when subscription with list of topics or with patterns, and with assignments. - Added validity checks for input parameters on subscribe, assign to avoid NPE, and provide an argument exception instead - Updated behavior for subscription with null collection to be same as when subscription with emptyList.i.e., unsubscribes. - Added tests on subscription, assign You can merge this pull request into a Git repository by running: $ git pull https://github.com/rekhajoshm/kafka KAFKA-3905-1 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/1601.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1601 commit c9a66992b1095616f87c5748f210b973ebc7eb01 Author: Rekha Joshi Date: 2016-05-26T17:48:37Z Merge pull request #2 from apache/trunk Apache Kafka trunk pull commit 8d7fb005cb132440e7768a5b74257d2598642e0f Author: Rekha Joshi Date: 2016-05-30T21:37:43Z Merge pull request #3 from apache/trunk Apache Kafka trunk pull commit fbef9a8fb1411282fbadec46955691c3e7ba2578 Author: Rekha Joshi Date: 2016-06-04T23:58:02Z Merge pull request #4 from apache/trunk Apache Kafka trunk pull commit 172db701bf9affda1304b684921260d1cd36ae9e Author: Rekha Joshi Date: 2016-06-06T22:10:31Z Merge pull request #6 from apache/trunk Apache Kafka trunk pull commit 9d18d93745cf2bc9b0ab4bb9b25d9a31196ef918 Author: Rekha Joshi Date: 2016-06-07T19:36:45Z Merge pull request #7 from apache/trunk Apache trunk pull commit 882faea01f28aef1977f4ced6567833bcf736840 Author: Rekha Joshi Date: 2016-06-13T20:01:43Z Merge pull request #8 from confluentinc/trunk Apache kafka trunk pull commit 851315d39c0c308d79b9575546822aa932c46a09 Author: Rekha Joshi Date: 2016-06-27T17:34:54Z Merge pull request #9 from apache/trunk Merge Apache kafka trunk commit 613f07c2b4193302c82a5d6eaa1e53e4b87bfbc1 Author: Rekha Joshi Date: 2016-07-09T17:03:45Z Merge pull request #11 from apache/trunk Merge Apache kafka trunk commit ff5a583abf22d40d0bf3339a450d28ce336dd4fa Author: Joshi Date: 2016-07-09T17:21:49Z Handle invalid collection of topics, patterns on subscription for list of topics, with patterns, and with assignments > remove null from subscribed topics in KafkaConsumer#subscribe > -- > > Key: KAFKA-3905 > URL: https://issues.apache.org/jira/browse/KAFKA-3905 > Project: Kafka > Issue Type: Wish > Components: clients >Affects Versions: 0.10.0.0 >Reporter: Xing Huang >Assignee: Rekha Joshi >Priority: Minor > > Currently, KafkaConsumer's subscribe methods accept Collection as > topics to be subscribed, but a Collection may have null as its element. For > example > {code} > String topic = null; > Collection topics = Arrays.asList(topic); > consumer.subscribe(topics) > {code} > When this happens, consumer will throw a puzzling NullPointerException: > {code} > at org.apache.kafka.common.utils.Utils.utf8Length(Utils.java:245) > at org.apache.kafka.common.protocol.types.Type$6.sizeOf(Type.java:248) > at > org.apache.kafka.common.protocol.types.ArrayOf.sizeOf(ArrayOf.java:85) > at org.apache.kafka.common.protocol.types.Schema.sizeOf(Schema.java:89) > at org.apache.kafka.common.protocol.types.Struct.sizeOf(Struct.java:244) > at > org.apache.kafka.common.requests.RequestSend.serialize(RequestSend.java:35) > at > org.apache.kafka.common.requests.RequestSend.(RequestSend.java:29) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.request(NetworkClient.java:616) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:639) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:552) > at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:258) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:360) > at > org.apache.kafka.clients.consumer.inter
[jira] [Commented] (KAFKA-3905) remove null from subscribed topics in KafkaConsumer#subscribe
[ https://issues.apache.org/jira/browse/KAFKA-3905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15369204#comment-15369204 ] ASF GitHub Bot commented on KAFKA-3905: --- Github user rekhajoshm closed the pull request at: https://github.com/apache/kafka/pull/1561 > remove null from subscribed topics in KafkaConsumer#subscribe > -- > > Key: KAFKA-3905 > URL: https://issues.apache.org/jira/browse/KAFKA-3905 > Project: Kafka > Issue Type: Wish > Components: clients >Affects Versions: 0.10.0.0 >Reporter: Xing Huang >Assignee: Rekha Joshi >Priority: Minor > > Currently, KafkaConsumer's subscribe methods accept Collection as > topics to be subscribed, but a Collection may have null as its element. For > example > {code} > String topic = null; > Collection topics = Arrays.asList(topic); > consumer.subscribe(topics) > {code} > When this happens, consumer will throw a puzzling NullPointerException: > {code} > at org.apache.kafka.common.utils.Utils.utf8Length(Utils.java:245) > at org.apache.kafka.common.protocol.types.Type$6.sizeOf(Type.java:248) > at > org.apache.kafka.common.protocol.types.ArrayOf.sizeOf(ArrayOf.java:85) > at org.apache.kafka.common.protocol.types.Schema.sizeOf(Schema.java:89) > at org.apache.kafka.common.protocol.types.Struct.sizeOf(Struct.java:244) > at > org.apache.kafka.common.requests.RequestSend.serialize(RequestSend.java:35) > at > org.apache.kafka.common.requests.RequestSend.(RequestSend.java:29) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.request(NetworkClient.java:616) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:639) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:552) > at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:258) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:360) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:224) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:192) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:163) > at > org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:179) > at > org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:970) > at > org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:934) > {code} > Maybe it's better to remove null when doing subscription. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-3905) remove null from subscribed topics in KafkaConsumer#subscribe
[ https://issues.apache.org/jira/browse/KAFKA-3905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15353972#comment-15353972 ] ASF GitHub Bot commented on KAFKA-3905: --- Github user iBuddha closed the pull request at: https://github.com/apache/kafka/pull/1564 > remove null from subscribed topics in KafkaConsumer#subscribe > -- > > Key: KAFKA-3905 > URL: https://issues.apache.org/jira/browse/KAFKA-3905 > Project: Kafka > Issue Type: Wish > Components: clients >Affects Versions: 0.10.0.0 >Reporter: Xing Huang >Assignee: Rekha Joshi >Priority: Minor > > Currently, KafkaConsumer's subscribe methods accept Collection as > topics to be subscribed, but a Collection may have null as its element. For > example > {code} > String topic = null; > Collection topics = Arrays.asList(topic); > consumer.subscribe(topics) > {code} > When this happens, consumer will throw a puzzling NullPointerException: > {code} > at org.apache.kafka.common.utils.Utils.utf8Length(Utils.java:245) > at org.apache.kafka.common.protocol.types.Type$6.sizeOf(Type.java:248) > at > org.apache.kafka.common.protocol.types.ArrayOf.sizeOf(ArrayOf.java:85) > at org.apache.kafka.common.protocol.types.Schema.sizeOf(Schema.java:89) > at org.apache.kafka.common.protocol.types.Struct.sizeOf(Struct.java:244) > at > org.apache.kafka.common.requests.RequestSend.serialize(RequestSend.java:35) > at > org.apache.kafka.common.requests.RequestSend.(RequestSend.java:29) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.request(NetworkClient.java:616) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:639) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:552) > at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:258) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:360) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:224) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:192) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:163) > at > org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:179) > at > org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:970) > at > org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:934) > {code} > Maybe it's better to remove null when doing subscription. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-3905) remove null from subscribed topics in KafkaConsumer#subscribe
[ https://issues.apache.org/jira/browse/KAFKA-3905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15352551#comment-15352551 ] ASF GitHub Bot commented on KAFKA-3905: --- GitHub user iBuddha opened a pull request: https://github.com/apache/kafka/pull/1564 KAFKA-3905:check collection elements in KafkaConsumer#subscribe. If topic collection has null or "" as its element, throw an IllegalArgumentException. You can merge this pull request into a Git repository by running: $ git pull https://github.com/iBuddha/kafka KAFKA-3905 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/1564.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1564 commit 8b39741a38623c44a130901f124371ee0bf2e9f7 Author: huang Date: 2016-06-28T07:59:23Z KAFKA-3905:check collection elements in KafkaConsumer#subscribe. > remove null from subscribed topics in KafkaConsumer#subscribe > -- > > Key: KAFKA-3905 > URL: https://issues.apache.org/jira/browse/KAFKA-3905 > Project: Kafka > Issue Type: Wish > Components: clients >Affects Versions: 0.10.0.0 >Reporter: Xing Huang >Assignee: Rekha Joshi >Priority: Minor > > Currently, KafkaConsumer's subscribe methods accept Collection as > topics to be subscribed, but a Collection may have null as its element. For > example > {code} > String topic = null; > Collection topics = Arrays.asList(topic); > consumer.subscribe(topics) > {code} > When this happens, consumer will throw a puzzling NullPointerException: > {code} > at org.apache.kafka.common.utils.Utils.utf8Length(Utils.java:245) > at org.apache.kafka.common.protocol.types.Type$6.sizeOf(Type.java:248) > at > org.apache.kafka.common.protocol.types.ArrayOf.sizeOf(ArrayOf.java:85) > at org.apache.kafka.common.protocol.types.Schema.sizeOf(Schema.java:89) > at org.apache.kafka.common.protocol.types.Struct.sizeOf(Struct.java:244) > at > org.apache.kafka.common.requests.RequestSend.serialize(RequestSend.java:35) > at > org.apache.kafka.common.requests.RequestSend.(RequestSend.java:29) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.request(NetworkClient.java:616) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:639) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:552) > at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:258) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:360) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:224) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:192) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:163) > at > org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:179) > at > org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:970) > at > org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:934) > {code} > Maybe it's better to remove null when doing subscription. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-3905) remove null from subscribed topics in KafkaConsumer#subscribe
[ https://issues.apache.org/jira/browse/KAFKA-3905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15352378#comment-15352378 ] Xing Huang commented on KAFKA-3905: --- I think IllegalArgumentException with an error message will be enough. And, empty string cause an exception too. > remove null from subscribed topics in KafkaConsumer#subscribe > -- > > Key: KAFKA-3905 > URL: https://issues.apache.org/jira/browse/KAFKA-3905 > Project: Kafka > Issue Type: Wish > Components: clients >Affects Versions: 0.10.0.0 >Reporter: Xing Huang >Assignee: Rekha Joshi >Priority: Minor > > Currently, KafkaConsumer's subscribe methods accept Collection as > topics to be subscribed, but a Collection may have null as its element. For > example > {code} > String topic = null; > Collection topics = Arrays.asList(topic); > consumer.subscribe(topics) > {code} > When this happens, consumer will throw a puzzling NullPointerException: > {code} > at org.apache.kafka.common.utils.Utils.utf8Length(Utils.java:245) > at org.apache.kafka.common.protocol.types.Type$6.sizeOf(Type.java:248) > at > org.apache.kafka.common.protocol.types.ArrayOf.sizeOf(ArrayOf.java:85) > at org.apache.kafka.common.protocol.types.Schema.sizeOf(Schema.java:89) > at org.apache.kafka.common.protocol.types.Struct.sizeOf(Struct.java:244) > at > org.apache.kafka.common.requests.RequestSend.serialize(RequestSend.java:35) > at > org.apache.kafka.common.requests.RequestSend.(RequestSend.java:29) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.request(NetworkClient.java:616) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:639) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:552) > at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:258) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:360) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:224) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:192) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:163) > at > org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:179) > at > org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:970) > at > org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:934) > {code} > Maybe it's better to remove null when doing subscription. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-3905) remove null from subscribed topics in KafkaConsumer#subscribe
[ https://issues.apache.org/jira/browse/KAFKA-3905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15352034#comment-15352034 ] Ismael Juma commented on KAFKA-3905: [~wushujames], I agree. > remove null from subscribed topics in KafkaConsumer#subscribe > -- > > Key: KAFKA-3905 > URL: https://issues.apache.org/jira/browse/KAFKA-3905 > Project: Kafka > Issue Type: Wish > Components: clients >Affects Versions: 0.10.0.0 >Reporter: Xing Huang >Assignee: Rekha Joshi >Priority: Minor > > Currently, KafkaConsumer's subscribe methods accept Collection as > topics to be subscribed, but a Collection may have null as its element. For > example > {code} > String topic = null; > Collection topics = Arrays.asList(topic); > consumer.subscribe(topics) > {code} > When this happens, consumer will throw a puzzling NullPointerException: > {code} > at org.apache.kafka.common.utils.Utils.utf8Length(Utils.java:245) > at org.apache.kafka.common.protocol.types.Type$6.sizeOf(Type.java:248) > at > org.apache.kafka.common.protocol.types.ArrayOf.sizeOf(ArrayOf.java:85) > at org.apache.kafka.common.protocol.types.Schema.sizeOf(Schema.java:89) > at org.apache.kafka.common.protocol.types.Struct.sizeOf(Struct.java:244) > at > org.apache.kafka.common.requests.RequestSend.serialize(RequestSend.java:35) > at > org.apache.kafka.common.requests.RequestSend.(RequestSend.java:29) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.request(NetworkClient.java:616) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:639) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:552) > at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:258) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:360) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:224) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:192) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:163) > at > org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:179) > at > org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:970) > at > org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:934) > {code} > Maybe it's better to remove null when doing subscription. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-3905) remove null from subscribed topics in KafkaConsumer#subscribe
[ https://issues.apache.org/jira/browse/KAFKA-3905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15351906#comment-15351906 ] James Cheng commented on KAFKA-3905: I think it's better to throw an error, instead of silently removing them. The user may be unaware they are passing in bad data, and would be confused why the consumer is not acting as they expected. The NullPointerException is definitely ugly though. Maybe some sort of Exception (not sure which type) which says "can't subscribe to topic (null)"? > remove null from subscribed topics in KafkaConsumer#subscribe > -- > > Key: KAFKA-3905 > URL: https://issues.apache.org/jira/browse/KAFKA-3905 > Project: Kafka > Issue Type: Wish > Components: clients >Affects Versions: 0.10.0.0 >Reporter: Xing Huang >Assignee: Rekha Joshi >Priority: Minor > > Currently, KafkaConsumer's subscribe methods accept Collection as > topics to be subscribed, but a Collection may have null as its element. For > example > {code} > String topic = null; > Collection topics = Arrays.asList(topic); > consumer.subscribe(topics) > {code} > When this happens, consumer will throw a puzzling NullPointerException: > {code} > at org.apache.kafka.common.utils.Utils.utf8Length(Utils.java:245) > at org.apache.kafka.common.protocol.types.Type$6.sizeOf(Type.java:248) > at > org.apache.kafka.common.protocol.types.ArrayOf.sizeOf(ArrayOf.java:85) > at org.apache.kafka.common.protocol.types.Schema.sizeOf(Schema.java:89) > at org.apache.kafka.common.protocol.types.Struct.sizeOf(Struct.java:244) > at > org.apache.kafka.common.requests.RequestSend.serialize(RequestSend.java:35) > at > org.apache.kafka.common.requests.RequestSend.(RequestSend.java:29) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.request(NetworkClient.java:616) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:639) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:552) > at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:258) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:360) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:224) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:192) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:163) > at > org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:179) > at > org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:970) > at > org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:934) > {code} > Maybe it's better to remove null when doing subscription. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-3905) remove null from subscribed topics in KafkaConsumer#subscribe
[ https://issues.apache.org/jira/browse/KAFKA-3905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15351785#comment-15351785 ] ASF GitHub Bot commented on KAFKA-3905: --- GitHub user rekhajoshm opened a pull request: https://github.com/apache/kafka/pull/1561 KAFKA-3905:remove null from subscribed topics in KafkaConsumer#subscribe KAFKA-3905:remove null from subscribed topics in KafkaConsumer#subscribe You can merge this pull request into a Git repository by running: $ git pull https://github.com/rekhajoshm/kafka localtrunk Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/1561.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1561 > remove null from subscribed topics in KafkaConsumer#subscribe > -- > > Key: KAFKA-3905 > URL: https://issues.apache.org/jira/browse/KAFKA-3905 > Project: Kafka > Issue Type: Wish > Components: clients >Affects Versions: 0.10.0.0 >Reporter: Xing Huang >Assignee: Rekha Joshi >Priority: Minor > > Currently, KafkaConsumer's subscribe methods accept Collection as > topics to be subscribed, but a Collection may have null as its element. For > example > {code} > String topic = null; > Collection topics = Arrays.asList(topic); > consumer.subscribe(topics) > {code} > When this happens, consumer will throw a puzzling NullPointerException: > {code} > at org.apache.kafka.common.utils.Utils.utf8Length(Utils.java:245) > at org.apache.kafka.common.protocol.types.Type$6.sizeOf(Type.java:248) > at > org.apache.kafka.common.protocol.types.ArrayOf.sizeOf(ArrayOf.java:85) > at org.apache.kafka.common.protocol.types.Schema.sizeOf(Schema.java:89) > at org.apache.kafka.common.protocol.types.Struct.sizeOf(Struct.java:244) > at > org.apache.kafka.common.requests.RequestSend.serialize(RequestSend.java:35) > at > org.apache.kafka.common.requests.RequestSend.(RequestSend.java:29) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.request(NetworkClient.java:616) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:639) > at > org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:552) > at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:258) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:360) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:224) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:192) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:163) > at > org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:179) > at > org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:970) > at > org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:934) > {code} > Maybe it's better to remove null when doing subscription. -- This message was sent by Atlassian JIRA (v6.3.4#6332)