Community
Participate
Working Groups
I20050811-1530 - open this class in a java editor: package override.test; public class A { <T, U extends T> void m(T t, U u) { } } class B extends A { // @Override <X, Y extends X> void m(X t, U u) { } } - open ASTView and focus on the 'X' in 'Y extends X' - boom: Error 2005-08-15 12:04:56.18 Could not set AST view input org.eclipse.core.runtime.CoreException[4]: java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.lookup.MethodBinding.genericSignature(MethodBinding.java:370) at org.eclipse.jdt.internal.compiler.lookup.MethodBinding.computeUniqueKey(MethodBinding.java:321) at org.eclipse.jdt.internal.compiler.lookup.MethodBinding.computeUniqueKey(MethodBinding.java:310) at org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.computeUniqueKey(TypeVariableBinding.java:250) at org.eclipse.jdt.internal.compiler.lookup.Binding.computeUniqueKey(Binding.java:45) at org.eclipse.jdt.core.dom.TypeBinding.getKey(TypeBinding.java:455) at org.eclipse.jdt.astview.views.Binding.getChildren(Binding.java:75) at org.eclipse.jdt.astview.views.ASTViewContentProvider.getChildren(ASTViewContentProvider.java:92) at org.eclipse.jdt.astview.views.ASTViewContentProvider.hasChildren(ASTViewContentProvider.java:230) at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:1378) at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(AbstractTreeViewer.java:1845) at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:536) at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:514) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:494) at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:1076) at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:1073) at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:1613) at org.eclipse.jface.viewers.StructuredViewer.setSelectionToWidget(StructuredViewer.java:1494) at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1450) at org.eclipse.jdt.astview.views.ASTView.internalSetInput(ASTView.java:499) at org.eclipse.jdt.astview.views.ASTView.setInput(ASTView.java:470) at org.eclipse.jdt.astview.views.ASTView.performSetFocus(ASTView.java:1070) at org.eclipse.jdt.astview.views.ASTView$15.run(ASTView.java:833) at org.eclipse.jface.action.Action.runWithEvent(Action.java:996) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:538) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:441) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:868) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3137) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2765) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1734) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1698) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338) at org.eclipse.core.launcher.Main.basicRun(Main.java:282) at org.eclipse.core.launcher.Main.run(Main.java:977) at org.eclipse.core.launcher.Main.main(Main.java:952)
Hi Kent, This is another example where the parameters can contain null. See bug 106755 for the other case. They might be duplicates.
Created attachment 26107 [details] Proposed fix Kent, resetting the parameters collection to NoParameters fixes the issue in case of error while resolving the parameters. Needs to be reviewed.
Released changes to HEAD.
The key is returned and it is KEY: 'Loverride/test/A~B;.m<X:Ljava/lang/Object;Y:TX;>(TX;TY;)V:TX;'. I renamed U in Y in the second m method. Verified for 3.2 M3 using build I20051025-0800+JDT/Core v_618a