Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NPE when create message meta builder #5727

Closed
codelipenghui opened this issue Nov 23, 2019 · 4 comments
Closed

NPE when create message meta builder #5727

codelipenghui opened this issue Nov 23, 2019 · 4 comments
Labels
help wanted lifecycle/stale type/bug The PR fixed a bug or issue reported a bug

Comments

@codelipenghui
Copy link
Contributor

Describe the bug
Here is the stack trace:

java.lang.NullPointerException
 at org.apache.pulsar.shade.io.netty.util.Recycler$DefaultHandle.access$1100(Recycler.java:201)
 at org.apache.pulsar.shade.io.netty.util.Recycler$Stack.pop(Recycler.java:517)
 at org.apache.pulsar.shade.io.netty.util.Recycler.get(Recycler.java:161)
 at org.apache.pulsar.common.api.proto.PulsarApi$MessageMetadata$Builder.create(PulsarApi.java:3762)
 at org.apache.pulsar.common.api.proto.PulsarApi$MessageMetadata$Builder.access$4700(PulsarApi.java:3738)
 at org.apache.pulsar.common.api.proto.PulsarApi$MessageMetadata.newBuilder(PulsarApi.java:3731)
 at org.apache.pulsar.client.impl.TypedMessageBuilderImpl.<init>(TypedMessageBuilderImpl.java:49)
 at org.apache.pulsar.client.impl.ProducerBase.newMessage(ProducerBase.java:69)
 at com.zhaopin.boot.autoconfigure.pulsar.business.PulsarProducer.createMessage(PulsarProducer.java:269)
 at com.zhaopin.boot.autoconfigure.pulsar.business.PulsarProducer.send(PulsarProducer.java:82)
 at com.zhaopin.boot.autoconfigure.pulsar.business.PulsarProducer.send(PulsarProducer.java:60)
 at com.zhaopin.job.business.basic.JobBasicBusiness.modifyJob(JobBasicBusiness.java:717)
 at com.zhaopin.job.rpc.api.impl.JobBasicOperationServiceImpl.modifyJob(JobBasicOperationServiceImpl.java:84)
 at sun.reflect.GeneratedMethodAccessor1495.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at com.zhaopin.thrift.rpc.executor.DefaultThriftExecutor.doExecute(DefaultThriftExecutor.java:118)
 at com.zhaopin.thrift.rpc.executor.DefaultThriftExecutor$1.run(DefaultThriftExecutor.java:55)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at java.lang.Thread.run(Thread.java:748)

Additional context
Pulsar client version:2.4.0

@codelipenghui codelipenghui added the type/bug The PR fixed a bug or issue reported a bug label Nov 23, 2019
@jiazhai
Copy link
Member

jiazhai commented Nov 23, 2019

found a similar one: netty/netty#9640

@codelipenghui
Copy link
Contributor Author

codelipenghui commented Nov 23, 2019

The following demo can reproduce:

PulsarClient client = PulsarClient.builder().serviceUrl("pulsar://127.0.0.1:6650").build();
        Producer<byte[]> producer = client.newProducer().topic("test").create();
        TypedMessageBuilder<byte[]> messageBuilder = producer.newMessage();
        for (int i = 0; i < 1000; i++) {
            messageBuilder.key(i + "").value(new byte[128]).sendAsync();
        }

It's better to add check for TypedMessageBuilder, because it can only send once.

@liangyuanpeng
Copy link
Contributor

Test pass from pulsar client 2.6.0.

@tisonkun
Copy link
Member

Closed as fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted lifecycle/stale type/bug The PR fixed a bug or issue reported a bug
Projects
None yet
Development

No branches or pull requests

4 participants