summaryrefslogtreecommitdiff
path: root/plugins/java-i18n/src/com/intellij/codeInspection/duplicateStringLiteral/DuplicateStringLiteralInspection.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/java-i18n/src/com/intellij/codeInspection/duplicateStringLiteral/DuplicateStringLiteralInspection.java')
-rw-r--r--plugins/java-i18n/src/com/intellij/codeInspection/duplicateStringLiteral/DuplicateStringLiteralInspection.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/plugins/java-i18n/src/com/intellij/codeInspection/duplicateStringLiteral/DuplicateStringLiteralInspection.java b/plugins/java-i18n/src/com/intellij/codeInspection/duplicateStringLiteral/DuplicateStringLiteralInspection.java
index ce785c3df593..4efa0639e645 100644
--- a/plugins/java-i18n/src/com/intellij/codeInspection/duplicateStringLiteral/DuplicateStringLiteralInspection.java
+++ b/plugins/java-i18n/src/com/intellij/codeInspection/duplicateStringLiteral/DuplicateStringLiteralInspection.java
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.daemon.GroupNames;
import com.intellij.codeInspection.*;
import com.intellij.codeInspection.ex.BaseLocalInspectionTool;
import com.intellij.codeInspection.i18n.JavaI18nUtil;
+import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.progress.ProgressIndicator;
@@ -133,13 +134,19 @@ public class DuplicateStringLiteralInspection extends BaseLocalInspectionTool {
}
if (resultFiles.isEmpty()) return;
}
+
if (resultFiles == null || resultFiles.isEmpty()) return;
final List<PsiExpression> foundExpr = new ArrayList<PsiExpression>();
+
for (PsiFile file : resultFiles) {
progress.checkCanceled();
- CharSequence text = file.getViewProvider().getContents();
+ FileViewProvider viewProvider = file.getViewProvider();
+ // important: skip non-java files with given word in literal (IDEA-126201)
+ if (viewProvider.getPsi(JavaLanguage.INSTANCE) == null) continue;
+ CharSequence text = viewProvider.getContents();
final char[] textArray = CharArrayUtil.fromSequenceWithoutCopying(text);
StringSearcher searcher = new StringSearcher(stringToFind, true, true);
+
for (int offset = LowLevelSearchUtil.searchWord(text, textArray, 0, text.length(), searcher, progress);
offset >= 0;
offset = LowLevelSearchUtil.searchWord(text, textArray, offset + searcher.getPattern().length(), text.length(), searcher, progress)