FrankChen021 / bithon

An observability platform mainly for Java
Apache License 2.0
15 stars 5 forks source link

NPE from jetty interceptor #521

Closed FrankChen021 closed 1 year ago

FrankChen021 commented 1 year ago

image

Relevant code

image

Since this exception is raised at the end of the interceptor, it does not affect the execution of hooking, only causes verbose logging.

FrankChen021 commented 1 year ago

Another NPE observed

MethodDecoratorAdvice:55 - Exception occurred when executing onExit of [HttpsClient$New] for [HttpsClient]: class java.lang.Boolean cannot be cast to class java.net.HttpURLConnection (java.lang.Boolean and java.net.HttpURLConnection are in module java.base of loader 'bootstrap')

Above exception also causes following exception

MethodDecoratorAdvice:55 - Exception occurred when executing onExit of [HttpClient$ParseHTTP] for [HttpClient]: null
FrankChen021 commented 1 year ago

Full stack trace

java.lang.NullPointerException
    at org.bithon.agent.plugin.jetty.interceptor.HttpChannel$Handle.onMethodEnter(HttpChannel$Handle.java:106)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:348)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
    at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:386)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
    at java.base/java.lang.Thread.run(Thread.java:829)