Bug 81116 [Preferences] NPE in PreferenceDialog#updateMessage
!ENTRY org.eclipse.ui 4 0 2004-12-10 18:15:14.156 !MESSAGE java.lang.NullPointerException !STACK 0 java.lang.NullPointerException at org.eclipse.jface.preference.PreferenceDialog.updateMessage(PreferenceDialog.java:1233) at org.eclipse.jface.preference.PreferenceDialog$6.controlResized(PreferenceDialog.java:509) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:148) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:814) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:838) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:819) at org.eclipse.swt.widgets.Control.WM_SIZE(Control.java:3616) at org.eclipse.swt.widgets.Scrollable.WM_SIZE(Scrollable.java:313) at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1150) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3074) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3370) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1528) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3090) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3370) at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method) at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1108) at org.eclipse.swt.widgets.Control.setBounds(Control.java:1920) at org.eclipse.swt.widgets.Control.setBounds(Control.java:1902) at org.eclipse.swt.widgets.Control.setBounds(Control.java:1898) at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:660) at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:186) at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:825) at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1161) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3074) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3370) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1528) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3090) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3370) at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method) at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:647) at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:613) at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:745) at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1165) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3074) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3370) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1528) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3090) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3370) at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method) at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:647) at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:613) at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:745) at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1165) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3074) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3370) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1528) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3090) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3370) at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method) at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:647) at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:613) at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:745) at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1165) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3074) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3370) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1528) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3090) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3370) at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method) at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1108) at org.eclipse.swt.widgets.Control.setBounds(Control.java:1920) at org.eclipse.swt.widgets.Control.setBounds(Control.java:1902) at org.eclipse.swt.widgets.Control.setBounds(Control.java:1898) at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:660) at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:186) at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:825) at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1161) at org.eclipse.swt.widgets.Canvas.WM_SIZE(Canvas.java:251) at org.eclipse.swt.widgets.Decorations.WM_SIZE(Decorations.java:1646) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3074) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1479) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3370) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1457) at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:393) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3090) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1479) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3370) at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method) at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1108) at org.eclipse.swt.widgets.Control.setBounds(Control.java:1942) at org.eclipse.swt.widgets.Decorations.setBounds(Decorations.java:773) at org.eclipse.swt.widgets.Shell.setBounds(Shell.java:989) at org.eclipse.swt.widgets.Control.setBounds(Control.java:1902) at org.eclipse.swt.widgets.Control.setBounds(Control.java:1898) at org.eclipse.swt.widgets.Control.setBounds(Control.java:1967) at org.eclipse.jface.window.Window.initializeBounds(Window.java:662) at org.eclipse.jface.dialogs.Dialog.initializeBounds(Dialog.java:630) at org.eclipse.jface.window.Window.create(Window.java:379) at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:983) at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:182) at org.eclipse.jface.action.Action.runWithEvent(Action.java:989) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:555) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:505) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:419) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:814) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2803) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2448) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1578) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1549) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:281) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:220) 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(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.core.launcher.Main.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:710) at org.eclipse.core.launcher.Main.main(Main.java:694)
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceDialog.java
if (gc.textExtent(textValue).x < maxWidth) {
			gc.dispose();
			return textValue;
		}
		int length = textValue.length();
		int ellipsisWidth = gc.textExtent(ellipsis).x;
		int pivot = length / 2;
		int start = pivot;
		int end = pivot + 1;
		while (start >= 0 && end < length) {
			String s1 = textValue.substring(0, start);
			String s2 = textValue.substring(end, length);
			int l1 = gc.textExtent(s1).x;
			int l2 = gc.textExtent(s2).x;
			if (l1 + ellipsisWidth + l2 < maxWidth) {
				gc.dispose();
				return s1 + ellipsis + s2;
			}
			start--;
			end++;
		}
		gc.dispose();
		return textValue;
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.jface.preference.IPreferencePageContainer#updateTitle()
	 */
	public void updateTitle() {