Project: JDT
Bug 37215 createExecutableExtension does not catch missing super class
Reported: 2003-05-05 10:31:05 | Status: resolved fixed

Build R2.0 We have code that creates classes declared in the plugin.xml with the following API: IConfigurationElement.createExecutableExtension(String) We handle the cases where - there's a CoreException - there's a ClassCastException Given the API comment: * @exception CoreException if an instance of the executable extension * could not be created for any reason. we assumed that this also catches the case where the super class is missing, however this is not the case as can be seen in the following log: !ENTRY org.eclipse.jdt.ui 4 10001 Mai 05, 2003 16:19:07.813 !MESSAGE org.eclipse.jdt.internal.ui.filters.Non !STACK 0 java.lang.NoClassDefFoundError: org.eclipse.jdt.internal.ui.filters.Non at java.lang.Throwable.<init>(Throwable.java) at java.lang.Throwable.<init>(Throwable.java:75) at java.lang.NoClassDefFoundError.<init>(NoClassDefFoundError.java:51) at java.lang.ClassLoader.defineClassImpl(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java) at java.net.URLClassLoader.defineClass(URLClassLoader.java) at java.net.URLClassLoader.access$400(URLClassLoader.java) at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java) at java.security.AccessController.doPrivileged(AccessController.java:218) at java.net.URLClassLoader.findClass(URLClassLoader.java) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClass(DelegatingURLClassLoader.java:922) at org.eclipse.core.internal.plugins.PluginClassLoader.internalFindClassParentsSelf(PluginClassLoader.java) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassParentsSelf(DelegatingURLClassLoader.java) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(DelegatingURLClassLoader.java) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(DelegatingURLClassLoader.java) at java.lang.ClassLoader.loadClass(ClassLoader.java) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension(PluginDescriptor.java:130) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension(PluginDescriptor.java:167) at org.eclipse.core.internal.plugins.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:103) at org.eclipse.jdt.internal.ui.filters.FilterDescriptor.createViewerFilter(FilterDescriptor.java:118) at org.eclipse.jdt.ui.actions.CustomFiltersActionGroup.updateBuiltInFilters(CustomFiltersActionGroup.java:223) at org.eclipse.jdt.ui.actions.CustomFiltersActionGroup.updateViewerFilters(CustomFiltersActionGroup.java:193) at org.eclipse.jdt.ui.actions.CustomFiltersActionGroup.openDialog(CustomFiltersActionGroup.java:429) at org.eclipse.jdt.ui.actions.CustomFiltersActionGroup.access$0(CustomFiltersActionGroup.java:414) at org.eclipse.jdt.ui.actions.CustomFiltersActionGroup$ShowFilterDialogAction.run(CustomFiltersActionGroup.java:60) at org.eclipse.jface.action.Action.runWithEvent(Action.java:842) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:526) at org.eclipse.jface.action.ActionContributionItem.access$4(ActionContributionItem.java:480) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:848) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1402) at org.eclipse.ui.internal.Workbench.run(Workbench.java:1385) at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:845) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:61) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:40) at java.lang.reflect.Method.invoke(Method.java:335) at org.eclipse.core.launcher.Main.basicRun(Main.java:291) at org.eclipse.core.launcher.Main.run(Main.java:747) at org.eclipse.core.launcher.Main.main(Main.java:583)

Files changed in fix:
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/FilterDescriptor.java