You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2016/07/11 14:01:10 UTC
lucene-solr:branch_6x: SOLR-8995: Use Lamdas for Thread/Runnable
Repository: lucene-solr
Updated Branches:
refs/heads/branch_6x 012fb76f7 -> 8db04e345
SOLR-8995: Use Lamdas for Thread/Runnable
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/8db04e34
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/8db04e34
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/8db04e34
Branch: refs/heads/branch_6x
Commit: 8db04e3457ea6c9a047cf61936ed8cfec3b07fb4
Parents: 012fb76
Author: Noble Paul <no...@apache.org>
Authored: Mon Jul 11 19:29:15 2016 +0530
Committer: Noble Paul <no...@apache.org>
Committed: Mon Jul 11 19:30:49 2016 +0530
----------------------------------------------------------------------
.../solr/handler/dataimport/DataImporter.java | 7 +---
.../java/org/apache/solr/cloud/Overseer.java | 9 +---
.../cloud/OverseerCollectionMessageHandler.java | 18 ++++----
.../org/apache/solr/cloud/ZkController.java | 22 +++++-----
.../org/apache/solr/core/CoreContainer.java | 28 ++++++-------
.../src/java/org/apache/solr/core/SolrCore.java | 18 ++++----
.../java/org/apache/solr/core/ZkContainer.java | 44 +++++++++-----------
.../org/apache/solr/handler/IndexFetcher.java | 19 ++++-----
.../apache/solr/handler/ReplicationHandler.java | 7 +---
.../org/apache/solr/handler/SnapShooter.java | 44 +++++++++-----------
.../apache/solr/handler/SolrConfigHandler.java | 29 ++++++-------
.../solr/handler/admin/CoreAdminOperation.java | 26 +++++-------
.../apache/solr/util/ConcurrentLFUCache.java | 15 +++----
.../apache/solr/util/ConcurrentLRUCache.java | 7 +---
14 files changed, 119 insertions(+), 174 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java
----------------------------------------------------------------------
diff --git a/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java b/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java
index 3a1ae91..2f5e9b0 100644
--- a/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java
+++ b/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java
@@ -455,12 +455,7 @@ public class DataImporter {
}
public void runAsync(final RequestInfo reqParams, final DIHWriter sw) {
- new Thread() {
- @Override
- public void run() {
- runCmd(reqParams, sw);
- }
- }.start();
+ new Thread(() -> runCmd(reqParams, sw)).start();
}
void runCmd(RequestInfo reqParams, DIHWriter sw) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/cloud/Overseer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/Overseer.java b/solr/core/src/java/org/apache/solr/cloud/Overseer.java
index cf73b62..d76c240 100644
--- a/solr/core/src/java/org/apache/solr/cloud/Overseer.java
+++ b/solr/core/src/java/org/apache/solr/cloud/Overseer.java
@@ -261,13 +261,8 @@ public class Overseer implements Closeable {
}
} finally {
log.info("Overseer Loop exiting : {}", LeaderElector.getNodeName(myId));
- new Thread("OverseerExitThread"){
- //do this in a separate thread because any wait is interrupted in this main thread
- @Override
- public void run() {
- checkIfIamStillLeader();
- }
- }.start();
+ //do this in a separate thread because any wait is interrupted in this main thread
+ new Thread(this::checkIfIamStillLeader, "OverseerExitThread").start();
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionMessageHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionMessageHandler.java b/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionMessageHandler.java
index 27a2824..4e7e429 100644
--- a/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionMessageHandler.java
+++ b/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionMessageHandler.java
@@ -578,17 +578,15 @@ public class OverseerCollectionMessageHandler implements OverseerMessageHandler
}
//if there are too many nodes this command may time out. And most likely dedicated
// overseers are created when there are too many nodes . So , do this operation in a separate thread
- new Thread(){
- @Override
- public void run() {
- try {
- overseerPrioritizer.prioritizeOverseerNodes(myId);
- } catch (Exception e) {
- log.error("Error in prioritizing Overseer",e);
- }
-
+ new Thread(() -> {
+ try {
+ overseerPrioritizer.prioritizeOverseerNodes(myId);
+ } catch (Exception e) {
+ log.error("Error in prioritizing Overseer", e);
}
- }.start();
+
+ }).start();
+
}
@SuppressWarnings("unchecked")
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/cloud/ZkController.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
index a6a1508..3e4cbe5 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -2435,20 +2435,18 @@ public final class ZkController {
final Set<Runnable> listeners = confDirectoryListeners.get(zkDir);
if (listeners != null && !listeners.isEmpty()) {
final Set<Runnable> listenersCopy = new HashSet<>(listeners);
- new Thread() {
- // run these in a separate thread because this can be long running
- @Override
- public void run() {
- log.info("Running listeners for {}", zkDir);
- for (final Runnable listener : listenersCopy) {
- try {
- listener.run();
- } catch (Exception e) {
- log.warn("listener throws error", e);
- }
+ // run these in a separate thread because this can be long running
+ new Thread(() -> {
+ log.info("Running listeners for {}", zkDir);
+ for (final Runnable listener : listenersCopy) {
+ try {
+ listener.run();
+ } catch (Exception e) {
+ log.warn("listener throws error", e);
}
}
- }.start();
+ }).start();
+
}
}
return true;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/core/CoreContainer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index a6d4066..8bbdd01 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -509,24 +509,22 @@ public class CoreContainer {
} finally {
if (asyncSolrCoreLoad && futures != null) {
- Thread shutdownThread = new Thread() {
- public void run() {
- try {
- for (Future<SolrCore> future : futures) {
- try {
- future.get();
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- } catch (ExecutionException e) {
- log.error("Error waiting for SolrCore to be created", e);
- }
+
+ coreContainerWorkExecutor.submit((Runnable) () -> {
+ try {
+ for (Future<SolrCore> future : futures) {
+ try {
+ future.get();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ } catch (ExecutionException e) {
+ log.error("Error waiting for SolrCore to be created", e);
}
- } finally {
- ExecutorUtil.shutdownAndAwaitTermination(coreLoadExecutor);
}
+ } finally {
+ ExecutorUtil.shutdownAndAwaitTermination(coreLoadExecutor);
}
- };
- coreContainerWorkExecutor.submit(shutdownThread);
+ });
} else {
ExecutorUtil.shutdownAndAwaitTermination(coreLoadExecutor);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/core/SolrCore.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java
index 14a4e0f..faef1c8 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCore.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java
@@ -2595,18 +2595,14 @@ public final class SolrCore implements SolrInfoMBean, Closeable {
final String myIndexDir = getIndexDir();
final String coreName = getName();
if (myDirFactory != null && myDataDir != null && myIndexDir != null) {
- Thread cleanupThread = new Thread() {
- @Override
- public void run() {
- log.info("Looking for old index directories to cleanup for core {} in {}", coreName, myDataDir);
- try {
- myDirFactory.cleanupOldIndexDirectories(myDataDir, myIndexDir);
- } catch (Exception exc) {
- log.error("Failed to cleanup old index directories for core "+coreName, exc);
- }
+ Thread cleanupThread = new Thread(() -> {
+ log.info("Looking for old index directories to cleanup for core {} in {}", coreName, myDataDir);
+ try {
+ myDirFactory.cleanupOldIndexDirectories(myDataDir, myIndexDir);
+ } catch (Exception exc) {
+ log.error("Failed to cleanup old index directories for core "+coreName, exc);
}
- };
- cleanupThread.setName("OldIndexDirectoryCleanupThreadForCore-"+coreName);
+ }, "OldIndexDirectoryCleanupThreadForCore-"+coreName);
cleanupThread.setDaemon(true);
cleanupThread.start();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/core/ZkContainer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/ZkContainer.java b/solr/core/src/java/org/apache/solr/core/ZkContainer.java
index 0daafd6..22afe99 100644
--- a/solr/core/src/java/org/apache/solr/core/ZkContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/ZkContainer.java
@@ -174,42 +174,38 @@ public class ZkContainer {
}
public void registerInZk(final SolrCore core, boolean background) {
- Thread thread = new Thread() {
- @Override
- public void run() {
- MDCLoggingContext.setCore(core);
+ Runnable r = () -> {
+ MDCLoggingContext.setCore(core);
+ try {
try {
+ zkController.register(core.getName(), core.getCoreDescriptor());
+ } catch (InterruptedException e) {
+ // Restore the interrupted status
+ Thread.currentThread().interrupt();
+ SolrException.log(log, "", e);
+ } catch (Exception e) {
try {
- zkController.register(core.getName(), core.getCoreDescriptor());
- } catch (InterruptedException e) {
- // Restore the interrupted status
+ zkController.publish(core.getCoreDescriptor(), Replica.State.DOWN);
+ } catch (InterruptedException e1) {
Thread.currentThread().interrupt();
- SolrException.log(log, "", e);
- } catch (Exception e) {
- try {
- zkController.publish(core.getCoreDescriptor(), Replica.State.DOWN);
- } catch (InterruptedException e1) {
- Thread.currentThread().interrupt();
- log.error("", e1);
- } catch (Exception e1) {
- log.error("", e1);
- }
- SolrException.log(log, "", e);
+ log.error("", e1);
+ } catch (Exception e1) {
+ log.error("", e1);
}
- } finally {
- MDCLoggingContext.clear();
+ SolrException.log(log, "", e);
}
+ } finally {
+ MDCLoggingContext.clear();
}
-
};
-
+
if (zkController != null) {
if (background) {
- coreZkRegister.execute(thread);
+ coreZkRegister.execute(r);
} else {
MDCLoggingContext.setCore(core);
try {
- thread.run();
+ r.run();
} finally {
MDCLoggingContext.clear();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java b/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
index 2916c69..cfbd42d 100644
--- a/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
+++ b/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
@@ -754,18 +754,15 @@ public class IndexFetcher {
private void reloadCore() {
final CountDownLatch latch = new CountDownLatch(1);
- new Thread() {
- @Override
- public void run() {
- try {
- solrCore.getCoreDescriptor().getCoreContainer().reload(solrCore.getName());
- } catch (Exception e) {
- LOG.error("Could not reload core ", e);
- } finally {
- latch.countDown();
- }
+ new Thread(() -> {
+ try {
+ solrCore.getCoreDescriptor().getCoreContainer().reload(solrCore.getName());
+ } catch (Exception e) {
+ LOG.error("Could not reload core ", e);
+ } finally {
+ latch.countDown();
}
- }.start();
+ }).start();
try {
latch.await();
} catch (InterruptedException e) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
index 6e1b3a0..2e889b7 100644
--- a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
@@ -275,12 +275,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
return;
}
final SolrParams paramsCopy = new ModifiableSolrParams(solrParams);
- Thread fetchThread = new Thread("explicit-fetchindex-cmd") {
- @Override
- public void run() {
- doFetch(paramsCopy, false);
- }
- };
+ Thread fetchThread = new Thread(() -> doFetch(paramsCopy, false), "explicit-fetchindex-cmd") ;
fetchThread.setDaemon(false);
fetchThread.start();
if (solrParams.getBool(WAIT, false)) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/handler/SnapShooter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/SnapShooter.java b/solr/core/src/java/org/apache/solr/handler/SnapShooter.java
index cc3f69e..4b39097 100644
--- a/solr/core/src/java/org/apache/solr/handler/SnapShooter.java
+++ b/solr/core/src/java/org/apache/solr/handler/SnapShooter.java
@@ -128,12 +128,7 @@ public class SnapShooter {
}
protected void deleteSnapAsync(final ReplicationHandler replicationHandler) {
- new Thread() {
- @Override
- public void run() {
- deleteNamedSnapshot(replicationHandler);
- }
- }.start();
+ new Thread(() -> deleteNamedSnapshot(replicationHandler)).start();
}
public void validateCreateSnapshot() throws IOException {
@@ -170,28 +165,27 @@ public class SnapShooter {
public void createSnapAsync(final IndexCommit indexCommit, final int numberToKeep, Consumer<NamedList> result) {
solrCore.getDeletionPolicy().saveCommitPoint(indexCommit.getGeneration());
- new Thread() { //TODO should use Solr's ExecutorUtil
- @Override
- public void run() {
+ //TODO should use Solr's ExecutorUtil
+ new Thread(() -> {
+ try {
+ result.accept(createSnapshot(indexCommit));
+ } catch (Exception e) {
+ LOG.error("Exception while creating snapshot", e);
+ NamedList snapShootDetails = new NamedList<>();
+ snapShootDetails.add("snapShootException", e.getMessage());
+ result.accept(snapShootDetails);
+ } finally {
+ solrCore.getDeletionPolicy().releaseCommitPoint(indexCommit.getGeneration());
+ }
+ if (snapshotName == null) {
try {
- result.accept(createSnapshot(indexCommit));
- } catch (Exception e) {
- LOG.error("Exception while creating snapshot", e);
- NamedList snapShootDetails = new NamedList<>();
- snapShootDetails.add("snapShootException", e.getMessage());
- result.accept(snapShootDetails);
- } finally {
- solrCore.getDeletionPolicy().releaseCommitPoint(indexCommit.getGeneration());
- }
- if (snapshotName == null) {
- try {
- deleteOldBackups(numberToKeep);
- } catch (IOException e) {
- LOG.warn("Unable to delete old snapshots ", e);
- }
+ deleteOldBackups(numberToKeep);
+ } catch (IOException e) {
+ LOG.warn("Unable to delete old snapshots ", e);
}
}
- }.start();
+ }).start();
+
}
// note: remember to reserve the indexCommit first so it won't get deleted concurrently
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
index 9728597..20418f5 100644
--- a/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
@@ -206,23 +206,20 @@ public class SolrConfigHandler extends RequestHandlerBase implements SolrCoreAwa
log.info("I already have the expected version {} of params", expectedVersion);
}
if (checkStale && req.getCore().getResourceLoader() instanceof ZkSolrResourceLoader) {
- new Thread(SolrConfigHandler.class.getSimpleName() + "-refreshconf") {
- @Override
- public void run() {
- if (!reloadLock.tryLock()) {
- log.info("Another reload is in progress . Not doing anything");
- return;
- }
- try {
- log.info("Trying to update my configs");
- SolrCore.getConfListener(req.getCore(), (ZkSolrResourceLoader) req.getCore().getResourceLoader()).run();
- } catch (Exception e) {
- log.error("Unable to refresh conf ", e);
- } finally {
- reloadLock.unlock();
- }
+ new Thread(() -> {
+ if (!reloadLock.tryLock()) {
+ log.info("Another reload is in progress . Not doing anything");
+ return;
}
- }.start();
+ try {
+ log.info("Trying to update my configs");
+ SolrCore.getConfListener(req.getCore(), (ZkSolrResourceLoader) req.getCore().getResourceLoader()).run();
+ } catch (Exception e) {
+ log.error("Unable to refresh conf ", e);
+ } finally {
+ reloadLock.unlock();
+ }
+ }, SolrConfigHandler.class.getSimpleName() + "-refreshconf").start();
} else {
log.info("checkStale {} , resourceloader {}", checkStale, req.getCore().getResourceLoader().getClass().getName());
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java
index bf89227..fa3bedd 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java
@@ -582,24 +582,20 @@ enum CoreAdminOperation {
public void call(final CallInfo callInfo) throws IOException {
final SolrParams params = callInfo.req.getParams();
log.info("It has been requested that we recover: core="+params.get(CoreAdminParams.CORE));
- Thread thread = new Thread() {
- @Override
- public void run() {
- String cname = params.get(CoreAdminParams.CORE);
- if (cname == null) {
- cname = "";
- }
- try (SolrCore core = callInfo.handler.coreContainer.getCore(cname)) {
- if (core != null) {
- core.getUpdateHandler().getSolrCoreState().doRecovery(callInfo.handler.coreContainer, core.getCoreDescriptor());
- } else {
- SolrException.log(log, "Could not find core to call recovery:" + cname);
- }
+ new Thread(() -> {
+ String cname = params.get(CoreAdminParams.CORE);
+ if (cname == null) {
+ cname = "";
+ }
+ try (SolrCore core = callInfo.handler.coreContainer.getCore(cname)) {
+ if (core != null) {
+ core.getUpdateHandler().getSolrCoreState().doRecovery(callInfo.handler.coreContainer, core.getCoreDescriptor());
+ } else {
+ SolrException.log(log, "Could not find core to call recovery:" + cname);
}
}
- };
+ }).start();
- thread.start();
}
},
REQUESTSYNCSHARD_OP(REQUESTSYNCSHARD) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/util/ConcurrentLFUCache.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/util/ConcurrentLFUCache.java b/solr/core/src/java/org/apache/solr/util/ConcurrentLFUCache.java
index 25b9342..6f2ff2d 100644
--- a/solr/core/src/java/org/apache/solr/util/ConcurrentLFUCache.java
+++ b/solr/core/src/java/org/apache/solr/util/ConcurrentLFUCache.java
@@ -16,10 +16,6 @@
*/
package org.apache.solr.util;
-import org.apache.solr.common.util.Cache;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.lang.invoke.MethodHandles;
import java.lang.ref.WeakReference;
import java.util.LinkedHashMap;
@@ -30,6 +26,10 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.ReentrantLock;
+import org.apache.solr.common.util.Cache;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* A LFU cache implementation based upon ConcurrentHashMap.
* <p>
@@ -139,12 +139,7 @@ public class ConcurrentLFUCache<K, V> implements Cache<K,V> {
// in this method.
if (currentSize > upperWaterMark && !isCleaning) {
if (newThreadForCleanup) {
- new Thread() {
- @Override
- public void run() {
- markAndSweep();
- }
- }.start();
+ new Thread(this::markAndSweep).start();
} else if (cleanupThread != null) {
cleanupThread.wakeThread();
} else {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8db04e34/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java b/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
index 3b02ed6..3b6db53 100644
--- a/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
+++ b/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
@@ -136,12 +136,7 @@ public class ConcurrentLRUCache<K,V> implements Cache<K,V> {
// in this method.
if (currentSize > upperWaterMark && !isCleaning) {
if (newThreadForCleanup) {
- new Thread() {
- @Override
- public void run() {
- markAndSweep();
- }
- }.start();
+ new Thread(this::markAndSweep).start();
} else if (cleanupThread != null){
cleanupThread.wakeThread();
} else {