From 9c9f66e72e82b0fce77dcc4800bc9b7f1eb11ec0 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 5 Sep 2017 16:51:41 +0300 Subject: [PATCH] copy: notify about errors & disable copy classes for package-info.class IDEA-178002: compiled file contains class though source has no classes, thus was copied as file --- .../src/com/intellij/refactoring/copy/CopyClassesHandler.java | 1 + .../refactoring/copy/CopyFilesOrDirectoriesHandler.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/refactoring/copy/CopyClassesHandler.java b/java/java-impl/src/com/intellij/refactoring/copy/CopyClassesHandler.java index f28fe9c2c6ea..96e1c27f8c61 100644 --- a/java/java-impl/src/com/intellij/refactoring/copy/CopyClassesHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/copy/CopyClassesHandler.java @@ -84,6 +84,7 @@ public class CopyClassesHandler extends CopyHandlerDelegateBase { final PsiFile containingFile = navigationElement.getContainingFile(); if (!(containingFile instanceof PsiClassOwner && JavaProjectRootsUtil.isOutsideJavaSourceRoot(containingFile))) { + if (PsiPackage.PACKAGE_INFO_CLS_FILE.equals(containingFile.getName())) continue; PsiClass[] topLevelClasses = getTopLevelClasses(element); if (topLevelClasses == null) { if (element instanceof PsiDirectory) { diff --git a/platform/lang-impl/src/com/intellij/refactoring/copy/CopyFilesOrDirectoriesHandler.java b/platform/lang-impl/src/com/intellij/refactoring/copy/CopyFilesOrDirectoriesHandler.java index d892c7fd5a5d..33c954ce8451 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/copy/CopyFilesOrDirectoriesHandler.java +++ b/platform/lang-impl/src/com/intellij/refactoring/copy/CopyFilesOrDirectoriesHandler.java @@ -228,7 +228,7 @@ public class CopyFilesOrDirectoriesHandler extends CopyHandlerDelegateBase { } final Project project = targetDirectory.getProject(); - if (!CommonRefactoringUtil.checkReadOnlyStatus(project, Collections.singleton(targetDirectory), false)) { + if (!CommonRefactoringUtil.checkReadOnlyStatus(project, Collections.singleton(targetDirectory), true)) { return; }