When I try to pick a breakpoint on any executive line of any method of my project, and I know that this method should be invoked for example 4 times, Intellij skips this breakpoint for 3 times and stops only on the last invocation. Method example (Endpoint class):
@PayloadRoot(localPart = "getRelatedCIs", namespace = "http://www.projectname.com/ws")
public GetRelatedCIsResponse getRelatedCIs(GetRelatedCIs request) throws DataAccessException, WebServiceException {
GetRelatedCIsResponse response = new GetRelatedCIsResponse();
PageData page = request.getPageData();
List<ConfigItemReference> ciRefs = translateCiRefList(request.getCiRef());
RelatedCiResult relatedCis = configItemService.getRelatedCis(ciRefs, request.getRequestedType(),
new Page(page.getPageNumber(), page.getPageSize(), page.getTotal()), request.getSort());
response.getCis().addAll(relatedCis.getCis());
page.setTotal(relatedCis.getPageInfo().getTotal());
page.setPageSize(relatedCis.getPageInfo().getPageSize());
response.setPageData(page);
System.out.println("****************************INVOCATION***************************" + request.getRequestedType());
return response;
}
Breakpoint is picked on the first line of the method. When program is stopped, there are already printed in console 3 lines ****************************INVOCATION***************************
In the left bottom part of the screen appears green notification:
Skipped breakpoint at %code reference% because it happened inside debugger evaluation
But I don't use any Evaluate Expression functionality when I perform debugging. Also there are my VM options of Run/Debug Configurations:
-XX:MaxPermSize=512m
-Xms256m
-Xmx1024m
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=9004
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
The problem is described in IDEA-43728 and in the breakpoints documentation.
In short, to avoid it use suspend thread (not all) breakpoint policy.