void (Requestor requestor) { DebuggerManagerThreadImpl.assertIsManagerThread(); myRequestWarnings.remove(requestor); if (!myDebugProcess.isAttached()) { return; } final Set<EventRequest> requests = myRequestorToBelongedRequests.remove(requestor); if (requests == null) { return; } for (final EventRequest request : requests) { try { final Requestor targetRequestor = (Requestor)request.getProperty(REQUESTOR); if (targetRequestor != requestor) { // the same request may be assigned to more than one requestor, but // there is only one 'targetRequestor' for each request, so if target requestor and requestor being processed are different, // should clear also the mapping targetRequestor->request Set<EventRequest> allTargetRequestorRequests = myRequestorToBelongedRequests.get(targetRequestor); if (allTargetRequestorRequests != null) { allTargetRequestorRequests.remove(request); if (allTargetRequestorRequests.isEmpty()) { myRequestorToBelongedRequests.remove(targetRequestor); } } } DebuggerUtilsAsync.deleteEventRequest(myEventRequestManager, request); } catch (InvalidRequestStateException ignored) { // request is already deleted } catch (InternalException e) { if (e.errorCode() == JvmtiError.NOT_FOUND) { //event request not found //there could be no requests after hotswap } else { LOG.info(e); } } } }