From 148ca983580c22edeb708c03c0c4be7eed4ef0cd Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Wed, 20 Nov 2013 15:15:05 +0100 Subject: [PATCH] EA-52004 (NPE: CyclicClassDependencyInspection.checkElement) --- .../src/com/intellij/codeInspection/reference/RefClass.java | 4 +++- .../com/intellij/codeInspection/reference/RefClassImpl.java | 1 + .../ig/dependency/CyclicClassDependencyInspection.java | 6 +++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/java/java-analysis-api/src/com/intellij/codeInspection/reference/RefClass.java b/java/java-analysis-api/src/com/intellij/codeInspection/reference/RefClass.java index da8a04fe7b7f..3e9044ec5eaf 100644 --- a/java/java-analysis-api/src/com/intellij/codeInspection/reference/RefClass.java +++ b/java/java-analysis-api/src/com/intellij/codeInspection/reference/RefClass.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ package com.intellij.codeInspection.reference; import com.intellij.psi.PsiClass; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Set; @@ -65,6 +66,7 @@ public interface RefClass extends RefJavaElement { boolean isSelfInheritor(PsiClass psiClass); + @Nullable @Override PsiClass getElement(); } diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefClassImpl.java b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefClassImpl.java index 17416a0b99de..1e2aee542e7f 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefClassImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefClassImpl.java @@ -211,6 +211,7 @@ public class RefClassImpl extends RefJavaElementImpl implements RefClass { return isSelfInheritor(psiClass, new ArrayList()); } + @Nullable @Override public PsiClass getElement() { return (PsiClass)super.getElement(); diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/dependency/CyclicClassDependencyInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/dependency/CyclicClassDependencyInspection.java index 51a5a1a01d7a..355d5933d511 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/dependency/CyclicClassDependencyInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/dependency/CyclicClassDependencyInspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2011 Dave Griffith, Bas Leijdekkers + * Copyright 2006-2013 Dave Griffith, Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -51,7 +51,7 @@ public class CyclicClassDependencyInspection extends BaseGlobalInspection { } final RefClass refClass = (RefClass)refEntity; final PsiClass aClass = refClass.getElement(); - if (aClass.getContainingClass() != null) { + if (aClass == null || aClass.getContainingClass() != null) { return null; } final Set dependencies = @@ -67,7 +67,7 @@ public class CyclicClassDependencyInspection extends BaseGlobalInspection { } final String errorString = InspectionGadgetsBundle.message( "cyclic.class.dependency.problem.descriptor", - refEntity.getName(), numMutualDependents - 1); + refEntity.getName(), Integer.valueOf(numMutualDependents - 1)); return new CommonProblemDescriptor[]{ inspectionManager.createProblemDescriptor(errorString) };