Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 320817

Summary: stack overflow involving CTabFolder
Product: [Eclipse Project] e4 Reporter: Boris Bokowski <bokowski>
Component: UIAssignee: Project Inbox <e4.ui-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: blocker    
Priority: P3 CC: gheorghe, remy.suen, Silenio_Quarti
Version: 1.0Flags: bokowski: review+
Silenio_Quarti: review+
Target Milestone: 1.0 RC3   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:
Attachments:
Description Flags
patch none

Description Boris Bokowski CLA 2010-07-24 13:26:10 EDT
org.eclipse.swt.widgets.Shell.isDrawing(Shell.java:1088)
org.eclipse.swt.widgets.Control.isDrawing(Control.java:1932)
org.eclipse.swt.widgets.Control.isDrawing(Control.java:1932)
org.eclipse.swt.widgets.Control.isDrawing(Control.java:1932)
org.eclipse.swt.widgets.Control.isDrawing(Control.java:1932)
org.eclipse.swt.widgets.Control.isDrawing(Control.java:1932)
org.eclipse.swt.widgets.Control.isDrawing(Control.java:1932)
org.eclipse.swt.widgets.Control.isDrawing(Control.java:1932)
org.eclipse.swt.widgets.Control.calculateVisibleRegion(Control.java:644)
org.eclipse.swt.widgets.Control.getVisibleRegion(Control.java:1754)
org.eclipse.swt.widgets.Control.resetVisibleRegion(Control.java:2910)
org.eclipse.swt.widgets.Control.invalidateVisibleRegion(Control.java:1916)
org.eclipse.swt.widgets.Control.setFrameOrigin(Control.java:3389)
org.eclipse.swt.widgets.Display.windowProc(Display.java:4964)
org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
org.eclipse.swt.internal.cocoa.NSView.setFrame(NSView.java:251)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3137)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3172)
org.eclipse.e4.ui.widgets.CTabFolder.setButtonBounds(CTabFolder.java:2252)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3440)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3373)
org.eclipse.e4.ui.widgets.CTabFolder$1.controlResized(CTabFolder.java:173)
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
org.eclipse.swt.widgets.Display.sendEvent(Display.java:3776)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1371)
org.eclipse.swt.widgets.Control.resized(Control.java:2921)
org.eclipse.swt.widgets.Composite.resized(Composite.java:929)
org.eclipse.swt.widgets.ToolBar.resized(ToolBar.java:532)
org.eclipse.swt.widgets.Control.setFrameSize(Control.java:3404)
org.eclipse.swt.widgets.Display.windowProc(Display.java:4968)
org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
org.eclipse.swt.internal.cocoa.NSView.setFrame(NSView.java:251)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3137)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3172)
org.eclipse.e4.ui.widgets.CTabFolder.setButtonBounds(CTabFolder.java:2252)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3440)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3373)
org.eclipse.e4.ui.widgets.CTabFolder$1.controlResized(CTabFolder.java:173)
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
org.eclipse.swt.widgets.Display.sendEvent(Display.java:3776)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1371)
org.eclipse.swt.widgets.Control.resized(Control.java:2921)
org.eclipse.swt.widgets.Composite.resized(Composite.java:929)
org.eclipse.swt.widgets.ToolBar.resized(ToolBar.java:532)
org.eclipse.swt.widgets.Control.setFrameSize(Control.java:3404)
org.eclipse.swt.widgets.Display.windowProc(Display.java:4968)
org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
org.eclipse.swt.internal.cocoa.NSView.setFrame(NSView.java:251)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3137)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3172)
org.eclipse.e4.ui.widgets.CTabFolder.setButtonBounds(CTabFolder.java:2252)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3440)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3373)
org.eclipse.e4.ui.widgets.CTabFolder$1.controlResized(CTabFolder.java:173)
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
org.eclipse.swt.widgets.Display.sendEvent(Display.java:3776)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1371)
org.eclipse.swt.widgets.Control.resized(Control.java:2921)
org.eclipse.swt.widgets.Composite.resized(Composite.java:929)
org.eclipse.swt.widgets.ToolBar.resized(ToolBar.java:532)
org.eclipse.swt.widgets.Control.setFrameSize(Control.java:3404)
org.eclipse.swt.widgets.Display.windowProc(Display.java:4968)
org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
org.eclipse.swt.internal.cocoa.NSView.setFrame(NSView.java:251)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3137)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3172)
org.eclipse.e4.ui.widgets.CTabFolder.setButtonBounds(CTabFolder.java:2252)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3440)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3373)
org.eclipse.e4.ui.widgets.CTabFolder$1.controlResized(CTabFolder.java:173)
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
org.eclipse.swt.widgets.Display.sendEvent(Display.java:3776)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1371)
org.eclipse.swt.widgets.Control.resized(Control.java:2921)
org.eclipse.swt.widgets.Composite.resized(Composite.java:929)
org.eclipse.swt.widgets.ToolBar.resized(ToolBar.java:532)
org.eclipse.swt.widgets.Control.setFrameSize(Control.java:3404)
org.eclipse.swt.widgets.Display.windowProc(Display.java:4968)
org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
org.eclipse.swt.internal.cocoa.NSView.setFrame(NSView.java:251)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3137)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3172)
org.eclipse.e4.ui.widgets.CTabFolder.setButtonBounds(CTabFolder.java:2252)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3440)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3373)
org.eclipse.e4.ui.widgets.CTabFolder$1.controlResized(CTabFolder.java:173)
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
org.eclipse.swt.widgets.Display.sendEvent(Display.java:3776)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1371)
org.eclipse.swt.widgets.Control.resized(Control.java:2921)
org.eclipse.swt.widgets.Composite.resized(Composite.java:929)
org.eclipse.swt.widgets.ToolBar.resized(ToolBar.java:532)
org.eclipse.swt.widgets.Control.setFrameSize(Control.java:3404)
org.eclipse.swt.widgets.Display.windowProc(Display.java:4968)
org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
org.eclipse.swt.internal.cocoa.NSView.setFrame(NSView.java:251)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3137)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3172)
org.eclipse.e4.ui.widgets.CTabFolder.setButtonBounds(CTabFolder.java:2252)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3440)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3373)
org.eclipse.e4.ui.widgets.CTabFolder$1.controlResized(CTabFolder.java:173)
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
org.eclipse.swt.widgets.Display.sendEvent(Display.java:3776)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1371)
org.eclipse.swt.widgets.Control.resized(Control.java:2921)
org.eclipse.swt.widgets.Composite.resized(Composite.java:929)
org.eclipse.swt.widgets.ToolBar.resized(ToolBar.java:532)
org.eclipse.swt.widgets.Control.setFrameSize(Control.java:3404)
org.eclipse.swt.widgets.Display.windowProc(Display.java:4968)
org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
org.eclipse.swt.internal.cocoa.NSView.setFrame(NSView.java:251)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3137)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3172)
org.eclipse.e4.ui.widgets.CTabFolder.setButtonBounds(CTabFolder.java:2252)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3440)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3373)
org.eclipse.e4.ui.widgets.CTabFolder$1.controlResized(CTabFolder.java:173)
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
org.eclipse.swt.widgets.Display.sendEvent(Display.java:3776)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1371)
org.eclipse.swt.widgets.Control.resized(Control.java:2921)
org.eclipse.swt.widgets.Composite.resized(Composite.java:929)
org.eclipse.swt.widgets.ToolBar.resized(ToolBar.java:532)
org.eclipse.swt.widgets.Control.setFrameSize(Control.java:3404)
org.eclipse.swt.widgets.Display.windowProc(Display.java:4968)
org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
org.eclipse.swt.internal.cocoa.NSView.setFrame(NSView.java:251)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3137)
org.eclipse.swt.widgets.Control.setBounds(Control.java:3172)
org.eclipse.e4.ui.widgets.CTabFolder.setButtonBounds(CTabFolder.java:2252)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3440)
org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3373)
org.eclipse.e4.ui.widgets.CTabFolder$1.controlResized(CTabFolder.java:173)
org.ecli...
Comment 1 Bogdan Gheorghe CLA 2010-07-26 12:25:02 EDT
Created attachment 175238 [details]
patch

Patch to ignore resize events when CTabFolder sets the bounds of the top right control.
Comment 2 Boris Bokowski CLA 2010-07-26 13:07:00 EDT
I'm waiting on a code review from Silenio (or someone else from the SWT team).
Comment 3 Silenio Quarti CLA 2010-07-26 15:01:07 EDT
Code is good.
Comment 4 Remy Suen CLA 2010-07-28 16:17:32 EDT
Did this get released? Should this be closed?
Comment 5 Bogdan Gheorghe CLA 2010-07-28 16:36:30 EDT
Yup and Yup.

Fixed in HEAD > 20100726