mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java] move classes in 'java.impl' inheriting from classes from 'java.analysis.impl' to a different package (IJPL-149126)
This is needed to avoid IllegalAccessError if 'java.impl' and 'java.analysis.impl' are loaded by different classloaders. For example, EntryPointsManagerImpl inherits from EntryPointsManagerBase, and an anonymous class inside EntryPointsManagerImpl refers to a protected field EntryPointsManagerBase.myWriteAnnotations. Since the anonymous doesn't inherit from EntryPointsManagerBase, such access works via package-private visibility because both classes are located in the same package and loaded by the same classloader. Moving EntryPointsManagerImpl to a different package forces javac to generate an accessor method in EntryPointsManagerImpl and use it from the anonymous class to access the protected field. GitOrigin-RevId: 8c7b92c473f490f48f4226f0ed49339ef83cd4c3
This commit is contained in:
committed by
intellij-monorepo-bot
parent
420223fa77
commit
52ee8d5d0f
-19
@@ -3925,17 +3925,6 @@
|
||||
<inspection_tool class="SuspiciousPackagePrivateAccess" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<scope name="Tests" level="WARNING" enabled="false" />
|
||||
<option name="MODULES_SETS_LOADED_TOGETHER">
|
||||
<modules-set>
|
||||
<module name="intellij.java.impl" />
|
||||
<module name="intellij.java.analysis.impl" />
|
||||
<module name="intellij.java.execution" />
|
||||
<module name="intellij.java" />
|
||||
<module name="intellij.java.psi" />
|
||||
<module name="intellij.java.ui" />
|
||||
<module name="intellij.java.psi.impl" />
|
||||
<module name="intellij.java.analysis" />
|
||||
<module name="intellij.java.impl.refactorings" />
|
||||
</modules-set>
|
||||
<modules-set>
|
||||
<module name="intellij.android.profilers.ui" />
|
||||
<module name="intellij.android.profilers" />
|
||||
@@ -3944,14 +3933,6 @@
|
||||
<module name="intellij.android.wizard" />
|
||||
<module name="intellij.android.wizard.model" />
|
||||
</modules-set>
|
||||
<modules-set>
|
||||
<module name="intellij.java.compiler.impl" />
|
||||
<module name="intellij.java.compiler" />
|
||||
</modules-set>
|
||||
<modules-set>
|
||||
<module name="intellij.java.compiler.instrumentationUtil.java8" />
|
||||
<module name="intellij.java.compiler.instrumentationUtil" />
|
||||
</modules-set>
|
||||
</option>
|
||||
</inspection_tool>
|
||||
<inspection_tool class="SuspiciousReturnByteInputStream" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
|
||||
@@ -534,11 +534,11 @@
|
||||
<localInspection groupPath="Java" language="JAVA" suppressId="OverlyComplexAnonymousInnerClass" shortName="AnonymousClassComplexity"
|
||||
bundle="messages.InspectionGadgetsBundle" key="overly.complex.anonymous.inner.class.display.name"
|
||||
groupBundle="messages.InspectionsBundle" groupKey="group.names.class.metrics" enabledByDefault="false" level="WARNING"
|
||||
implementationClass="com.siyeh.ig.classmetrics.AnonymousClassComplexityInspection"/>
|
||||
implementationClass="com.siyeh.ig.classmetrics.impl.AnonymousClassComplexityInspection"/>
|
||||
<localInspection groupPath="Java" language="JAVA" suppressId="AnonymousInnerClassWithTooManyMethods" shortName="AnonymousClassMethodCount"
|
||||
bundle="messages.InspectionGadgetsBundle" key="anonymous.inner.class.with.too.many.methods.display.name"
|
||||
groupBundle="messages.InspectionsBundle" groupKey="group.names.class.metrics" enabledByDefault="false" level="WARNING"
|
||||
implementationClass="com.siyeh.ig.classmetrics.AnonymousClassMethodCountInspection"/>
|
||||
implementationClass="com.siyeh.ig.classmetrics.impl.AnonymousClassMethodCountInspection"/>
|
||||
<localInspection groupPath="Java" language="JAVA" suppressId="OverlyComplexClass" shortName="ClassComplexity" bundle="messages.InspectionGadgetsBundle"
|
||||
key="overly.complex.class.display.name" groupBundle="messages.InspectionsBundle" groupKey="group.names.class.metrics"
|
||||
enabledByDefault="false" level="WARNING" implementationClass="com.siyeh.ig.classmetrics.ClassComplexityInspection"/>
|
||||
@@ -1480,7 +1480,7 @@
|
||||
<localInspection groupPath="Java" language="JAVA" suppressId="ConstructorWithTooManyParameters" shortName="ParametersPerConstructor"
|
||||
bundle="messages.InspectionGadgetsBundle" key="parameters.per.constructor.display.name"
|
||||
groupBundle="messages.InspectionsBundle" groupKey="group.names.method.metrics" enabledByDefault="false" level="WARNING"
|
||||
implementationClass="com.siyeh.ig.methodmetrics.ParametersPerConstructorInspection"/>
|
||||
implementationClass="com.siyeh.ig.methodmetrics.impl.ParametersPerConstructorInspection"/>
|
||||
<localInspection groupPath="Java" language="JAVA" suppressId="OverlyComplexMethod" shortName="CyclomaticComplexity" bundle="messages.InspectionGadgetsBundle"
|
||||
key="cyclomatic.complexity.display.name" groupBundle="messages.InspectionsBundle" groupKey="group.names.method.metrics"
|
||||
enabledByDefault="false" level="WARNING"
|
||||
|
||||
@@ -416,7 +416,7 @@
|
||||
<projectService serviceInterface="com.intellij.testIntegration.TestFailedLineManager"
|
||||
serviceImplementation="com.intellij.execution.codeInspection.TestFailedLineManagerImpl"/>
|
||||
<projectService serviceInterface="com.intellij.codeInspection.ex.EntryPointsManager"
|
||||
serviceImplementation="com.intellij.codeInspection.ex.EntryPointsManagerImpl"/>
|
||||
serviceImplementation="com.intellij.codeInspection.ex.impl.EntryPointsManagerImpl"/>
|
||||
<projectService serviceInterface="com.intellij.openapi.roots.JavaProjectModelModificationService"
|
||||
serviceImplementation="com.intellij.openapi.roots.impl.JavaProjectModelModificationServiceImpl"/>
|
||||
<projectService serviceInterface="com.intellij.refactoring.listeners.JavaRefactoringListenerManager"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
package com.intellij.codeInsight.options;
|
||||
|
||||
import com.intellij.codeInsight.NullableNotNullDialog;
|
||||
import com.intellij.codeInspection.ex.EntryPointsManagerImpl;
|
||||
import com.intellij.codeInspection.ex.impl.EntryPointsManagerImpl;
|
||||
import com.intellij.codeInspection.ui.CustomComponentExtensionWithSwingRenderer;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.packageDependencies.ui.DependencyConfigurable;
|
||||
|
||||
+3
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInspection.ex;
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInspection.ex.impl;
|
||||
|
||||
import com.intellij.codeInspection.ex.EntryPointsManagerBase;
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.ide.util.ClassFilter;
|
||||
import com.intellij.ide.util.TreeClassChooser;
|
||||
+3
-2
@@ -1,8 +1,9 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInspection.ex;
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInspection.ex.impl;
|
||||
|
||||
import com.intellij.codeInsight.AnnotationTargetUtil;
|
||||
import com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerEx;
|
||||
import com.intellij.codeInspection.ex.EntryPointsManagerBase;
|
||||
import com.intellij.codeInspection.util.SpecialAnnotationsUtil;
|
||||
import com.intellij.java.JavaBundle;
|
||||
import com.intellij.openapi.components.PersistentStateComponent;
|
||||
+3
-1
@@ -13,12 +13,14 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.siyeh.ig.classmetrics;
|
||||
package com.siyeh.ig.classmetrics.impl;
|
||||
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.psi.*;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.classmetrics.ClassMetricInspection;
|
||||
import com.siyeh.ig.classmetrics.CyclomaticComplexityVisitor;
|
||||
import com.siyeh.ig.fixes.MoveAnonymousToInnerClassFix;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
+2
-1
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.siyeh.ig.classmetrics;
|
||||
package com.siyeh.ig.classmetrics.impl;
|
||||
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.psi.PsiAnonymousClass;
|
||||
@@ -21,6 +21,7 @@ import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiEnumConstantInitializer;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.classmetrics.ClassMetricInspection;
|
||||
import com.siyeh.ig.fixes.MoveAnonymousToInnerClassFix;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
+2
-1
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.siyeh.ig.methodmetrics;
|
||||
package com.siyeh.ig.methodmetrics.impl;
|
||||
|
||||
import com.intellij.codeInspection.options.OptPane;
|
||||
import com.intellij.openapi.util.NlsContexts;
|
||||
@@ -22,6 +22,7 @@ import com.intellij.psi.PsiModifier;
|
||||
import com.intellij.psi.PsiParameterList;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.methodmetrics.MethodMetricInspection;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
+1
@@ -17,6 +17,7 @@ package com.siyeh.ig.classmetrics;
|
||||
|
||||
import com.intellij.codeInspection.InspectionProfileEntry;
|
||||
import com.siyeh.ig.LightJavaInspectionTestCase;
|
||||
import com.siyeh.ig.classmetrics.impl.AnonymousClassComplexityInspection;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
|
||||
+2
-2
@@ -68,8 +68,6 @@ com.siyeh.ig.classlayout.InnerClassOnInterfaceInspection
|
||||
com.siyeh.ig.classlayout.ListenerMayUseAdapterInspection
|
||||
com.siyeh.ig.classlayout.UtilityClassInspection
|
||||
com.siyeh.ig.classlayout.UtilityClassWithoutPrivateConstructorInspection
|
||||
com.siyeh.ig.classmetrics.AnonymousClassComplexityInspection
|
||||
com.siyeh.ig.classmetrics.AnonymousClassMethodCountInspection
|
||||
com.siyeh.ig.classmetrics.ClassComplexityInspection
|
||||
com.siyeh.ig.classmetrics.ClassCouplingInspection
|
||||
com.siyeh.ig.classmetrics.ClassInheritanceDepthInspection
|
||||
@@ -77,6 +75,8 @@ com.siyeh.ig.classmetrics.ClassNestingDepthInspection
|
||||
com.siyeh.ig.classmetrics.ConstructorCountInspection
|
||||
com.siyeh.ig.classmetrics.FieldCountInspection
|
||||
com.siyeh.ig.classmetrics.MethodCountInspection
|
||||
com.siyeh.ig.classmetrics.impl.AnonymousClassComplexityInspection
|
||||
com.siyeh.ig.classmetrics.impl.AnonymousClassMethodCountInspection
|
||||
com.siyeh.ig.cloneable.CloneableImplementsCloneInspection
|
||||
com.siyeh.ig.controlflow.ConfusingElseInspection
|
||||
com.siyeh.ig.controlflow.DuplicateConditionInspection
|
||||
|
||||
Reference in New Issue
Block a user