diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java index c3d919f91166..ba45a1c762cb 100755 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JBallerinaDebugServer.java @@ -1107,8 +1107,7 @@ private void attachToRemoteVM(String hostName, int portName) throws IOException, VirtualMachine attachedVm = executionManager.attach(hostName, portName); context.setDebuggeeVM(new VirtualMachineProxyImpl(attachedVm)); EventRequestManager erm = context.getEventManager(); - ClassPrepareRequest classPrepareRequest = erm.createClassPrepareRequest(); - classPrepareRequest.enable(); + erm.createClassPrepareRequest().enable(); erm.createThreadStartRequest().enable(); erm.createThreadDeathRequest().enable(); eventProcessor.startListening(); diff --git a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JDIEventProcessor.java b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JDIEventProcessor.java index 9aadefad217d..81cc70d4f731 100755 --- a/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JDIEventProcessor.java +++ b/misc/debug-adapter/modules/debug-adapter-core/src/main/java/org/ballerinalang/debugadapter/JDIEventProcessor.java @@ -45,6 +45,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CopyOnWriteArrayList; import static org.ballerinalang.debugadapter.BreakpointProcessor.DynamicBreakpointMode; import static org.ballerinalang.debugadapter.JBallerinaDebugServer.isBalStackFrame; @@ -59,8 +60,8 @@ public class JDIEventProcessor { private final BreakpointProcessor breakpointProcessor; private boolean isRemoteVmAttached = false; private final List stepRequests = new ArrayList<>(); + private static final List virtualThreads = new CopyOnWriteArrayList<>(); private static final Logger LOGGER = LoggerFactory.getLogger(JDIEventProcessor.class); - private static final List virtualThreads = new ArrayList<>(); JDIEventProcessor(ExecutionContext context) { this.context = context; @@ -132,16 +133,13 @@ private void processEvent(EventSet eventSet, Event event) { } else if (event instanceof ThreadStartEvent threadStartEvent) { ThreadReference thread = threadStartEvent.thread(); if (thread.isVirtual()) { - synchronized (virtualThreads) { - virtualThreads.add(thread); - } + virtualThreads.add(thread); + } eventSet.resume(); } else if (event instanceof ThreadDeathEvent threadDeathEvent) { ThreadReference thread = threadDeathEvent.thread(); - synchronized (virtualThreads) { - virtualThreads.remove(thread); - } + virtualThreads.remove(thread); eventSet.resume(); } else { eventSet.resume();