/** Called when the user deletes a snapshot from the snapshot list. */ public void deleteBreakpoint(@NotNull Breakpoint serverBreakpoint) { if (!Boolean.TRUE.equals(serverBreakpoint.getIsFinalState())) { setStateToDisabled(serverBreakpoint); } process.getStateController().deleteBreakpointAsync(serverBreakpoint.getId()); }
@Override public void unregisterBreakpoint( @NotNull XLineBreakpoint<CloudLineBreakpointProperties> ideBreakpoint, boolean temporary) { // If the state was set to disabled as a result of a server update, // then we do not need to update the server side. if (!ideBreakpoint.getProperties().isDisabledByServer()) { String breakpointId = ideBreakpoint.getUserData(CLOUD_ID); if (!Strings.isNullOrEmpty(breakpointId)) { process.getStateController().deleteBreakpointAsync(breakpointId); } else { LOG.warn("could not delete breakpoint because it was not added through the cloud handler."); } } // reset this flag: either it has been disabled by the server or the client has deleted it, in // both cases we need to add it again, if it is re-enabled ideBreakpoint.getProperties().setAddedOnServer(false); } }
@SuppressWarnings("unchecked") public void testUnregisterBreakpoint_shouldSetAddedOnServerToFalseAfterHitOnBackend() throws Exception { XLineBreakpointImpl breakpoint = registerMockBreakpoint( psiJavaFile, NO_WATCHES, NO_CONDITION, 13, "fileName", "packageName", false, "12abc"); handler.setStateToDisabled(new Breakpoint().setId("12abc")); assertNotNull(breakpoint.getProperties()); assertTrue(((CloudLineBreakpointProperties) breakpoint.getProperties()).isAddedOnServer()); handler.unregisterBreakpoint(breakpoint, false); assertFalse(((CloudLineBreakpointProperties) breakpoint.getProperties()).isAddedOnServer()); verify(stateController, never()).deleteBreakpointAsync("12abc"); }
@SuppressWarnings("unchecked") public void testUnregisterBreakpoint_shouldSetAddedOnServerToFalseAfterClientDisablesBp() throws Exception { XLineBreakpointImpl breakpoint = registerMockBreakpoint( psiJavaFile, NO_WATCHES, NO_CONDITION, 13, "fileName", "packageName", false, "12abc"); assertNotNull(breakpoint.getProperties()); assertTrue(((CloudLineBreakpointProperties) breakpoint.getProperties()).isAddedOnServer()); handler.unregisterBreakpoint(breakpoint, false); assertFalse(((CloudLineBreakpointProperties) breakpoint.getProperties()).isAddedOnServer()); verify(stateController).deleteBreakpointAsync("12abc"); }