From 622ca84e2cee93f166180dfb5ba8c06dcf736a98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yann=20C=C3=A9bron?= Date: Fri, 9 Mar 2018 11:51:56 +0100 Subject: [PATCH] [java] JavaClassReferenceSet.canReferencePackage: avoid SIOOBE --- .../reference/impl/providers/JavaClassReferenceSet.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReferenceSet.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReferenceSet.java index d7ed07782483..818ab7101844 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReferenceSet.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReferenceSet.java @@ -18,6 +18,7 @@ package com.intellij.psi.impl.source.resolve.reference.impl.providers; import com.intellij.codeInsight.daemon.JavaErrorMessages; import com.intellij.lang.xml.XMLLanguage; import com.intellij.openapi.util.TextRange; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiReference; import com.intellij.psi.util.PsiUtil; @@ -246,7 +247,8 @@ public class JavaClassReferenceSet { public boolean canReferencePackage(int index) { if (index == myReferences.length - 1) return false; String text = getElement().getText(); - return text.charAt(myReferences[index].getRangeInElement().getEndOffset()) != DOLLAR; + int endOffset = myReferences[index].getRangeInElement().getEndOffset(); + return !StringUtil.isChar(text, endOffset, DOLLAR); } public boolean isSoft() {