dsmiley commented on code in PR #1243:
URL: https://github.com/apache/solr/pull/1243#discussion_r1058640843


##########
solr/core/src/java/org/apache/solr/core/SolrCores.java:
##########
@@ -99,37 +85,34 @@ protected void close() {
     waitForLoadingCoresToFinish(30 * 1000);
     Collection<SolrCore> coreList = new ArrayList<>();
 
-    // Release transient core cache.
-    synchronized (modifyLock) {
-      if (transientSolrCoreCacheFactory != null) {
-        getTransientCacheHandler().close();
-      }
-    }
-
     // It might be possible for one of the cores to move from one list to 
another while we're
     // closing them. So loop through the lists until they're all empty. In 
particular, the core
     // could have moved from the transient list to the pendingCloses list.
-    do {
-      coreList.clear();
+    while (true) {
+
       synchronized (modifyLock) {
-        // make a copy of the cores then clear the map so the core isn't 
handed out to a request
-        // again
-        coreList.addAll(cores.values());
-        cores.clear();
-        if (transientSolrCoreCacheFactory != null) {
-          coreList.addAll(getTransientCacheHandler().prepareForShutdown());
+        // remove all loaded cores; add to our working list.
+        for (String name : getLoadedCoreNames()) {
+          final var core = remove(name);
+          if (core != null) {

Review Comment:
   Firstly, I don't think SolrCore.close calling getLoadedCoreNames adds much 
cognitive complexity since its name is clear and it does what you'd think it 
does.  I think you are asking, why does `getLoadedCoreNames` exist at all if 
it's so trivial.  It existed before but the reason is to allow a subclass that 
could implement the concept of transient cores, which is the point of this PR.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to