Bug 2641 - [Preferences] NPE due to NoClassDefFound in preferences (1GHH5V7)
Summary: [Preferences] NPE due to NoClassDefFound in preferences (1GHH5V7)
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 2.0   Edit
Hardware: All Windows 2000
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Randy Giffen CLA
QA Contact:
URL:
Whiteboard:
Keywords: investigate
Depends on:
Blocks:
 
Reported: 2001-10-10 22:40 EDT by Nick Edgar CLA
Modified: 2018-01-24 13:42 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 Nick Edgar CLA 2001-10-10 22:40:32 EDT
- was running a target Eclipse from a dev env Eclipse
- deleted the bin directory from the workspace
- tried to open a preference page (it was the Java Console one, but I doubt it matters)

Got an error dialog and the following walkbacks in the log.
The NoClassDefFoundError's are not surprising, but it shouldn't cause a NPE as well.
Note that the NPE happened a few of seconds later, probably while trying to selecting other preference pages.

Log: Thu Jul 26 10:10:11 EDT 2001
4 org.eclipse.core.runtime 0 Unhandled exception caught in event loop.
java.lang.NoClassDefFoundError: org/eclipse/jface/preference/ColorFieldEditor$1
	at org.eclipse.jface.preference.ColorFieldEditor.getChangeControl(ColorFieldEditor.java:142)
	at org.eclipse.jface.preference.ColorFieldEditor.doFillIntoGrid(ColorFieldEditor.java:93)
	at org.eclipse.jface.preference.FieldEditor.createControl(FieldEditor.java:220)
	at org.eclipse.jface.preference.FieldEditor.<init>(FieldEditor.java:114)
	at org.eclipse.jface.preference.ColorFieldEditor.<init>(ColorFieldEditor.java:58)
	at org.eclipse.debug.internal.ui.ConsolePreferencePage.createFieldEditors(ConsolePreferencePage.java:49)
	at org.eclipse.jface.preference.FieldEditorPreferencePage.createContents(FieldEditorPreferencePage.java:195)
	at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:194)
	at org.eclipse.debug.internal.ui.ConsolePreferencePage.createControl(ConsolePreferencePage.java:37)
	at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:658)
	at org.eclipse.jface.preference.PreferenceDialog$4.run(PreferenceDialog.java:366)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:83)
	at org.eclipse.jface.preference.PreferenceDialog$3.widgetSelected(PreferenceDialog.java:358)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:85)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code))
	at org.eclipse.jface.window.Window.runEventLoop(Window.java(Compiled Code))
	at org.eclipse.jface.window.Window.open(Window.java:517)
	at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:47)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:408)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent(ActionContributionItem.java:362)
	at org.eclipse.jface.action.ActionContributionItem.access$0(ActionContributionItem.java:353)
	at org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(ActionContributionItem.java:47)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code))
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java(Compiled Code))
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:622)
	at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:815)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:119)
	at org.eclipse.core.launcher.Main.run(Main.java:466)
	at org.eclipse.core.launcher.UIMain.main(UIMain.java:52)
Log: Thu Jul 26 10:10:11 EDT 2001
4 org.eclipse.core.runtime 0 org/eclipse/jface/preference/ColorFieldEditor$1
java.lang.NoClassDefFoundError: org/eclipse/jface/preference/ColorFieldEditor$1
	at org.eclipse.jface.preference.ColorFieldEditor.getChangeControl(ColorFieldEditor.java:142)
	at org.eclipse.jface.preference.ColorFieldEditor.doFillIntoGrid(ColorFieldEditor.java:93)
	at org.eclipse.jface.preference.FieldEditor.createControl(FieldEditor.java:220)
	at org.eclipse.jface.preference.FieldEditor.<init>(FieldEditor.java:114)
	at org.eclipse.jface.preference.ColorFieldEditor.<init>(ColorFieldEditor.java:58)
	at org.eclipse.debug.internal.ui.ConsolePreferencePage.createFieldEditors(ConsolePreferencePage.java:49)
	at org.eclipse.jface.preference.FieldEditorPreferencePage.createContents(FieldEditorPreferencePage.java:195)
	at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:194)
	at org.eclipse.debug.internal.ui.ConsolePreferencePage.createControl(ConsolePreferencePage.java:37)
	at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:658)
	at org.eclipse.jface.preference.PreferenceDialog$4.run(PreferenceDialog.java:366)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:83)
	at org.eclipse.jface.preference.PreferenceDialog$3.widgetSelected(PreferenceDialog.java:358)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:85)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code))
	at org.eclipse.jface.window.Window.runEventLoop(Window.java(Compiled Code))
	at org.eclipse.jface.window.Window.open(Window.java:517)
	at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:47)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:408)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent(ActionContributionItem.java:362)
	at org.eclipse.jface.action.ActionContributionItem.access$0(ActionContributionItem.java:353)
	at org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(ActionContributionItem.java:47)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code))
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java(Compiled Code))
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:622)
	at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:815)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:119)
	at org.eclipse.core.launcher.Main.run(Main.java:466)
	at org.eclipse.core.launcher.UIMain.main(UIMain.java:52)
Log: Thu Jul 26 10:10:16 EDT 2001
4 org.eclipse.core.runtime 0 Unhandled exception caught in event loop.
java.lang.NullPointerException
	at org.eclipse.jface.preference.PreferencePage.doComputeSize(PreferencePage.java:273)
	at org.eclipse.jface.preference.PreferencePage.computeSize(PreferencePage.java:136)
	at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:662)
	at org.eclipse.jface.preference.PreferenceDialog$4.run(PreferenceDialog.java:366)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:83)
	at org.eclipse.jface.preference.PreferenceDialog$3.widgetSelected(PreferenceDialog.java:358)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:85)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code))
	at org.eclipse.jface.window.Window.runEventLoop(Window.java(Compiled Code))
	at org.eclipse.jface.window.Window.open(Window.java:517)
	at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:47)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:408)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent(ActionContributionItem.java:362)
	at org.eclipse.jface.action.ActionContributionItem.access$0(ActionContributionItem.java:353)
	at org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(ActionContributionItem.java:47)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code))
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java(Compiled Code))
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:622)
	at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:815)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:119)
	at org.eclipse.core.launcher.Main.run(Main.java:466)
	at org.eclipse.core.launcher.UIMain.main(UIMain.java:52)
Log: Thu Jul 26 10:10:16 EDT 2001
4 org.eclipse.core.runtime 0 java.lang.NullPointerException
java.lang.NullPointerException
	at org.eclipse.jface.preference.PreferencePage.doComputeSize(PreferencePage.java:273)
	at org.eclipse.jface.preference.PreferencePage.computeSize(PreferencePage.java:136)
	at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:662)
	at org.eclipse.jface.preference.PreferenceDialog$4.run(PreferenceDialog.java:366)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:83)
	at org.eclipse.jface.preference.PreferenceDialog$3.widgetSelected(PreferenceDialog.java:358)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:85)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code))
	at org.eclipse.jface.window.Window.runEventLoop(Window.java(Compiled Code))
	at org.eclipse.jface.window.Window.open(Window.java:517)
	at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:47)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:408)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent(ActionContributionItem.java:362)
	at org.eclipse.jface.action.ActionContributionItem.access$0(ActionContributionItem.java:353)
	at org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(ActionContributionItem.java:47)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code))
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java(Compiled Code))
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:622)
	at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:815)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:119)
	at org.eclipse.core.launcher.Main.run(Main.java:466)
	at org.eclipse.core.launcher.UIMain.main(UIMain.java:52)

NOTES:

NE (07/26/01 10:18:39 AM)
	In the code, doComputeSize is:

protected Point doComputeSize() {
	if (descriptionLabel != null) {
		Point size = body.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
		GridData gd = (GridData) descriptionLabel.getLayoutData();
		gd.widthHint = size.x;
	}
	return getControl().computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
}


It's only called from computeSize() if getControl() is non-null, so the only thing that could be null here is body.
Is it possible for body to be null if descriptionLabel is not null?
Comment 1 DJ Houghton CLA 2001-10-29 19:06:26 EST
PRODUCT VERSION:
0.9 jdk

Comment 2 Nick Edgar CLA 2002-01-27 14:12:30 EST
As with property pages, the preferences dialog should be resilient to failure 
in its pages.
Comment 3 Randy Giffen CLA 2002-05-27 21:40:39 EDT
Defer
Comment 4 Randy Giffen CLA 2002-08-08 14:55:02 EDT
Reopen to investigate
Comment 5 Tod Creasey CLA 2002-08-09 10:44:20 EDT
This is currently handled by opening a page with no contents and reporting to 
the console.
Comment 6 Eclipse Genie CLA 2018-01-24 13:21:33 EST
New Gerrit change created: https://git.eclipse.org/r/115995
Comment 7 Eclipse Genie CLA 2018-01-24 13:24:06 EST
New Gerrit change created: https://git.eclipse.org/r/115996