From 8fa573040ff3e4caa6d0e2a1cf63bb0c62dd3ad9 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Wed, 22 Apr 2020 10:42:51 -0700 Subject: [PATCH] Fix for 558995: NullPointerException at org.aspectj.weaver.ReferenceType.getWeaverState --- .../ajdt/internal/compiler/lookup/EclipseFactory.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java b/org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java index 062f04fd2..47357df67 100644 --- a/org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java +++ b/org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java @@ -1100,10 +1100,16 @@ public class EclipseFactory { typexToBinding.put(fromBinding(binding), binding); } - public void addTypeBindingAndStoreInWorld(TypeBinding binding) { + public void addTypeBindingAndStoreInWorld(SourceTypeBinding binding) { UnresolvedType ut = fromBinding(binding); typexToBinding.put(ut, binding); - world.lookupOrCreateName(ut); + ReferenceType rt = world.lookupOrCreateName(ut); + // Ensure a delegate is set (#558995) + // TODO the delegate is perhaps not 100% ideal as the decl is the aspect? + TypeDeclaration decl = binding.scope.referenceContext; + CompilationUnitDeclaration referenceCompilationUnit = binding.scope.referenceCompilationUnit(); + EclipseSourceType t = new EclipseSourceType(rt, this, binding, decl, referenceCompilationUnit); + rt.setDelegate(t); } public Shadow makeShadow(ASTNode location, ReferenceContext context) { -- 2.39.5