Skip to content

Commit b64ce7a

Browse files
authored
Merge pull request #981: [direct-ingest-server] explicitly set context classloader for ingest executor threads
2 parents 143ba3c + 8804729 commit b64ce7a

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

direct/ingest-server/src/main/java/cz/o2/proxima/direct/server/IngestServer.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import java.util.concurrent.ScheduledThreadPoolExecutor;
5151
import java.util.concurrent.ThreadPoolExecutor;
5252
import java.util.concurrent.TimeUnit;
53+
import java.util.concurrent.atomic.AtomicInteger;
5354
import java.util.function.Consumer;
5455
import javax.annotation.Nullable;
5556
import lombok.Getter;
@@ -203,8 +204,20 @@ static Rpc.Status status(String uuid, int status, String message) {
203204
protected Executor createExecutor(Config cfg) {
204205
int numThreads =
205206
cfg.hasPath(CFG_NUM_THREADS) ? cfg.getInt(CFG_NUM_THREADS) : DEFAULT_NUM_THREADS;
207+
ClassLoader loader = Thread.currentThread().getContextClassLoader();
208+
AtomicInteger id = new AtomicInteger();
206209
return new ThreadPoolExecutor(
207-
numThreads, numThreads, 10, TimeUnit.SECONDS, new LinkedBlockingDeque<>());
210+
numThreads,
211+
numThreads,
212+
10,
213+
TimeUnit.SECONDS,
214+
new LinkedBlockingDeque<>(),
215+
runnable -> {
216+
Thread res = new Thread(runnable);
217+
res.setContextClassLoader(loader);
218+
res.setName("IngestServerThread-" + id.incrementAndGet());
219+
return res;
220+
});
208221
}
209222

210223
/** Run the server. */

0 commit comments

Comments
 (0)