search/replace: copy model before adding to update queue to prevent race condition

This commit is contained in:
andrey zaytsev
2011-03-25 08:48:01 +03:00
parent 61d96927db
commit a1fd6b5d48
@@ -133,10 +133,11 @@ public class LivePreviewControllerBase implements LivePreview.Delegate, FindUtil
myUserActivityDelay = userActivityDelay;
}
public void updateInBackground(final FindModel findModel, final boolean allowedToChangedEditorSelection) {
public void updateInBackground(FindModel findModel, final boolean allowedToChangedEditorSelection) {
myLivePreviewAlarm.cancelAllRequests();
if (findModel == null) return;
final boolean unitTestMode = ApplicationManager.getApplication().isUnitTestMode();
final FindModel copy = (FindModel)findModel.clone();
Runnable request = new Runnable() {
@Override
public void run() {
@@ -151,7 +152,7 @@ public class LivePreviewControllerBase implements LivePreview.Delegate, FindUtil
} else {
ApplicationManager.getApplication().invokeAndWait(denyReplace, ModalityState.NON_MODAL);
}
mySearchResults.updateThreadSafe(findModel, allowedToChangedEditorSelection, null);
mySearchResults.updateThreadSafe(copy, allowedToChangedEditorSelection, null);
}
};
if (unitTestMode) {