You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by je...@apache.org on 2018/06/15 13:30:16 UTC
[geode] branch develop updated: GEODE-5322: Catch exceptions during
plugin loading (#2058)
This is an automated email from the ASF dual-hosted git repository.
jensdeppe pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new a76e951 GEODE-5322: Catch exceptions during plugin loading (#2058)
a76e951 is described below
commit a76e9519a4dc90c97deb22dfa097f58e29c67754
Author: Jens Deppe <jd...@pivotal.io>
AuthorDate: Fri Jun 15 06:29:39 2018 -0700
GEODE-5322: Catch exceptions during plugin loading (#2058)
- Revert to using an Iterator as the exceptions are generated from the next()
call. Using forEach doesn't allow catch per-item exceptions just for the
whole loop.
---
.../geode/management/internal/cli/CommandManager.java | 14 +++++++-------
.../services/org.springframework.shell.core.CommandMarker | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java
index 690353a..354115c 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java
@@ -20,6 +20,7 @@ import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.ServiceLoader;
@@ -150,21 +151,20 @@ public class CommandManager {
private void loadPluginCommands() {
ServiceLoader<CommandMarker> loader =
ServiceLoader.load(CommandMarker.class, ClassPathLoader.getLatest().asClassLoader());
+ Iterator<CommandMarker> iterator = loader.iterator();
try {
- loader.forEach(commandMarker -> {
+ while (iterator.hasNext()) {
try {
- add(commandMarker);
- } catch (Exception e) {
- logWrapper.warning("Could not load Command from: " + commandMarker.getClass() + " due to "
- + e.getLocalizedMessage(), e); // continue
+ add(iterator.next());
+ } catch (Throwable t) {
+ logWrapper.warning("Could not load plugin command: " + t.getMessage());
}
- });
+ }
} catch (Throwable th) {
logWrapper.severe("Could not load plugin commands in the latest classLoader.", th);
}
}
-
private void loadCommands() {
loadUserCommands();
diff --git a/geode-core/src/test/resources/META-INF/services/org.springframework.shell.core.CommandMarker b/geode-core/src/test/resources/META-INF/services/org.springframework.shell.core.CommandMarker
index 1bb7c6d..28eb157 100644
--- a/geode-core/src/test/resources/META-INF/services/org.springframework.shell.core.CommandMarker
+++ b/geode-core/src/test/resources/META-INF/services/org.springframework.shell.core.CommandMarker
@@ -5,4 +5,4 @@ org.apache.geode.management.internal.cli.CommandManagerJUnitTest$MockPluginComma
# Mock Extension commands
-org.apache.geode.internal.cache.extension.mock.MockExtensionCommands
\ No newline at end of file
+org.apache.geode.internal.cache.extension.mock.MockExtensionCommands
--
To stop receiving notification emails like this one, please contact
jensdeppe@apache.org.