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

Bug 294194

Summary: [design] Endless loop when resizing the coolbar to the minimal size
Product: [RT] RAP Reporter: Holger Staudacher <holger.staudacher>
Component: WorkbenchAssignee: Project Inbox <rap-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 1.3   
Target Milestone: 1.3 M3   
Hardware: All   
OS: All   
Whiteboard:

Description Holger Staudacher CLA 2009-11-04 08:33:54 EST
When the coolbar is resized to a very small size a stackoverflow occurs. Just reduce the browser window to the minimal size to reproduce it.

Here is the stacktrace:

"UIThread [011842EADE801F47EF9BCB36B4B240D9]" - Thread t@189
   java.lang.Thread.State: RUNNABLE
	at org.eclipse.rap.internal.design.example.managers.CoolBarManager.manageOverflow(CoolBarManager.java:330)
	at org.eclipse.rap.internal.design.example.managers.CoolBarManager.update(CoolBarManager.java:319)
	at org.eclipse.rap.internal.design.example.managers.CoolBarManager$2.controlResized(CoolBarManager.java:130)
	at org.eclipse.swt.events.ControlEvent.dispatchToObserver(ControlEvent.java:68)
	at org.eclipse.rwt.internal.events.Event.processEvent(Event.java:44)
	at org.eclipse.swt.events.TypedEvent.processEvent(TypedEvent.java:129)
	at org.eclipse.swt.widgets.Control.notifyResize(Control.java:1914)
	at org.eclipse.swt.widgets.Composite.notifyResize(Composite.java:766)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:1905)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:802)
	at org.eclipse.swt.layout.FormLayout.layout(FormLayout.java:348)
	at org.eclipse.swt.layout.FormLayout.layout(FormLayout.java:276)
	at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:434)
	at org.eclipse.swt.widgets.Composite$1.run(Composite.java:761)
	at org.eclipse.rwt.lifecycle.ProcessActionRunner.add(ProcessActionRunner.java:36)
	at org.eclipse.swt.widgets.Composite.notifyResize(Composite.java:757)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:1905)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:802)
	at org.eclipse.swt.layout.FormLayout.layout(FormLayout.java:348)
	at org.eclipse.swt.layout.FormLayout.layout(FormLayout.java:276)
	at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:434)
	at org.eclipse.swt.widgets.Composite.layout(Composite.java:327)
	at org.eclipse.rap.internal.design.example.business.BusinessWindowComposer.createWindowContents(BusinessWindowComposer.java:115)
	at org.eclipse.ui.internal.WorkbenchWindow.createConfigurableDefaultContents(WorkbenchWindow.java:999)
	at org.eclipse.ui.internal.WorkbenchWindow.createContents(WorkbenchWindow.java:967)
	at org.eclipse.jface.window.Window.create(Window.java:433)
	at org.eclipse.ui.internal.Workbench$16.runWithException(Workbench.java:963)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:32)
	at org.eclipse.rwt.internal.lifecycle.UICallBackManager.addSync(UICallBackManager.java:115)
	at org.eclipse.swt.widgets.Display$2.run(Display.java:897)
	at org.eclipse.rwt.internal.lifecycle.UICallBackServiceHandler.runNonUIThreadWithFakeContext(UICallBackServiceHandler.java:460)
	at org.eclipse.rwt.lifecycle.UICallBack.runNonUIThreadWithFakeContext(UICallBack.java:44)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:895)
	at org.eclipse.ui.internal.StartupThreading.runWithoutExceptions(StartupThreading.java:110)
	at org.eclipse.ui.internal.Workbench.busyOpenWorkbenchWindow(Workbench.java:960)
	at org.eclipse.ui.internal.Workbench.doOpenFirstTimeWindow(Workbench.java:1799)
	at org.eclipse.ui.internal.Workbench.openFirstTimeWindow(Workbench.java:1735)
	at org.eclipse.ui.internal.WorkbenchConfigurer.openFirstTimeWindow(WorkbenchConfigurer.java:188)
	at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:790)
	at org.eclipse.ui.internal.Workbench$24.runWithException(Workbench.java:1341)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:32)
	at org.eclipse.rwt.internal.lifecycle.UICallBackManager.addSync(UICallBackManager.java:115)
	at org.eclipse.swt.widgets.Display$2.run(Display.java:897)
	at org.eclipse.rwt.internal.lifecycle.UICallBackServiceHandler.runNonUIThreadWithFakeContext(UICallBackServiceHandler.java:460)
	at org.eclipse.rwt.lifecycle.UICallBack.runNonUIThreadWithFakeContext(UICallBack.java:44)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:895)
	at org.eclipse.ui.internal.StartupThreading.runWithoutExceptions(StartupThreading.java:110)
	at org.eclipse.ui.internal.Workbench.init(Workbench.java:1336)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2317)
	at org.eclipse.ui.internal.Workbench.access$5(Workbench.java:2206)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:424)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.jface.internal.databinding.realmadapter.RealmAdapter.run(RealmAdapter.java:44)
	at org.eclipse.rap.ui.internal.RealmAdapterHook.runWithDefault(RealmAdapterHook.java:48)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:427)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:157)
	at org.eclipse.rap.examples.internal.Application.createUI(Application.java:29)
	at org.eclipse.rwt.internal.lifecycle.EntryPointManager.createUI(EntryPointManager.java:92)
	at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:227)
	at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:115)
	- locked org.eclipse.rwt.internal.lifecycle.UIThread@4e473c3b
	at java.lang.Thread.run(Thread.java:619)
	at org.eclipse.rwt.internal.lifecycle.UIThread.run(UIThread.java:80)


"UIThread [20965819CAA869A96E4DC304734B0F0A]" - Thread t@147
   java.lang.Thread.State: RUNNABLE
	at org.eclipse.rap.internal.design.example.managers.CoolBarManager.manageOverflow(CoolBarManager.java:330)
	at org.eclipse.rap.internal.design.example.managers.CoolBarManager.update(CoolBarManager.java:319)
	at org.eclipse.rap.internal.design.example.managers.CoolBarManager$2.controlResized(CoolBarManager.java:130)
	at org.eclipse.swt.events.ControlEvent.dispatchToObserver(ControlEvent.java:68)
	at org.eclipse.rwt.internal.events.Event.processEvent(Event.java:44)
	at org.eclipse.swt.events.TypedEvent.processEvent(TypedEvent.java:129)
	at org.eclipse.swt.widgets.Control.notifyResize(Control.java:1914)
	at org.eclipse.swt.widgets.Composite.notifyResize(Composite.java:766)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:1905)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:802)
	at org.eclipse.swt.layout.FormLayout.layout(FormLayout.java:348)
	at org.eclipse.swt.layout.FormLayout.layout(FormLayout.java:276)
	at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:434)
	at org.eclipse.swt.widgets.Composite$1.run(Composite.java:761)
	at org.eclipse.rwt.lifecycle.ProcessActionRunner.add(ProcessActionRunner.java:36)
	at org.eclipse.swt.widgets.Composite.notifyResize(Composite.java:757)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:1905)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:802)
	at org.eclipse.swt.layout.FormLayout.layout(FormLayout.java:348)
	at org.eclipse.swt.layout.FormLayout.layout(FormLayout.java:276)
	at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:434)
	at org.eclipse.swt.widgets.Composite.layout(Composite.java:327)
	at org.eclipse.rap.internal.design.example.business.BusinessWindowComposer.createWindowContents(BusinessWindowComposer.java:115)
	at org.eclipse.ui.internal.WorkbenchWindow.createConfigurableDefaultContents(WorkbenchWindow.java:999)
	at org.eclipse.ui.internal.WorkbenchWindow.createContents(WorkbenchWindow.java:967)
	at org.eclipse.jface.window.Window.create(Window.java:433)
	at org.eclipse.ui.internal.Workbench$16.runWithException(Workbench.java:963)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:32)
	at org.eclipse.rwt.internal.lifecycle.UICallBackManager.addSync(UICallBackManager.java:115)
	at org.eclipse.swt.widgets.Display$2.run(Display.java:897)
	at org.eclipse.rwt.internal.lifecycle.UICallBackServiceHandler.runNonUIThreadWithFakeContext(UICallBackServiceHandler.java:460)
	at org.eclipse.rwt.lifecycle.UICallBack.runNonUIThreadWithFakeContext(UICallBack.java:44)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:895)
	at org.eclipse.ui.internal.StartupThreading.runWithoutExceptions(StartupThreading.java:110)
	at org.eclipse.ui.internal.Workbench.busyOpenWorkbenchWindow(Workbench.java:960)
	at org.eclipse.ui.internal.Workbench.doOpenFirstTimeWindow(Workbench.java:1799)
	at org.eclipse.ui.internal.Workbench.openFirstTimeWindow(Workbench.java:1735)
	at org.eclipse.ui.internal.WorkbenchConfigurer.openFirstTimeWindow(WorkbenchConfigurer.java:188)
	at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:790)
	at org.eclipse.ui.internal.Workbench$24.runWithException(Workbench.java:1341)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:32)
	at org.eclipse.rwt.internal.lifecycle.UICallBackManager.addSync(UICallBackManager.java:115)
	at org.eclipse.swt.widgets.Display$2.run(Display.java:897)
	at org.eclipse.rwt.internal.lifecycle.UICallBackServiceHandler.runNonUIThreadWithFakeContext(UICallBackServiceHandler.java:460)
	at org.eclipse.rwt.lifecycle.UICallBack.runNonUIThreadWithFakeContext(UICallBack.java:44)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:895)
	at org.eclipse.ui.internal.StartupThreading.runWithoutExceptions(StartupThreading.java:110)
	at org.eclipse.ui.internal.Workbench.init(Workbench.java:1336)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2317)
	at org.eclipse.ui.internal.Workbench.access$5(Workbench.java:2206)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:424)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.jface.internal.databinding.realmadapter.RealmAdapter.run(RealmAdapter.java:44)
	at org.eclipse.rap.ui.internal.RealmAdapterHook.runWithDefault(RealmAdapterHook.java:48)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:427)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:157)
	at org.eclipse.rap.examples.internal.Application.createUI(Application.java:29)
	at org.eclipse.rwt.internal.lifecycle.EntryPointManager.createUI(EntryPointManager.java:92)
	at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:227)
	at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:115)
	- locked org.eclipse.rwt.internal.lifecycle.UIThread@2ffb4d61
	at java.lang.Thread.run(Thread.java:619)
	at org.eclipse.rwt.internal.lifecycle.UIThread.run(UIThread.java:80)
Comment 1 Holger Staudacher CLA 2009-11-04 09:30:44 EST
Fixed and committed to CVS HEAD.