From 1605b0c22a72905734805649d6e8a48c8539fe15 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Thu, 22 Feb 2018 02:10:09 +0300 Subject: [PATCH] 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 Original commit: 140ba0681a9c7cd00d8313e26d3a12a073d0671c --- .../kotlin/jps/incremental/JpsLookupStorage.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsLookupStorage.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsLookupStorage.kt index f67fab4be2f..1b565144a49 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsLookupStorage.kt +++ b/jps/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() {