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

zhangjk commented on LOG4J2-2375:
---------------------------------

hi [~garydgregory]

the exception stack is :
{code:java}
Exception in thread "main" java.lang.ExceptionInInitializerError
at 
org.apache.kafka.clients.producer.ProducerConfig.<clinit>(ProducerConfig.java:225)
at 
org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:303)
at com.zhang.Producer.<init>(KafkaTest.scala:88)
at 
com.zhang.KafkaTest$.delayedEndpoint$com$zhang$KafkaTest$1(KafkaTest.scala:21)
at com.zhang.KafkaTest$delayedInit$body.apply(KafkaTest.scala:17)
at scala.Function0.apply$mcV$sp(Function0.scala:34)
at scala.Function0.apply$mcV$sp$(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App.$anonfun$main$1$adapted(App.scala:76)
at scala.collection.immutable.List.foreach(List.scala:389)
at scala.App.main(App.scala:76)
at scala.App.main$(App.scala:74)
at com.zhang.KafkaTest$.main(KafkaTest.scala:17)
at com.zhang.KafkaTest.main(KafkaTest.scala)
Caused by: java.lang.NullPointerException
at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:62)
at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:75)
at 
org.apache.kafka.clients.producer.ProducerConfig.<init>(ProducerConfig.java:365)
at 
org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:303)
at 
org.apache.logging.log4j.core.appender.mom.kafka.DefaultKafkaProducerFactory.newKafkaProducer(DefaultKafkaProducerFactory.java:40)
at 
org.apache.logging.log4j.core.appender.mom.kafka.KafkaManager.startup(KafkaManager.java:131)
at 
org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.start(KafkaAppender.java:175)
at 
org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:265)
at 
org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:547)
at 
org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:619)
at 
org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
at 
org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
at 
org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
at 
org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:121)
at 
org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43)
at 
org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
at 
org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:355)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:380)
at 
org.apache.kafka.clients.CommonClientConfigs.<clinit>(CommonClientConfigs.java:32)
... 14 more
{code}

> When KafkaAppender is used with other KafkaProducer, there is a problem.
> ------------------------------------------------------------------------
>
>                 Key: LOG4J2-2375
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2375
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.11.0
>         Environment: scala 2.12.6 
> kafka 1.1.0 
> log4j2 2.11.0
>            Reporter: zhangjk
>            Priority: Critical
>
> hi:
> When i use the log4j2's KafkaAppender , I found a bug.  the property CONFIG 
> of the ProducerConfig is null.
> here's my code:
> log4j2.xml
> {code:java}
> <Appenders>
>     <Kafka name="Kafka" topic="test" key ="KafkaTestKey">
>         <PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level 
> %class{36} %L %M - %msg%xEx%n"/>
>         <Property name="bootstrap.servers">localhost:9092</Property>
>     </Kafka>
> </Appenders>
> {code}
> the main class:
> {code:java}
> object KafkaTest extends App {
>   // this is scala code.
>   // create a KafkaProducer
>   val p = new Producer
> }
> {code}
> producer code:
> {code:java}
> class Producer {
>   val props = {
>     val p = new Properties()
>     ....
>     p
>   }
>   val producer = {
>     val p = new KafkaProducer[Integer, String](props)
>     p
>   }
> }
> {code}
> The reason for this BUG is that:  the `new Producer` is first initialized, 
> and the `ProducerConfig` has a static method block, and it called the 
> `CommonClientConfigs` class. in the `CommonClientConfigs` class,  it has a 
> static Log property, so, this will initialize the Log4j2's configuration, and 
> this will call a startup method of the Appender, it actually calls the 
> KafkaAppender's method. and then the method create a new `KafkaProducer`, 
> this will create a new `ProducerConfig` instance, but the static method block 
> is not completed, so the `CONFIG` is null.  this cause the 
> `NullPointerException`  
> my english is bad, so , hope to understand what i mean
>  



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

Reply via email to