diff --git a/python/src/com/jetbrains/python/debugger/PyDebugProcess.java b/python/src/com/jetbrains/python/debugger/PyDebugProcess.java index 6c197885bac5..f1ef38a2a38c 100644 --- a/python/src/com/jetbrains/python/debugger/PyDebugProcess.java +++ b/python/src/com/jetbrains/python/debugger/PyDebugProcess.java @@ -544,16 +544,22 @@ public class PyDebugProcess extends XDebugProcess implements IPyDebugProcess, Pr } public void addExceptionBreakpoint(XBreakpoint breakpoint) { - myRegisteredExceptionBreakpoints.put(breakpoint.getProperties().getException(), breakpoint); + ExceptionBreakpointProperties properties = breakpoint.getProperties(); + if (properties == null) return; + + myRegisteredExceptionBreakpoints.put(properties.getException(), breakpoint); if (isConnected()) { - myDebugger.addExceptionBreakpoint(breakpoint.getProperties()); + myDebugger.addExceptionBreakpoint(properties); } } public void removeExceptionBreakpoint(XBreakpoint breakpoint) { - myRegisteredExceptionBreakpoints.remove(breakpoint.getProperties().getException()); + ExceptionBreakpointProperties properties = breakpoint.getProperties(); + if (properties == null) return; + + myRegisteredExceptionBreakpoints.remove(properties.getException()); if (isConnected()) { - myDebugger.removeExceptionBreakpoint(breakpoint.getProperties()); + myDebugger.removeExceptionBreakpoint(properties); } } diff --git a/python/src/com/jetbrains/python/debugger/PyExceptionBreakpointType.java b/python/src/com/jetbrains/python/debugger/PyExceptionBreakpointType.java index c19e1d2f8273..d30aad7eac9c 100644 --- a/python/src/com/jetbrains/python/debugger/PyExceptionBreakpointType.java +++ b/python/src/com/jetbrains/python/debugger/PyExceptionBreakpointType.java @@ -225,18 +225,24 @@ public class PyExceptionBreakpointType @Override public void saveTo(@NotNull XBreakpoint breakpoint) { - breakpoint.getProperties().setNotifyOnTerminate(myNotifyOnTerminateCheckBox.isSelected()); + PyExceptionBreakpointProperties properties = breakpoint.getProperties(); + if (properties == null) return; + + properties.setNotifyOnTerminate(myNotifyOnTerminateCheckBox.isSelected()); - breakpoint.getProperties().setNotifyAlways(myNotifyOnRaiseCheckBox.isSelected() && myAlwaysRadio.isSelected()); - breakpoint.getProperties().setNotifyOnlyOnFirst(myNotifyOnRaiseCheckBox.isSelected() && myOnlyOnFirstRadio.isSelected()); + properties.setNotifyAlways(myNotifyOnRaiseCheckBox.isSelected() && myAlwaysRadio.isSelected()); + properties.setNotifyOnlyOnFirst(myNotifyOnRaiseCheckBox.isSelected() && myOnlyOnFirstRadio.isSelected()); } @Override public void loadFrom(@NotNull XBreakpoint breakpoint) { - myNotifyOnTerminateCheckBox.setSelected(breakpoint.getProperties().isNotifyOnTerminate()); + PyExceptionBreakpointProperties properties = breakpoint.getProperties(); + if (properties == null) return; + + myNotifyOnTerminateCheckBox.setSelected(properties.isNotifyOnTerminate()); - boolean always = breakpoint.getProperties().isNotifyAlways(); - boolean onFirst = breakpoint.getProperties().isNotifyOnlyOnFirst(); + boolean always = properties.isNotifyAlways(); + boolean onFirst = properties.isNotifyOnlyOnFirst(); setNotifyOnRaiseSelected(always || onFirst);