Project: SWT
Bug 152769 StackOverflowError (recursive callWindowProc)
Reported: 2006-08-03 13:44:56 | Status: verified fixed

I20060803-0835 I got the SOE below after pressing Ctrl+Space in a Java Editor. The proposals list quickly showed up, but then I got the workbench "Internal error" dialog. This happens reproducably in my workspace with the code below; but I could NOT reproduce in an empty workspace. package xy; public class Try { public static void main(String[] args) { System.out.println(IFace.CONST); // content assist after I of IFace } } interface IFace { int CONST= 1 << 3; } !ENTRY org.eclipse.ui 4 0 2006-08-03 19:38:08.860 !MESSAGE java.lang.StackOverflowError !STACK 0 java.lang.StackOverflowError at org.eclipse.swt.internal.win32.OS.SendMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.SendMessage(OS.java:2519) at org.eclipse.swt.widgets.Table.windowProc(Table.java:4524) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4054) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1847) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:258) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:183) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3340) at org.eclipse.swt.widgets.Table.windowProc(Table.java:4581) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4054) at org.eclipse.swt.internal.win32.OS.SendMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.SendMessage(OS.java:2519) at org.eclipse.swt.widgets.Table.setScrollWidth(Table.java:3934) at org.eclipse.swt.widgets.Table.wmNotifyChild(Table.java:5370) at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:3812) at org.eclipse.swt.widgets.Composite.WM_NOTIFY(Composite.java:1166) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3304) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1539) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:1646) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4054) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1847) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:258) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:183) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3340) at org.eclipse.swt.widgets.Table.windowProc(Table.java:4581) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4054) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1847) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:258) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:183) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3340) at org.eclipse.swt.widgets.Table.windowProc(Table.java:4581) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4054) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1847) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:191) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:183) at org.eclipse.swt.widgets.Table.windowProc(Table.java:4578) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4054) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1847) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:258) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:183) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3340) at org.eclipse.swt.widgets.Table.windowProc(Table.java:4581) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4054) at org.eclipse.swt.internal.win32.OS.SendMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.SendMessage(OS.java:2519) at org.eclipse.swt.widgets.Table.setScrollWidth(Table.java:3936) at org.eclipse.swt.widgets.Table.wmNotifyChild(Table.java:5370) at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:3812) [..] at org.eclipse.swt.widgets.Composite.WM_NOTIFY(Composite.java:1166) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3304) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1539) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:1646) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4054) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1847) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:258) at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:183) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3340) at org.eclipse.swt.widgets.Table.windowProc(Table.java:4581) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4054) at org.eclipse.swt.internal.win32.OS.UpdateWindow(Native Method) at org.eclipse.swt.widgets.Decorations.setVisible(Decorations.java:1348) at org.eclipse.swt.widgets.Shell.setVisible(Shell.java:1493) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.displayProposals(CompletionProposalPopup.java:1053) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$24(CompletionProposalPopup.java:1018) at org.eclipse.jface.text.contentassist.CompletionProposalPopup$12.run(CompletionProposalPopup.java:1416) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.incrementalComplete(CompletionProposalPopup.java:1393) at org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions(ContentAssistant.java:1581) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:173) at org.eclipse.ui.texteditor.ContentAssistAction$1.run(ContentAssistAction.java:82) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67) at org.eclipse.ui.texteditor.ContentAssistAction.run(ContentAssistAction.java:80) at org.eclipse.jface.action.Action.runWithEvent(Action.java:499) at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185) at org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:461) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:424) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:160) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:466) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:799) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:846) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:564) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:506) at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:122) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:982) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:927) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:952) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:965) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:961) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1275) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3352) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3252) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4054) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1928) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2995) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177) 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:585) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336) at org.eclipse.core.launcher.Main.basicRun(Main.java:280) at org.eclipse.core.launcher.Main.run(Main.java:977) at org.eclipse.core.launcher.Main.main(Main.java:952)

Files changed in fix:
bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java