Adding protection against UI extension failures crashing the whole UI.
Fixed NPE for null devices when displaying details.
Change-Id: I0053939807ea2493e125c7a1fd58606e4c4d3e02
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
index 1d49d02..449cdec 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
@@ -186,12 +186,16 @@
UiMessageHandlerFactory factory = ext.messageHandlerFactory();
if (factory != null) {
factory.newHandlers().forEach(handler -> {
- handler.init(this, directory);
- handler.messageTypes().forEach(type -> handlers.put(type, handler));
+ try {
+ handler.init(this, directory);
+ handler.messageTypes().forEach(type -> handlers.put(type, handler));
- // need to inject the overlay cache into topology message handler
- if (handler instanceof TopologyViewMessageHandler) {
- ((TopologyViewMessageHandler) handler).setOverlayCache(overlayCache);
+ // need to inject the overlay cache into topology message handler
+ if (handler instanceof TopologyViewMessageHandler) {
+ ((TopologyViewMessageHandler) handler).setOverlayCache(overlayCache);
+ }
+ } catch (Exception e) {
+ log.warn("Unable to setup handler {} due to", handler, e);
}
});
}