From: Andy Clement Date: Wed, 22 Apr 2020 17:42:51 +0000 (-0700) Subject: Fix for 558995: NullPointerException at org.aspectj.weaver.ReferenceType.getWeaverState X-Git-Tag: V1_9_6~7 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=8fa573040ff3e4caa6d0e2a1cf63bb0c62dd3ad9;p=aspectj.git Fix for 558995: NullPointerException at org.aspectj.weaver.ReferenceType.getWeaverState --- 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) {