From 797ade11374ac703bc2b61a62342ba65c63b29df Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Thu, 28 Nov 2013 18:18:37 +0400 Subject: [PATCH] EA-52484 - IOOBE: ConsoleHistoryModel.getHistoryPrev --- .../process/ConsoleHistoryModel.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/execution/process/ConsoleHistoryModel.java b/platform/platform-impl/src/com/intellij/execution/process/ConsoleHistoryModel.java index 7c512b119efe..a054c81fd4bd 100644 --- a/platform/platform-impl/src/com/intellij/execution/process/ConsoleHistoryModel.java +++ b/platform/platform-impl/src/com/intellij/execution/process/ConsoleHistoryModel.java @@ -19,17 +19,19 @@ public class ConsoleHistoryModel implements ModificationTracker { private volatile long myModificationTracker; - public void addToHistory(final String statement) { - final int maxHistorySize = getMaxHistorySize(); + public void addToHistory(String statement) { + if (StringUtil.isEmptyOrSpaces(statement)) return; + + int maxHistorySize = getMaxHistorySize(); synchronized (myHistory) { + myModificationTracker++; myHistoryCursor = -1; - if (!StringUtil.isEmptyOrSpaces(statement)) { - removeFromHistory(statement); - if (myHistory.size() >= maxHistorySize) { - myHistory.removeLast(); - } - myHistory.addFirst(statement); + + myHistory.remove(statement); + if (myHistory.size() >= maxHistorySize) { + myHistory.removeLast(); } + myHistory.addFirst(statement); } } @@ -40,6 +42,7 @@ public class ConsoleHistoryModel implements ModificationTracker { public void removeFromHistory(final String statement) { synchronized (myHistory) { myModificationTracker++; + myHistoryCursor = -1; myHistory.remove(statement); }