Throw BuildDataCorruptedException when lookup operation cannot be performed

That is expected to force a rebuild (but it does not seem to be the case
in case of parallel build).

  #KT-22535
  #KT-22995
This commit is contained in:
Alexey Tsvetkov
2018-02-22 02:10:09 +03:00
parent 8ab9366ae5
commit 140ba0681a
2 changed files with 18 additions and 6 deletions
@@ -16,16 +16,22 @@
package org.jetbrains.kotlin.jps.incremental
import org.jetbrains.jps.builders.storage.BuildDataCorruptedException
import org.jetbrains.jps.builders.storage.StorageProvider
import org.jetbrains.jps.incremental.storage.BuildDataManager
import org.jetbrains.jps.incremental.storage.StorageOwner
import org.jetbrains.kotlin.incremental.LookupStorage
import java.io.File
import java.io.IOException
@Synchronized
fun <T> BuildDataManager.withLookupStorage(fn: (LookupStorage) -> T): T {
val lookupStorage = getStorage(KotlinDataContainerTarget, JpsLookupStorageProvider)
return fn(lookupStorage)
try {
val lookupStorage = getStorage(KotlinDataContainerTarget, JpsLookupStorageProvider)
return fn(lookupStorage)
} catch (e: IOException) {
throw BuildDataCorruptedException(e)
}
}
private object JpsLookupStorageProvider : StorageProvider<JpsLookupStorage>() {