From 296c7a16d3108e1ef6792fa7f81872e477c42adc Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Thu, 16 Jun 2016 12:54:26 +0300 Subject: [PATCH] Copy: Filter out invalid elements to prevent PsiInvalidElementAccessException #KT-12747 Fixed (cherry picked from commit 4a0a440) --- ChangeLog.md | 1 + .../kotlin/idea/refactoring/copy/CopyKotlinFileHandler.kt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index 321a68cbd21..0cf5a1b24df 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -248,6 +248,7 @@ - [`KT-10687`](https://youtrack.jetbrains.com/issue/KT-10687) Qualify property references to avoid shadowing by parameters - [`KT-12543`](https://youtrack.jetbrains.com/issue/KT-12543) Qualify property references with 'this' to avoid renaming conflicts - [`KT-12732`](https://youtrack.jetbrains.com/issue/KT-12732) Copy default parameter values to overriding function which is renamed by Java reference while its base function is unchanged +- [`KT-12747`](https://youtrack.jetbrains.com/issue/KT-12747) Fix exception on file copy #### Java to Kotlin converter diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/copy/CopyKotlinFileHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/copy/CopyKotlinFileHandler.kt index 5a954f38730..6031f8a9c54 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/copy/CopyKotlinFileHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/copy/CopyKotlinFileHandler.kt @@ -27,7 +27,7 @@ class CopyKotlinFileHandler : CopyHandlerDelegateBase() { private fun adjustElements(elements: Array): Array? { return elements - .map { it.containingFile as? KtFile ?: return null } + .map { (if (it.isValid) it.containingFile as? KtFile else null) ?: return null } .toTypedArray() }