mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
lst: ensure that target changelist exists when updating base revision
EA-115966 - assert: ChangeListWorker.getDataByIdVerify
This commit is contained in:
@@ -184,7 +184,7 @@ class DocumentTracker : Disposable {
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateFrozenContentIfNeeded() {
|
||||
fun updateFrozenContentIfNeeded() {
|
||||
// ensure blocks are up to date
|
||||
updateFrozenContentIfNeeded(Side.LEFT)
|
||||
updateFrozenContentIfNeeded(Side.RIGHT)
|
||||
|
||||
@@ -94,6 +94,11 @@ abstract class LineStatusTrackerBase<R : Range> {
|
||||
|
||||
@CalledInAwt
|
||||
fun setBaseRevision(vcsContent: CharSequence) {
|
||||
setBaseRevision(vcsContent, null)
|
||||
}
|
||||
|
||||
@CalledInAwt
|
||||
protected fun setBaseRevision(vcsContent: CharSequence, beforeUnfreeze: (() -> Unit)?) {
|
||||
application.assertIsDispatchThread()
|
||||
if (isReleased) return
|
||||
|
||||
@@ -101,6 +106,8 @@ abstract class LineStatusTrackerBase<R : Range> {
|
||||
updateDocument(Side.LEFT) {
|
||||
vcsDocument.setText(vcsContent)
|
||||
}
|
||||
|
||||
beforeUnfreeze?.invoke()
|
||||
}
|
||||
|
||||
if (!isInitialized) {
|
||||
|
||||
@@ -144,15 +144,21 @@ class PartialLocalLineStatusTracker(project: Project,
|
||||
|
||||
@CalledInAwt
|
||||
fun setBaseRevision(vcsContent: CharSequence, changelistId: String?) {
|
||||
currentMarker = if (changelistId != null) ChangeListMarker(changelistId) else null
|
||||
try {
|
||||
setBaseRevision(vcsContent)
|
||||
dropExistingUndoActions()
|
||||
}
|
||||
finally {
|
||||
currentMarker = null
|
||||
setBaseRevision(vcsContent) {
|
||||
if (changelistId != null) {
|
||||
changeListManager.executeUnderDataLock {
|
||||
if (changeListManager.getChangeList(changelistId) != null) {
|
||||
documentTracker.writeLock {
|
||||
currentMarker = ChangeListMarker(changelistId)
|
||||
documentTracker.updateFrozenContentIfNeeded()
|
||||
currentMarker = null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dropExistingUndoActions()
|
||||
if (isValid()) eventDispatcher.multicaster.onBecomingValid(this)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user