@Override public Void apply(final Iterable<EventData> receivedEvents, final Throwable clientException) { ReceivePump.this.handleClientExceptions(clientException); try { // don't invoke user call back - if stop is already raised / pump is unhealthy if (ReceivePump.this.shouldContinue() && (receivedEvents != null || (receivedEvents == null && ReceivePump.this.invokeOnTimeout))) { ReceivePump.this.onReceiveHandler.onReceive(receivedEvents); } } catch (final Throwable userCodeError) { ReceivePump.this.handleUserCodeExceptions(userCodeError); } ReceivePump.this.schedulePump(); return null; } }
public void sendToHandlers(Map<SystemStreamPartition, PartitionReceiveHandler> handlers) { if (eventData == null) return; handlers.forEach((ssp, value) -> value.onReceive(eventData.get(ssp))); }