Properly handle interruption
diff --git a/subprojects/s4-core/src/main/java/org/apache/s4/core/SenderImpl.java b/subprojects/s4-core/src/main/java/org/apache/s4/core/SenderImpl.java
index d2e731d..b103ad8 100644
--- a/subprojects/s4-core/src/main/java/org/apache/s4/core/SenderImpl.java
+++ b/subprojects/s4-core/src/main/java/org/apache/s4/core/SenderImpl.java
@@ -161,11 +161,13 @@
if (localPartitionId != i) {
try {
emitter.send(i, serializedEvent);
+ metrics.sentEvent(i);
} catch (InterruptedException e) {
logger.error("Interrupted blocking send operation for event {}. Event is lost.", event);
+ // no reason to continue: we were interrupted, so we reset the interrupt status and leave
+ Thread.currentThread().interrupt();
+ break;
}
- metrics.sentEvent(i);
-
}
}