Community
Participate
Working Groups
HEAD Steps: open ASTView 1.1.0 on this class to inspect the resolved annotations: @Override(x= 1) public class Try { } Here, the NPE happens in toString(), but I think the problem would also appear in other queries on ResolvedMemberValuePair. java.lang.NullPointerException at org.eclipse.jdt.core.dom.ResolvedMemberValuePair.init(ResolvedMemberValuePair.java:96) at org.eclipse.jdt.core.dom.ResolvedMemberValuePair.getValue(ResolvedMemberValuePair.java:91) at org.eclipse.jdt.core.dom.ResolvedMemberValuePair.toString(ResolvedMemberValuePair.java:118) at org.eclipse.jdt.core.dom.ResolvedMemberValuePair.toString(ResolvedMemberValuePair.java:111) at org.eclipse.jdt.core.dom.ResolvedAnnotation.toString(ResolvedAnnotation.java:86) at org.eclipse.jdt.astview.views.ResolvedAnnotation.<init>(ResolvedAnnotation.java:26) at org.eclipse.jdt.astview.views.ResolvedAnnotationProperty.convertValue(ResolvedAnnotationProperty.java:166) at org.eclipse.jdt.astview.views.ResolvedAnnotationProperty.createChildren(ResolvedAnnotationProperty.java:77) at org.eclipse.jdt.astview.views.ResolvedAnnotationProperty.<init>(ResolvedAnnotationProperty.java:58) at org.eclipse.jdt.astview.views.Binding.getChildren(Binding.java:218) at org.eclipse.jdt.astview.views.ASTViewContentProvider.getChildren(ASTViewContentProvider.java:94) at org.eclipse.jdt.astview.views.ASTViewContentProvider.hasChildren(ASTViewContentProvider.java:240) at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:1539) at org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer.java:760) at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(AbstractTreeViewer.java:2098) at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:541) at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:519) ...
You could specify that this code doesn't compile. I'll investigate.
Created attachment 33890 [details] Proposed patch
Kent, Could you please review the patch? Putting the line after the for fixes this issue. Otherwise an array with null inside is returned as the computedPair. This doesn't seem to have an impact on the errors reported by the compiler.
Created attachment 33892 [details] Regression test
org.eclipse.jdt.core.tests.dom.ASTConverter15Test.test0208 is released, but it is disabled for now. Please reenable once this is fixed.
released along with change to only create binding when storeAnnotations is true.
Verified for 3.2 M5 using build I20060214-0010
I think the resolution for this problem was wrong. When the member value cannot be resolved, we should not return a binding for it.