Skip to content

Commit d567066

Browse files
authored
minor: don't create an unused thread (#2514)
1 parent 0da7a78 commit d567066

File tree

1 file changed

+28
-31
lines changed

1 file changed

+28
-31
lines changed

solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import org.apache.solr.common.params.CoreAdminParams.CoreAdminAction;
3434
import org.apache.solr.common.params.ModifiableSolrParams;
3535
import org.apache.solr.common.util.NamedList;
36-
import org.apache.solr.common.util.SuppressForbidden;
3736
import org.apache.solr.core.CoreContainer;
3837
import org.apache.solr.core.CoreDescriptor;
3938
import org.apache.solr.core.SolrCore;
@@ -346,39 +345,37 @@ public void requestRecoveries() {
346345
}
347346
}
348347

349-
@SuppressForbidden(reason = "Passed to an executor with a naming thread factory")
350348
private void requestRecovery(
351349
final ZkNodeProps leaderProps, final String baseUrl, final String coreName)
352350
throws SolrServerException, IOException {
353-
Thread thread =
354-
new Thread(
355-
() -> {
356-
if (isClosed) {
357-
log.info("We have been closed, won't request recovery");
358-
return;
359-
}
360-
RequestRecovery recoverRequestCmd = new RequestRecovery();
361-
recoverRequestCmd.setAction(CoreAdminAction.REQUESTRECOVERY);
362-
recoverRequestCmd.setCoreName(coreName);
363-
try (SolrClient client =
364-
new Http2SolrClient.Builder(baseUrl)
365-
.withHttpClient(solrClient)
366-
.withConnectionTimeout(30000, TimeUnit.MILLISECONDS)
367-
.withIdleTimeout(120000, TimeUnit.MILLISECONDS)
368-
.build()) {
369-
client.request(recoverRequestCmd);
370-
} catch (Throwable t) {
371-
log.error(
372-
"{}: Could not tell a replica to recover",
373-
ZkCoreNodeProps.getCoreUrl(leaderProps),
374-
t);
375-
if (t instanceof Error) {
376-
throw (Error) t;
377-
}
378-
}
379-
});
380-
thread.setDaemon(true);
381-
updateExecutor.execute(thread);
351+
Runnable runnable =
352+
() -> {
353+
if (isClosed) {
354+
log.info("We have been closed, won't request recovery");
355+
return;
356+
}
357+
RequestRecovery recoverRequestCmd = new RequestRecovery();
358+
recoverRequestCmd.setAction(CoreAdminAction.REQUESTRECOVERY);
359+
recoverRequestCmd.setCoreName(coreName);
360+
try (SolrClient client =
361+
new Http2SolrClient.Builder(baseUrl)
362+
.withHttpClient(solrClient)
363+
.withConnectionTimeout(30000, TimeUnit.MILLISECONDS)
364+
.withIdleTimeout(120000, TimeUnit.MILLISECONDS)
365+
.build()) {
366+
client.request(recoverRequestCmd);
367+
} catch (Throwable t) {
368+
log.error(
369+
"{}: Could not tell a replica to recover",
370+
ZkCoreNodeProps.getCoreUrl(leaderProps),
371+
t);
372+
if (t instanceof Error) {
373+
throw (Error) t;
374+
}
375+
}
376+
};
377+
378+
updateExecutor.execute(runnable);
382379
}
383380

384381
public static ModifiableSolrParams params(String... params) {

0 commit comments

Comments
 (0)