Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 269252 - Filter in Plug-in Dependencies throws Problem Occured
Summary: Filter in Plug-in Dependencies throws Problem Occured
Status: RESOLVED FIXED
Alias: None
Product: PDE
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.5   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.5 M7   Edit
Assignee: Chris Aniszczyk CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-03-18 14:01 EDT by Pavel Sklenak CLA
Modified: 2009-03-18 15:27 EDT (History)
2 users (show)

See Also:


Attachments
patch (1.89 KB, patch)
2009-03-18 14:26 EDT, Benjamin Cabé CLA
caniszczyk: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Pavel Sklenak CLA 2009-03-18 14:01:06 EDT
Build ID: I20090313-0100

Steps To Reproduce:
I opened Plug-in Dependencies View and started typing to filter something. I've got following status:

An internal error has occurred.
org.eclipse.pde.internal.ui.views.dependencies.StateViewPage$StateLabelProvider cannot be cast to org.eclipse.jface.viewers.ILabelProvider

Error log contained following stack trace:

java.lang.ClassCastException: org.eclipse.pde.internal.ui.views.dependencies.StateViewPage$StateLabelProvider cannot be cast to org.eclipse.jface.viewers.ILabelProvider
at org.eclipse.ui.dialogs.PatternFilter.isLeafMatch(PatternFilter.java:274)
at org.eclipse.ui.dialogs.PatternFilter.isElementVisible(PatternFilter.java:239)
at org.eclipse.ui.dialogs.PatternFilter.select(PatternFilter.java:145)
at org.eclipse.jface.viewers.ViewerFilter.filter(ViewerFilter.java:51)
at org.eclipse.ui.dialogs.PatternFilter.filter(PatternFilter.java:86)
at org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChildren(AbstractTreeViewer.java:640)
at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:602)
at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:799)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:776)
at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:639)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1490)
at org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:828)
at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1474)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1392)
at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:402)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1353)
at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1467)
at org.eclipse.ui.dialogs.FilteredTree$NotifyingTreeViewer.inputChanged(FilteredTree.java:1184)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:274)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1634)
at org.eclipse.pde.internal.ui.views.dependencies.StateViewPage.setActive(StateViewPage.java:322)
at org.eclipse.pde.internal.ui.views.dependencies.DependenciesView.showPageRec(DependenciesView.java:576)
at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:748)
at org.eclipse.pde.internal.ui.views.dependencies.DependenciesView.enableStateView(DependenciesView.java:681)
at org.eclipse.pde.internal.ui.views.dependencies.DependenciesView$ShowStateAction.run(DependenciesView.java:191)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3880)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2393)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2357)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2209)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:499)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:492)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:556)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:511)
at org.eclipse.equinox.launcher.Main.run(Main.java:1284)


More information: reproducible every time, fresh eclipse-3.5M6
Comment 1 Benjamin Cabé CLA 2009-03-18 14:26:54 EDT
Created attachment 129265 [details]
patch

FilteredTree can't guess which string it must base its filtering on if the label provider doesn't provide a gettext method... :)
Here is a proposed patch, where the text returned by getText() corresponds to the "main" part of the styled label...
One may want to also be able to filter on other "secondary elements" (e.g. " - supplied by the JRE" for all the import resolved against JRE packages, "c:\*.jar" for all the plug-ins of the target living somewhere under c:\... , etc...). If this is what you guys find more logical, I can propose an updated patch!
Comment 2 Chris Aniszczyk CLA 2009-03-18 15:25:01 EDT
done.

> 20090318

I'm happy with the way things are now.