Skip to content

Commit afd1072

Browse files
authored
fix(MetricsEventBus): fix some bugs (#15296)
1 parent 0c15e73 commit afd1072

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

dubbo-metrics/dubbo-metrics-event/src/main/java/org/apache/dubbo/metrics/event/MetricsEventBus.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public class MetricsEventBus {
3838
* @param event event to post.
3939
*/
4040
public static void publish(MetricsEvent event) {
41-
if (event.getSource() == null) {
41+
if (event == null || event.getSource() == null) {
4242
return;
4343
}
4444
MetricsEventMulticaster dispatcher = event.getMetricsEventMulticaster();
@@ -92,6 +92,9 @@ public static <T> T post(MetricsEvent event, Supplier<T> targetSupplier, Functio
9292
}
9393

9494
public static void tryInvoke(Runnable runnable) {
95+
if (runnable == null) {
96+
return;
97+
}
9598
try {
9699
runnable.run();
97100
} catch (Throwable e) {
@@ -115,14 +118,20 @@ public static void after(MetricsEvent event, Object result) {
115118
if (dispatcher == null) return;
116119
tryInvoke(() -> {
117120
event.customAfterPost(result);
118-
dispatcher.publishFinishEvent((TimeCounterEvent) event);
121+
if (event instanceof TimeCounterEvent) {
122+
dispatcher.publishFinishEvent((TimeCounterEvent) event);
123+
}
119124
});
120125
}
121126

122127
public static void error(MetricsEvent event) {
123128
MetricsEventMulticaster dispatcher = validate(event);
124129
if (dispatcher == null) return;
125-
tryInvoke(() -> dispatcher.publishErrorEvent((TimeCounterEvent) event));
130+
tryInvoke(() -> {
131+
if (event instanceof TimeCounterEvent) {
132+
dispatcher.publishErrorEvent((TimeCounterEvent) event);
133+
}
134+
});
126135
}
127136

128137
private static MetricsEventMulticaster validate(MetricsEvent event) {

0 commit comments

Comments
 (0)