diff --git a/build-common/src/org/jetbrains/kotlin/incremental/LookupStorage.kt b/build-common/src/org/jetbrains/kotlin/incremental/LookupStorage.kt index 9783b7928cd..340b2437324 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/LookupStorage.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/LookupStorage.kt @@ -26,6 +26,7 @@ import org.jetbrains.kotlin.incremental.storage.* import org.jetbrains.kotlin.utils.Printer import org.jetbrains.kotlin.utils.keysToMap import java.io.File +import java.io.IOException import java.util.* @@ -47,11 +48,16 @@ open class LookupStorage(targetDataDir: File) : BasicMapsOwner(targetDataDir) { private var deletedCount: Int = 0 init { - if (countersFile.exists()) { - val lines = countersFile.readLines() - size = lines[0].toInt() - deletedCount = lines[1].toInt() + try { + if (countersFile.exists()) { + val lines = countersFile.readLines() + size = lines[0].toInt() + deletedCount = lines[1].toInt() + } + } catch (e: Exception) { + throw IOException("Could not read $countersFile", e) } + } @Synchronized diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsLookupStorage.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsLookupStorage.kt index f67fab4be2f..1b565144a49 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsLookupStorage.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsLookupStorage.kt @@ -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 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() {