From 78af866f5a2e20bfcb6bda1802443385d8f80c1a Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Tue, 2 Jun 2015 22:23:51 +0300 Subject: [PATCH] kapt: Do not fail if annotations.txt file does not exist --- .../kotlin/annotation/AnnotationProcessorWrapper.kt | 9 +++++++-- .../kotlin/annotation/KotlinAnnotationProvider.kt | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-annotation-processing/src/main/kotlin/org/jetbrains/kotlin/annotation/AnnotationProcessorWrapper.kt b/libraries/tools/kotlin-annotation-processing/src/main/kotlin/org/jetbrains/kotlin/annotation/AnnotationProcessorWrapper.kt index be5fc20daeb..2b6fae96b1c 100644 --- a/libraries/tools/kotlin-annotation-processing/src/main/kotlin/org/jetbrains/kotlin/annotation/AnnotationProcessorWrapper.kt +++ b/libraries/tools/kotlin-annotation-processing/src/main/kotlin/org/jetbrains/kotlin/annotation/AnnotationProcessorWrapper.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.annotation +import java.io.IOException import javax.annotation.processing.* import javax.lang.model.SourceVersion import javax.lang.model.element.AnnotationMirror @@ -75,8 +76,12 @@ public abstract class AnnotationProcessorWrapper( return } - val annotationsTxt = processingEnv.getFiler().getResource(StandardLocation.CLASS_PATH, "", "annotations.$taskQualifier.txt") - kotlinAnnotationsProvider = FileObjectKotlinAnnotationProvider(annotationsTxt) + try { + val annotationsTxt = processingEnv.getFiler().getResource(StandardLocation.CLASS_PATH, "", "annotations.$taskQualifier.txt") + kotlinAnnotationsProvider = FileObjectKotlinAnnotationProvider(annotationsTxt) + } catch (e: IOException) { + kotlinAnnotationsProvider = EmptyKotlinAnnotationsProvider() + } processor.init(processingEnv) } diff --git a/libraries/tools/kotlin-annotation-processing/src/main/kotlin/org/jetbrains/kotlin/annotation/KotlinAnnotationProvider.kt b/libraries/tools/kotlin-annotation-processing/src/main/kotlin/org/jetbrains/kotlin/annotation/KotlinAnnotationProvider.kt index 7b2e58a0a09..02600cd64f9 100644 --- a/libraries/tools/kotlin-annotation-processing/src/main/kotlin/org/jetbrains/kotlin/annotation/KotlinAnnotationProvider.kt +++ b/libraries/tools/kotlin-annotation-processing/src/main/kotlin/org/jetbrains/kotlin/annotation/KotlinAnnotationProvider.kt @@ -104,4 +104,8 @@ public abstract class KotlinAnnotationProvider { public class FileObjectKotlinAnnotationProvider(val annotationsFileObject: FileObject): KotlinAnnotationProvider() { override val serializedAnnotations: String get() = annotationsFileObject.getCharContent(false).toString() +} + +public class EmptyKotlinAnnotationsProvider : KotlinAnnotationProvider() { + override val serializedAnnotations = "" } \ No newline at end of file