You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by du...@apache.org on 2019/03/21 12:59:56 UTC

svn commit: r1855983 - /felix/trunk/systemready/src/main/java/org/apache/felix/systemready/impl/SystemReadyMonitorImpl.java

Author: dulvac
Date: Thu Mar 21 12:59:56 2019
New Revision: 1855983

URL: http://svn.apache.org/viewvc?rev=1855983&view=rev
Log:
FELIX-6083 NPE running systemready

Modified:
    felix/trunk/systemready/src/main/java/org/apache/felix/systemready/impl/SystemReadyMonitorImpl.java

Modified: felix/trunk/systemready/src/main/java/org/apache/felix/systemready/impl/SystemReadyMonitorImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/systemready/src/main/java/org/apache/felix/systemready/impl/SystemReadyMonitorImpl.java?rev=1855983&r1=1855982&r2=1855983&view=diff
==============================================================================
--- felix/trunk/systemready/src/main/java/org/apache/felix/systemready/impl/SystemReadyMonitorImpl.java (original)
+++ felix/trunk/systemready/src/main/java/org/apache/felix/systemready/impl/SystemReadyMonitorImpl.java Thu Mar 21 12:59:56 2019
@@ -111,17 +111,21 @@ public class SystemReadyMonitorImpl impl
     }
 
     private void check() {
-        CheckStatus.State prevState = getStatus(StateType.READY).getState();
-        List<SystemReadyCheck> currentChecks = new ArrayList<>(checks);
-        List<String> checkNames = currentChecks.stream().map(check -> check.getName()).collect(Collectors.toList());
-        log.debug("Running system checks {}", checkNames);
-        List<CheckStatus> statuses = evaluateAllChecks(currentChecks);
-		this.curStates.set(statuses);
-		State currState = getStatus(StateType.READY).getState();
-        if (currState != prevState) {
-            manageMarkerService(currState);
+        try {
+            CheckStatus.State prevState = getStatus(StateType.READY).getState();
+            List<SystemReadyCheck> currentChecks = new ArrayList<>(checks);
+            List<String> checkNames = currentChecks.stream().map(check -> check.getName()).collect(Collectors.toList());
+            log.debug("Running system checks {}", checkNames);
+            List<CheckStatus> statuses = evaluateAllChecks(currentChecks);
+            this.curStates.set(statuses);
+            State currState = getStatus(StateType.READY).getState();
+            if (currState != prevState) {
+                manageMarkerService(currState);
+            }
+            log.debug("Checks finished");
+        } catch (Exception e) {
+            log.warn("Exception when running checks", e);
         }
-        log.debug("Checks finished");
     }
 
     private List<CheckStatus> evaluateAllChecks(List<SystemReadyCheck> currentChecks) {
@@ -136,7 +140,7 @@ public class SystemReadyMonitorImpl impl
             SystemReady readyService = new SystemReady() {
             };
             sreg = context.registerService(SystemReady.class, readyService, null);
-        } else {
+        } else if (sreg != null) {
             sreg.unregister();
         }
     }