Community
Participate
Working Groups
JDT Core HEAD Steps to reproduce: - Create new project "source" - Create following cu in "source" package q; public class Probe { public void foo() { class Test { int f= 0; } } } - Export "source" as jar file - Export "source" as zip archive (source code only) - Create new project "client" - Add exported jar file to buildpath of "client" - Add exported zip archive as source attachment to jar file - Open "Probe.class" - Hover over type "Type" -> NPE occurs JavadocContentAccess.getContentReader(IMember, boolean) line: 58 JavadocContentAccess.getHTMLContentReader(IMember, boolean, boolean) line: 117 JavadocHover.getHoverInfo(IJavaElement[]) line: 161 JavadocHover(AbstractJavaEditorTextHover).getHoverInfo(ITextViewer, IRegion) line: 107 BestMatchHover.getHoverInfo(ITextViewer, IRegion) line: 102 JavaEditorTextHoverProxy.getHoverInfo(ITextViewer, IRegion) line: 69 TextViewerHoverManager$4.run() line: 160 The IMember wrongly is a ResolvedSourceType which has an IClassfile as parent
Changed SelectionRequestor#acceptLocalType(...) and acceptLocalMethod(...) to use JavaElement#resolve(Binding) instead of creating a ResolvedSourceType. Added regression test ResolveTests#testLocalClass9()
Verified for 3.2M6 using build I20060327-0010. Interestingly enough, the hover text is quite different in Probe.class (p.Test) than it is in Probe.java (p.Probe.foo().Test). Anyway, the hover works and this bug is verified.