You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2017/06/09 13:56:20 UTC

svn commit: r1798222 - in /sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor: AsyncHealthCheckExecutor.java HealthCheckExecutorImpl.java

Author: bdelacretaz
Date: Fri Jun  9 13:56:20 2017
New Revision: 1798222

URL: http://svn.apache.org/viewvc?rev=1798222&view=rev
Log:
SLING-6855 - sticky results were not cached for async HCs

Modified:
    sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/AsyncHealthCheckExecutor.java
    sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckExecutorImpl.java

Modified: sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/AsyncHealthCheckExecutor.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/AsyncHealthCheckExecutor.java?rev=1798222&r1=1798221&r2=1798222&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/AsyncHealthCheckExecutor.java (original)
+++ sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/AsyncHealthCheckExecutor.java Fri Jun  9 13:56:20 2017
@@ -167,7 +167,8 @@ public class AsyncHealthCheckExecutor im
 
     }
 
-    void collectAsyncResults(List<HealthCheckMetadata> healthCheckDescriptors, Collection<HealthCheckExecutionResult> results) {
+    /** Called by the main Executor to get results from async HCs */
+    void collectAsyncResults(List<HealthCheckMetadata> healthCheckDescriptors, Collection<HealthCheckExecutionResult> results, HealthCheckResultCache cache) {
         Iterator<HealthCheckMetadata> checksIt = healthCheckDescriptors.iterator();
 
         Set<ExecutionResult> asyncResults = new TreeSet<ExecutionResult>();
@@ -187,6 +188,12 @@ public class AsyncHealthCheckExecutor im
                 checksIt.remove();
             }
         }
+        
+        LOG.debug("Caching {} results from async results", asyncResults.size());
+        for(ExecutionResult result : asyncResults) {
+            cache.updateWith(result);
+        }
+        
         LOG.debug("Adding {} results from async results", asyncResults.size());
         results.addAll(asyncResults);
 

Modified: sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckExecutorImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckExecutorImpl.java?rev=1798222&r1=1798221&r2=1798222&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckExecutorImpl.java (original)
+++ sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckExecutorImpl.java Fri Jun  9 13:56:20 2017
@@ -256,7 +256,7 @@ public class HealthCheckExecutorImpl imp
 
         // get async results
         if (!options.isForceInstantExecution()) {
-            asyncHealthCheckExecutor.collectAsyncResults(healthCheckDescriptors, results);
+            asyncHealthCheckExecutor.collectAsyncResults(healthCheckDescriptors, results, healthCheckResultCache);
         }
         
         // reuse cached results where possible