Bug 70113 - Search for Template member declarations causes Assertion
Summary: Search for Template member declarations causes Assertion
Status: RESOLVED FIXED
Alias: None
Product: CDT
Classification: Tools
Component: cdt-core (show other bugs)
Version: 2.0   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: 2.0.1   Edit
Assignee: Bogdan Gheorghe CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-07-15 10:19 EDT by Brent Nicolle CLA
Modified: 2009-01-09 15:08 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Brent Nicolle CLA 2004-07-15 10:19:38 EDT
From CDT 2.0 GA

1. Insert the following code:

template < class T> class MyTemplateClass  // line A
{
public:
  T* _head;     // line B
  T* myHead();  // line C
};
template < class T>
T* MyTemplateClass<T>::myHead()
{
  return _head; 
}

2. Search for all element declarations named '*'.
There are three declarations (lines A, B and C), and
B and C are nested within their parent A'.  Great.

Unfortunately, there is no icon for A' in the search results,
and the following error is in the Error Log:

!ENTRY org.eclipse.core.runtime 4 2 Jul 15, 2004 09:36:13.828
!MESSAGE Problems occurred when invoking code from plug-
in: "org.eclipse.core.runtime".
!STACK 0
org.eclipse.jface.util.Assert$AssertionFailedException: null argument;
	at org.eclipse.jface.util.Assert.isNotNull(Assert.java:139)
	at org.eclipse.jface.util.Assert.isNotNull(Assert.java:116)
	at org.eclipse.cdt.ui.CElementImageDescriptor.<init>
(CElementImageDescriptor.java:75)
	at org.eclipse.cdt.ui.CSearchResultLabelProvider.getImage
(CSearchResultLabelProvider.java:128)
	at org.eclipse.jface.viewers.TreeViewer.doUpdateItem
(TreeViewer.java:117)
	at 
org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run
(AbstractTreeViewer.java:83)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:615)
	at org.eclipse.core.runtime.Platform.run(Platform.java:747)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem
(AbstractTreeViewer.java:464)
	at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run
(StructuredViewer.java:128)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:615)
	at org.eclipse.core.runtime.Platform.run(Platform.java:747)
	at org.eclipse.jface.viewers.StructuredViewer.updateItem
(StructuredViewer.java:1374)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem
(AbstractTreeViewer.java:381)
	at org.eclipse.jface.viewers.AbstractTreeViewer$1.run
(AbstractTreeViewer.java:361)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren
(AbstractTreeViewer.java:342)
	at org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand
(AbstractTreeViewer.java:754)
	at org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded
(AbstractTreeViewer.java:765)
	at org.eclipse.swt.widgets.TypedListener.handleEvent
(TypedListener.java:179)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:820)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:805)
	at org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:2074)
	at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:4002)
	at org.eclipse.swt.widgets.Composite.WM_NOTIFY(Composite.java:722)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3019)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:3338)
	at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1391)
	at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:170)
	at org.eclipse.swt.widgets.Tree.WM_LBUTTONDOWN(Tree.java:1668)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3001)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:3338)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1467)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2429)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
(Workbench.java:254)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
	at org.eclipse.ui.internal.ide.IDEApplication.run
(IDEApplication.java:96)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run
(PlatformActivator.java:335)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.java:273)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.java:129)
	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:324)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:183)
	at org.eclipse.core.launcher.Main.run(Main.java:644)
	at org.eclipse.core.launcher.Main.main(Main.java:628)
Comment 1 John Camelon CLA 2004-07-15 10:30:03 EDT
Bog, do your best to avoid these exceptions, but do not do any work on trying 
to make Search officially _work_ for templates, its not in our mandate yet.  
Comment 2 Bogdan Gheorghe CLA 2004-08-16 10:58:27 EDT
Although we don't officially support template search, I've added some code to 
provide an icon for the fluke cases where we find an item.

- BG