void (@NotNull DebugProcessImpl debugProcess, @NotNull ReferenceType classType) { boolean hasMethod = false; for (Method method : classType.allMethods()) { if (isMethodMatch(method, debugProcess)) { hasMethod = true; break; } } if (!hasMethod) { debugProcess.getRequestsManager().setInvalid( this, JavaDebuggerBundle.message("error.invalid.breakpoint.method.not.found", classType.name()) ); return; } RequestManagerImpl requestManager = debugProcess.getRequestsManager(); if (isWatchEntry()) { MethodEntryRequest entryRequest = findRequest(debugProcess, MethodEntryRequest.class, this); if (entryRequest == null) { entryRequest = requestManager.createMethodEntryRequest(this); } else { entryRequest.disable(); } //entryRequest.addClassFilter(myClassQualifiedName); // use addClassFilter(ReferenceType) in order to stop on subclasses also! entryRequest.addClassFilter(classType); debugProcess.getRequestsManager().enableRequest(entryRequest); } if (isWatchExit()) { MethodExitRequest exitRequest = findRequest(debugProcess, MethodExitRequest.class, this); if (exitRequest == null) { exitRequest = requestManager.createMethodExitRequest(this); } else { exitRequest.disable(); } //exitRequest.addClassFilter(myClassQualifiedName); exitRequest.addClassFilter(classType); debugProcess.getRequestsManager().enableRequest(exitRequest); } }