You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2024/01/22 09:42:10 UTC
(camel) branch main updated: CAMEL-20297 camel-zookeeper: do not swallow interrupted exceptions
This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 6c020ccb5e1 CAMEL-20297 camel-zookeeper: do not swallow interrupted exceptions
6c020ccb5e1 is described below
commit 6c020ccb5e17df828182801df02b854b1aa5c16e
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Fri Jan 19 11:09:33 2024 +0100
CAMEL-20297 camel-zookeeper: do not swallow interrupted exceptions
---
.../component/zookeepermaster/group/internal/ZooKeeperGroup.java | 1 +
.../org/apache/camel/component/zookeeper/ConnectionHolder.java | 2 ++
.../org/apache/camel/component/zookeeper/ZooKeeperConsumer.java | 7 +++++++
.../camel/component/zookeeper/operations/AnyOfOperations.java | 2 ++
.../camel/component/zookeeper/operations/CreateOperation.java | 3 +++
.../camel/component/zookeeper/operations/DeleteOperation.java | 3 +++
.../component/zookeeper/operations/ExistenceChangedOperation.java | 3 +++
.../camel/component/zookeeper/operations/ExistsOperation.java | 3 +++
.../camel/component/zookeeper/operations/GetChildrenOperation.java | 3 +++
.../camel/component/zookeeper/operations/GetDataOperation.java | 3 +++
.../camel/component/zookeeper/operations/SetDataOperation.java | 3 +++
11 files changed, 33 insertions(+)
diff --git a/components/camel-zookeeper-master/src/main/java/org/apache/camel/component/zookeepermaster/group/internal/ZooKeeperGroup.java b/components/camel-zookeeper-master/src/main/java/org/apache/camel/component/zookeepermaster/group/internal/ZooKeeperGroup.java
index cce971c489e..8fd26534033 100644
--- a/components/camel-zookeeper-master/src/main/java/org/apache/camel/component/zookeepermaster/group/internal/ZooKeeperGroup.java
+++ b/components/camel-zookeeper-master/src/main/java/org/apache/camel/component/zookeepermaster/group/internal/ZooKeeperGroup.java
@@ -182,6 +182,7 @@ public class ZooKeeperGroup<T extends NodeState> implements Group<T> {
try {
executorService.awaitTermination(5, TimeUnit.SECONDS);
} catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
throw (IOException) new InterruptedIOException().initCause(e);
}
try {
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java
index 95da0b4be7b..f52a9419e37 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java
@@ -71,6 +71,7 @@ public class ConnectionHolder implements Watcher {
try {
connectionLatch.await();
} catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
throw RuntimeCamelException.wrapRuntimeCamelException(e);
}
}
@@ -95,6 +96,7 @@ public class ConnectionHolder implements Watcher {
} catch (InterruptedException e) {
LOG.warn("Error closing zookeeper connection {}. This exception will be ignored.",
configuration.getConnectString(), e);
+ Thread.currentThread().interrupt();
}
}
}
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConsumer.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConsumer.java
index b646ca3609c..a7540c3274a 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConsumer.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConsumer.java
@@ -139,6 +139,7 @@ public class ZooKeeperConsumer extends DefaultConsumer {
LOG.trace(String.format("Processing '%s' operation", current.getClass().getSimpleName()));
}
} catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
continue;
}
String node = current.getNode();
@@ -151,6 +152,10 @@ public class ZooKeeperConsumer extends DefaultConsumer {
getProcessor().process(createExchange(node, result, watchedEvent));
watchedEvent = null;
}
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ handleException(e);
+ backoffAndThenRestart();
} catch (Exception e) {
handleException(e);
backoffAndThenRestart();
@@ -172,6 +177,8 @@ public class ZooKeeperConsumer extends DefaultConsumer {
Thread.sleep(configuration.getBackoff());
initializeConsumer();
}
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
} catch (Exception e) {
// ignore
}
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/AnyOfOperations.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/AnyOfOperations.java
index be4997d34ff..528d41e175d 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/AnyOfOperations.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/AnyOfOperations.java
@@ -51,6 +51,8 @@ public class AnyOfOperations extends ZooKeeperOperation implements WatchedEventP
operationProvidingResult = op;
return result;
}
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
} catch (Exception e) {
}
}
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/CreateOperation.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/CreateOperation.java
index 18d24e37c95..2827303893c 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/CreateOperation.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/CreateOperation.java
@@ -56,6 +56,9 @@ public class CreateOperation extends ZooKeeperOperation<String> {
}
// for consistency with other operations return an empty stats set.
return new OperationResult<>(created, new Stat());
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ return new OperationResult<>(e);
} catch (Exception e) {
return new OperationResult<>(e);
}
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/DeleteOperation.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/DeleteOperation.java
index e9c7cf0be84..c5c03e3a137 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/DeleteOperation.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/DeleteOperation.java
@@ -47,6 +47,9 @@ public class DeleteOperation extends ZooKeeperOperation<Boolean> {
}
}
return new OperationResult<>(true, null, true);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ return new OperationResult<>(e);
} catch (Exception e) {
return new OperationResult<>(e);
}
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/ExistenceChangedOperation.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/ExistenceChangedOperation.java
index 8fd0b01a60d..24c4cd54cba 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/ExistenceChangedOperation.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/ExistenceChangedOperation.java
@@ -45,6 +45,9 @@ public class ExistenceChangedOperation extends FutureEventDrivenOperation<String
String path = getNode();
Stat statistics = connection.exists(path, true);
return new OperationResult<>(path, statistics);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ return new OperationResult<>(e);
} catch (Exception e) {
return new OperationResult<>(e);
}
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/ExistsOperation.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/ExistsOperation.java
index 4e86c326891..da0c3f895dd 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/ExistsOperation.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/ExistsOperation.java
@@ -44,6 +44,9 @@ public class ExistsOperation extends ZooKeeperOperation<String> {
LOG.trace(ok ? "node exists" : "node does not exist");
}
return new OperationResult<>(node, statistics, ok);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ return new OperationResult<>(e);
} catch (Exception e) {
return new OperationResult<>(e);
}
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/GetChildrenOperation.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/GetChildrenOperation.java
index 90982f19758..a2cf4edd1c1 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/GetChildrenOperation.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/GetChildrenOperation.java
@@ -47,6 +47,9 @@ public class GetChildrenOperation extends ZooKeeperOperation<List<String>> {
}
}
return new OperationResult<>(children, statistics);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ return new OperationResult<>(e);
} catch (Exception e) {
return new OperationResult<>(e);
}
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/GetDataOperation.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/GetDataOperation.java
index ffe52a975e8..1b738851992 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/GetDataOperation.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/GetDataOperation.java
@@ -44,6 +44,9 @@ public class GetDataOperation extends ZooKeeperOperation<byte[]> {
}
}
return new OperationResult<>(connection.getData(node, true, statistics), statistics);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ return new OperationResult<>(e);
} catch (Exception e) {
return new OperationResult<>(e);
}
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/SetDataOperation.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/SetDataOperation.java
index d23586e209d..6c3b9c2781b 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/SetDataOperation.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/operations/SetDataOperation.java
@@ -51,6 +51,9 @@ public class SetDataOperation extends ZooKeeperOperation<byte[]> {
}
}
return new OperationResult<>(data, statistics);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ return new OperationResult<>(e);
} catch (Exception e) {
return new OperationResult<>(e);
}