summaryrefslogtreecommitdiffstats
path: root/gerrit-extension-api/src
diff options
context:
space:
mode:
authorLuca Milanesio <luca.milanesio@gmail.com>2012-06-24 21:39:39 +0100
committerLuca Milanesio <luca.milanesio@gmail.com>2012-06-27 17:31:53 +0100
commitc0732b13010b1d83dccf6d69002a1653087ad24e (patch)
treedd5620a36712c707bb3404e396ce3c2b3f223fc1 /gerrit-extension-api/src
parent9d92e48ab03aa6e87cd0234d1e86b9bc32a84ac1 (diff)
Additional log on plug-in self-registration and failures.
Whenever a new class is self-registered from a plug-in additional INFO message is displayed with class name and listener / exported interface. Additionally when a Listener fails to get created from injection into a DynamicSet, an error is logged allowing the plug-in developer to understand what was the problem. Without this patch, you may see your plus-in loading correctly but then the listeners being discarded silently and you would spend a lot of time figuring out where the problem was. Change-Id: Ief3d3c5a3012136f73296a3afa5c85c22fc38bb7
Diffstat (limited to 'gerrit-extension-api/src')
-rw-r--r--gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/DynamicSet.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/DynamicSet.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/DynamicSet.java
index ec34887083..68a9914cf4 100644
--- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/DynamicSet.java
+++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/DynamicSet.java
@@ -25,6 +25,9 @@ import com.google.inject.name.Named;
import com.google.inject.util.Providers;
import com.google.inject.util.Types;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import java.util.Collection;
import java.util.Iterator;
import java.util.NoSuchElementException;
@@ -39,6 +42,7 @@ import java.util.concurrent.atomic.AtomicReference;
* registrations to decide between singleton and non-singleton members.
*/
public class DynamicSet<T> implements Iterable<T> {
+ private static final Logger log = LoggerFactory.getLogger(DynamicSet.class);
/**
* Declare a singleton {@code DynamicSet<T>} with a binder.
* <p>
@@ -147,7 +151,8 @@ public class DynamicSet<T> implements Iterable<T> {
try {
next = p.get();
} catch (RuntimeException e) {
- // TODO Log failed member of DynamicSet.
+ log.error("Cannot get iterated object from provider " + p
+ + ": object discared", e);
}
}
}