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

René Kerner commented on KAFKA-13256:
-------------------------------------

[~mjsax] Currently there's no way to prevent that users of  ConfigDef do NOT 
provide a documentation.

I don't know who's consuming `org.apache.kafka.common.config.ConfigDef#toRst`, 
`org.apache.kafka.common.config.ConfigDef#toEnrichedRst` and 
`org.apache.kafka.common.config.ConfigDef#toHtml` but calling these methods in 
ConfigDef will fail with an NPE when there are ConfigKeys that don't have 
`documentation` set.

An alternative would be to add null-checks into all 
`org.apache.kafka.common.config.ConfigDef#define` methods, but this would be a 
drastic API breaking change.

> Possible NPE in ConfigDef when rendering (enriched) RST or HTML when 
> documentation is not set/NULL
> --------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-13256
>                 URL: https://issues.apache.org/jira/browse/KAFKA-13256
>             Project: Kafka
>          Issue Type: Bug
>          Components: clients
>    Affects Versions: 2.8.0
>            Reporter: René Kerner
>            Priority: Major
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> While working on Debezium I discovered the following issue:
> When Kafka's ConfigDef renders the HTML or RST documentation representation 
> of the config definition, it requires `ConfigKey.documentation` member 
> variable to be a java.lang.String instance that's set to an actual value 
> different than NULL, else NPE happens:
> {code:java}
>  b.append(key.documentation.replaceAll("\n", "<br>"));
> {code}
> {code:java}
>  for (String docLine : key.documentation.split("\n")) {
> {code}
>  
> When `documentation` is not set/NULL I suggest to either set a valid String 
> like "No documentation available" or skip that config key.
>  
> I could provide a PR to fix this soon.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to