IDEA-176040 IDE throws exception: Error while loading external changes:null. Project will be reloaded

This commit is contained in:
Vladimir Krivosheev
2017-09-01 18:11:11 +02:00
parent 3a2a54275f
commit fa245076c6
3 changed files with 14 additions and 8 deletions
@@ -30,7 +30,7 @@ fun <T> deserializeState(stateElement: Element?, stateClass: Class<T>, mergeInto
stateClass == Element::class.java -> stateElement as T?
JDOMExternalizable::class.java.isAssignableFrom(stateClass) -> {
if (mergeInto != null) {
LOG.error("State is ${stateClass.name}, merge into is ${mergeInto.toString()}, state element text is ${JDOMUtil.writeElement(stateElement)}")
LOG.error("State is ${stateClass.name}, merge into is $mergeInto, state element text is ${JDOMUtil.writeElement(stateElement)}")
}
val t = ReflectionUtil.newInstance(stateClass)
@@ -335,9 +335,11 @@ public class XDebuggerManagerImpl extends XDebuggerManager
}
@Override
public void loadState(final XDebuggerState state) {
myBreakpointManager.loadState(state.myBreakpointManagerState);
myWatchesManager.loadState(state.myWatchesManagerState);
public void loadState(@NotNull XDebuggerState state) {
XBreakpointManagerImpl.BreakpointManagerState breakpointManagerState = state.myBreakpointManagerState;
myBreakpointManager.loadState(breakpointManagerState == null ? new XBreakpointManagerImpl.BreakpointManagerState() : breakpointManagerState);
XDebuggerWatchesManager.WatchesManagerState managerState = state.myWatchesManagerState;
myWatchesManager.loadState(managerState == null ? new XDebuggerWatchesManager.WatchesManagerState() : managerState);
}
public void showExecutionPosition() {
@@ -346,32 +348,36 @@ public class XDebuggerManagerImpl extends XDebuggerManager
@SuppressWarnings("UnusedDeclaration")
public static class XDebuggerState {
@Nullable
private XBreakpointManagerImpl.BreakpointManagerState myBreakpointManagerState;
@Nullable
private XDebuggerWatchesManager.WatchesManagerState myWatchesManagerState;
public XDebuggerState() {
}
public XDebuggerState(final XBreakpointManagerImpl.BreakpointManagerState breakpointManagerState, XDebuggerWatchesManager.WatchesManagerState watchesManagerState) {
public XDebuggerState(@Nullable XBreakpointManagerImpl.BreakpointManagerState breakpointManagerState, @Nullable XDebuggerWatchesManager.WatchesManagerState watchesManagerState) {
myBreakpointManagerState = breakpointManagerState;
myWatchesManagerState = watchesManagerState;
}
@Nullable
@Property(surroundWithTag = false)
public XBreakpointManagerImpl.BreakpointManagerState getBreakpointManagerState() {
return myBreakpointManagerState;
}
public void setBreakpointManagerState(final XBreakpointManagerImpl.BreakpointManagerState breakpointManagerState) {
public void setBreakpointManagerState(@Nullable final XBreakpointManagerImpl.BreakpointManagerState breakpointManagerState) {
myBreakpointManagerState = breakpointManagerState;
}
@Nullable
@Property(surroundWithTag = false)
public XDebuggerWatchesManager.WatchesManagerState getWatchesManagerState() {
return myWatchesManagerState;
}
public void setWatchesManagerState(XDebuggerWatchesManager.WatchesManagerState watchesManagerState) {
public void setWatchesManagerState(@Nullable XDebuggerWatchesManager.WatchesManagerState watchesManagerState) {
myWatchesManagerState = watchesManagerState;
}
}
@@ -387,7 +387,7 @@ public class XBreakpointManagerImpl implements XBreakpointManager, PersistentSta
}
@Override
public void loadState(final BreakpointManagerState state) {
public void loadState(@NotNull BreakpointManagerState state) {
myBreakpointsDialogSettings = state.getBreakpointsDialogProperties();
myAllBreakpoints.clear();