Fix NullPointerException with KafkaProducer.send(record) (#6487)

Resolves #6481
This commit is contained in:
Jingguo Yao 2021-03-05 11:12:23 +08:00 committed by GitHub
parent a0196b16fa
commit e2f2cce874
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 4 deletions

View File

@ -17,6 +17,7 @@ Release Notes.
* Fix apm-dubbo-2.7.x-plugin memory leak due to some Dubbo RpcExceptions.
* Fix lettuce-5.x-plugin get null host in redis sentinel mode.
* Fix ClassCastException by making CallbackAdapterInterceptor to implement EnhancedInstance interface in the spring-kafka plugin.
* Fix NullPointerException with KafkaProducer.send(record).
#### OAP-Backend
* Allow user-defined `JAVA_OPTS` in the startup script.

View File

@ -30,8 +30,10 @@ public class CallbackConstructorInterceptor implements InstanceConstructorInterc
@Override
public void onConstruct(EnhancedInstance objInst, Object[] allArguments) {
Callback callback = (Callback) allArguments[0];
CallbackCache cache = new CallbackCache();
cache.setCallback(callback);
objInst.setSkyWalkingDynamicField(cache);
if (null != callback) {
CallbackCache cache = new CallbackCache();
cache.setCallback(callback);
objInst.setSkyWalkingDynamicField(cache);
}
}
}

View File

@ -74,7 +74,10 @@ public class CallbackInterceptor implements InstanceMethodsAroundInterceptor {
@Override
public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments,
Class<?>[] argumentsTypes, Throwable t) {
ContextManager.activeSpan().log(t);
CallbackCache cache = (CallbackCache) objInst.getSkyWalkingDynamicField();
if (null != cache) {
ContextManager.activeSpan().log(t);
}
}
private ContextSnapshot getSnapshot(CallbackCache cache) {