From b3f568da7a38aad38505e923d9b9f4025f38b0ca Mon Sep 17 00:00:00 2001 From: Simon Urli Date: Mon, 29 May 2017 10:54:20 +0200 Subject: [PATCH] fix: fix NPE in isTypeInCollision (#1326) --- .../spoon/reflect/visitor/ImportScannerImpl.java | 2 +- .../java/spoon/test/imports/ImportScannerTest.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/spoon/reflect/visitor/ImportScannerImpl.java b/src/main/java/spoon/reflect/visitor/ImportScannerImpl.java index 9f46670f61d..614a6f93e60 100644 --- a/src/main/java/spoon/reflect/visitor/ImportScannerImpl.java +++ b/src/main/java/spoon/reflect/visitor/ImportScannerImpl.java @@ -563,7 +563,7 @@ protected Set lookForLocalVariables(CtElement parent) { * @return true if the ref should be imported. */ protected boolean isTypeInCollision(CtReference ref, boolean fqnMode) { - if (targetType.getSimpleName().equals(ref.getSimpleName()) && !targetType.equals(ref)) { + if (targetType != null && targetType.getSimpleName().equals(ref.getSimpleName()) && !targetType.equals(ref)) { return true; } diff --git a/src/test/java/spoon/test/imports/ImportScannerTest.java b/src/test/java/spoon/test/imports/ImportScannerTest.java index 27fa13a53b8..4000915e138 100644 --- a/src/test/java/spoon/test/imports/ImportScannerTest.java +++ b/src/test/java/spoon/test/imports/ImportScannerTest.java @@ -7,6 +7,7 @@ import spoon.reflect.declaration.CtClass; import spoon.reflect.declaration.CtType; import spoon.reflect.factory.Factory; +import spoon.reflect.reference.CtFieldReference; import spoon.reflect.reference.CtTypeReference; import spoon.reflect.visitor.ImportScanner; import spoon.reflect.visitor.ImportScannerImpl; @@ -94,4 +95,15 @@ public void testMultiCatchImport() throws Exception { //assertTrue( importScanner.isImported( factory.Type().createReference( ArithmeticException.class ) )); assertTrue( importScanner.isImported( factory.Type().createReference( AccessControlException.class ) )); } + + @Test + public void testTargetTypeNull() throws Exception { + Launcher spoon = new Launcher(); + Factory factory = spoon.createFactory(); + CtFieldReference fieldRef = factory.createFieldReference(); + fieldRef.setStatic(true); + + ImportScanner importScanner = new MinimalImportScanner(); + importScanner.computeImports(fieldRef); + } }