@@ -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