|
56 | 56 | */ |
57 | 57 | public class WatchFlow { |
58 | 58 |
|
59 | | - private static final Logger LOG = LoggerFactory.getLogger(SyncFlow.class); |
| 59 | + private static final Logger LOG = LoggerFactory.getLogger(WatchFlow.class); |
60 | 60 | private static final Logger UPDATE_EVENT_LOG = LoggerFactory.getLogger(LOGGING_UPDATE_EVENT_ASYNC); |
61 | 61 | private static final Map<ServiceKey, Set<ServiceListener>> watchers = new ConcurrentHashMap<>(); |
62 | 62 | private final AtomicBoolean initialize = new AtomicBoolean(false); |
@@ -90,7 +90,13 @@ public WatchServiceResponse commonWatchService(CommonWatchServiceRequest request |
90 | 90 | .addInstances(Arrays.asList(response.getInstances())) |
91 | 91 | .allInstances(Arrays.asList(response.getInstances())).build(); |
92 | 92 | firstAddedListeners.forEach( |
93 | | - serviceListener -> executor.execute(event.getServiceKey(), () -> serviceListener.onEvent(event))); |
| 93 | + serviceListener -> executor.execute(event.getServiceKey(), () -> { |
| 94 | + try { |
| 95 | + serviceListener.onEvent(event); |
| 96 | + } catch (Throwable e) { |
| 97 | + LOG.error("Notify error When listener is first added, service key:{}, event:{}", event.getServiceKey(), event, e); |
| 98 | + } |
| 99 | + })); |
94 | 100 | } |
95 | 101 | boolean result = existListeners.addAll(addListeners); |
96 | 102 | return new WatchServiceResponse(response, result); |
@@ -168,7 +174,11 @@ private class InstanceChangeListener extends AbstractResourceEventListener { |
168 | 174 |
|
169 | 175 | private final BiConsumer<ServiceChangeEvent, ServiceListener> consumer = (event, listener) -> { |
170 | 176 | WatchFlow.this.executor.execute(event.getServiceKey(), () -> { |
171 | | - listener.onEvent(event); |
| 177 | + try { |
| 178 | + listener.onEvent(event); |
| 179 | + } catch (Throwable e) { |
| 180 | + LOG.error("Notify error, service key:{}, event:{}", event.getServiceKey(), event, e); |
| 181 | + } |
172 | 182 | }); |
173 | 183 | }; |
174 | 184 |
|
|
0 commit comments