diff --git a/plugins/org.eclipse.glsp.server/src/org/eclipse/glsp/server/internal/actions/DefaultActionDispatcher.java b/plugins/org.eclipse.glsp.server/src/org/eclipse/glsp/server/internal/actions/DefaultActionDispatcher.java index 4f26f60c..a877ffa2 100644 --- a/plugins/org.eclipse.glsp.server/src/org/eclipse/glsp/server/internal/actions/DefaultActionDispatcher.java +++ b/plugins/org.eclipse.glsp.server/src/org/eclipse/glsp/server/internal/actions/DefaultActionDispatcher.java @@ -1,5 +1,5 @@ /******************************************************************************** - * Copyright (c) 2019-2023 EclipseSource and others. + * Copyright (c) 2019-2024 EclipseSource and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at @@ -69,9 +69,9 @@ public class DefaultActionDispatcher extends Disposable implements ActionDispatc @Inject protected ClientActionForwarder clientActionForwarder; - protected final String name; + protected String name; - protected final Thread thread; + protected Thread thread; protected final BlockingQueue actionsQueue = new ArrayBlockingQueue<>(100, true); @@ -87,11 +87,23 @@ public class DefaultActionDispatcher extends Disposable implements ActionDispatc protected Provider client; public DefaultActionDispatcher() { + this.initialize(); + } + + protected void initialize() { this.name = getClass().getSimpleName() + " " + COUNT.incrementAndGet(); - this.thread = new Thread(this::runThread); - this.thread.setName(this.name); - this.thread.setDaemon(true); - this.thread.start(); + this.thread = this.createThread(); + this.initializeThread(thread, name); + thread.start(); + } + + protected Thread createThread() { + return new Thread(this::runThread); + } + + protected void initializeThread(final Thread thread, final String name) { + thread.setName(name); + thread.setDaemon(true); } @Override