You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by si...@apache.org on 2020/08/06 08:58:17 UTC

[pulsar] branch master updated: [pulsar-proxy] Handle NPE while updating proxy stats (#7766)

This is an automated email from the ASF dual-hosted git repository.

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 92f2577  [pulsar-proxy] Handle NPE while updating proxy stats (#7766)
92f2577 is described below

commit 92f257700f13a772ab2ca9ea44c9321e034eea54
Author: Rajan Dhabalia <rd...@apache.org>
AuthorDate: Thu Aug 6 01:57:49 2020 -0700

    [pulsar-proxy] Handle NPE while updating proxy stats (#7766)
    
    ### Motivation
    Handle NPE while updating proxy-stats
    ```
    java.lang.NullPointerException
    	at org.apache.pulsar.proxy.server.ProxyService.lambda$1(ProxyService.java:161)
    	at java.util.concurrent.ConcurrentHashMap$KeySetView.forEach(ConcurrentHashMap.java:4649)
    	at java.util.Collections$SetFromMap.forEach(Collections.java:5476)
    	at org.apache.pulsar.proxy.server.ProxyService.lambda$0(ProxyService.java:159)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    	at java.lang.Thread.run(Thread.java:745)
    ```
---
 .../src/main/java/org/apache/pulsar/proxy/server/ProxyService.java   | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/ProxyService.java b/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/ProxyService.java
index b1676a6..a531068 100644
--- a/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/ProxyService.java
+++ b/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/ProxyService.java
@@ -143,7 +143,10 @@ public class ProxyService implements Closeable {
                 .newSingleThreadScheduledExecutor(new DefaultThreadFactory("proxy-stats-executor"));
         statsExecutor.schedule(()->{
             this.clientCnxs.forEach(cnx -> {
-                cnx.getDirectProxyHandler().getInboundChannelRequestsRate().calculateRate();
+                if (cnx.getDirectProxyHandler() != null
+                        && cnx.getDirectProxyHandler().getInboundChannelRequestsRate() != null) {
+                    cnx.getDirectProxyHandler().getInboundChannelRequestsRate().calculateRate();
+                }
             });
             this.topicStats.forEach((topic, stats) -> {
                 stats.calculate();