Bug 324270 - Program hangs (possibly infinite loop) in Composite.setBounds(int, int, int, int, boolean, boolean)
Summary: Program hangs (possibly infinite loop) in Composite.setBounds(int, int, int, ...
Status: RESOLVED WORKSFORME
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 3.6   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-SWT-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2010-09-02 02:50 EDT by Alexey Romanov CLA
Modified: 2018-05-15 14:53 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Romanov CLA 2010-09-02 02:50:17 EDT
My program freezes if I switch between specific screens enough times. The stack trace suggests the problem is in the SWT library itself:
<pre>
Thread [main] (Suspended)	
	OS._gtk_adjustment_changed(int) line: not available [native method]	
	OS.gtk_adjustment_changed(int) line: 5616	
	ScrollBar.setMaximum(int) line: 685	
	ScrolledCompositeLayout.layout(Composite, boolean) line: 82	
	ScrolledComposite(Composite).updateLayout(boolean) line: 1546	
	ScrolledComposite(Composite).layout(boolean, boolean) line: 951	
	ScrolledComposite(Composite).layout(boolean) line: 909	
	ScrolledComposite$3.handleEvent(Event) line: 170	
	EventTable.sendEvent(Event) line: 84	
	Composite(Widget).sendEvent(Event) line: 1258	
	Composite(Widget).sendEvent(int, Event, boolean) line: 1282	
	Composite(Widget).sendEvent(int) line: 1263	
	Composite(Control).setBounds(int, int, int, int, boolean, boolean) line: 881	
	Composite.setBounds(int, int, int, int, boolean, boolean) line: 1357	
	Composite(Control).setBounds(Rectangle) line: 707	
	ScrolledCompositeLayout.layout(Composite, boolean) line: 109	
	ScrolledComposite(Composite).updateLayout(boolean) line: 1546	
	ScrolledComposite(Composite).layout(boolean, boolean) line: 951	
	ScrolledComposite(Composite).layout(boolean) line: 909	
	ScrolledComposite$3.handleEvent(Event) line: 170	
	EventTable.sendEvent(Event) line: 84	
	Composite(Widget).sendEvent(Event) line: 1258	
	Composite(Widget).sendEvent(int, Event, boolean) line: 1282	
	Composite(Widget).sendEvent(int) line: 1263	
	Composite(Control).setBounds(int, int, int, int, boolean, boolean) line: 881	
	Composite.setBounds(int, int, int, int, boolean, boolean) line: 1357	
	Composite(Control).setBounds(Rectangle) line: 707	
	ScrolledCompositeLayout.layout(Composite, boolean) line: 109	
	ScrolledComposite(Composite).updateLayout(boolean) line: 1546	
	ScrolledComposite(Composite).layout(boolean, boolean) line: 951	
	ScrolledComposite(Composite).layout(boolean) line: 909	
	ScrolledComposite$3.handleEvent(Event) line: 170	
	EventTable.sendEvent(Event) line: 84	
	Composite(Widget).sendEvent(Event) line: 1258	
	Composite(Widget).sendEvent(int, Event, boolean) line: 1282	
	Composite(Widget).sendEvent(int) line: 1263	
	Composite(Control).setBounds(int, int, int, int, boolean, boolean) line: 881	
	Composite.setBounds(int, int, int, int, boolean, boolean) line: 1357	
	Composite(Control).setBounds(Rectangle) line: 707	
	ScrolledCompositeLayout.layout(Composite, boolean) line: 109	
	ScrolledComposite(Composite).updateLayout(boolean) line: 1546	
	ScrolledComposite(Composite).layout(boolean, boolean) line: 951	
	ScrolledComposite(Composite).layout(boolean) line: 909	
	ScrolledComposite$3.handleEvent(Event) line: 170	
	EventTable.sendEvent(Event) line: 84	
	Composite(Widget).sendEvent(Event) line: 1258	
	Composite(Widget).sendEvent(int, Event, boolean) line: 1282	
	Composite(Widget).sendEvent(int) line: 1263	
	Composite(Control).setBounds(int, int, int, int, boolean, boolean) line: 881	
	Composite.setBounds(int, int, int, int, boolean, boolean) line: 1357	
	Composite(Control).setBounds(Rectangle) line: 707	
	ScrolledCompositeLayout.layout(Composite, boolean) line: 109	
	ScrolledComposite(Composite).updateLayout(boolean) line: 1546	
	ScrolledComposite(Composite).layout(boolean, boolean) line: 951	
	ScrolledComposite(Composite).layout(boolean) line: 909	
	ScrolledComposite$3.handleEvent(Event) line: 170	
	EventTable.sendEvent(Event) line: 84	
	Composite(Widget).sendEvent(Event) line: 1258	
	Composite(Widget).sendEvent(int, Event, boolean) line: 1282	
	Composite(Widget).sendEvent(int) line: 1263	
	Composite(Control).setBounds(int, int, int, int, boolean, boolean) line: 881	
	Composite.setBounds(int, int, int, int, boolean, boolean) line: 1357	
	Composite(Control).setBounds(Rectangle) line: 707	
	ScrolledCompositeLayout.layout(Composite, boolean) line: 109	
	ScrolledComposite(Composite).updateLayout(boolean) line: 1546	
	ScrolledComposite(Composite).layout(boolean, boolean) line: 951	
	ScrolledComposite(Composite).layout(boolean) line: 909	
	ScrolledComposite$3.handleEvent(Event) line: 170	
	EventTable.sendEvent(Event) line: 84	
	Composite(Widget).sendEvent(Event) line: 1258	
	Composite(Widget).sendEvent(int, Event, boolean) line: 1282	
	Composite(Widget).sendEvent(int) line: 1263	
	Composite(Control).setBounds(int, int, int, int, boolean, boolean) line: 881	
	Composite.setBounds(int, int, int, int, boolean, boolean) line: 1357	
	Composite(Control).setBounds(Rectangle) line: 707	
	ScrolledCompositeLayout.layout(Composite, boolean) line: 109	
	ScrolledComposite(Composite).updateLayout(boolean) line: 1546	
	ScrolledComposite(Composite).layout(boolean, boolean) line: 951	
	ScrolledComposite(Composite).layout(boolean) line: 909	
	ScrolledComposite$3.handleEvent(Event) line: 170	
	EventTable.sendEvent(Event) line: 84	
	Composite(Widget).sendEvent(Event) line: 1258	
	Composite(Widget).sendEvent(int, Event, boolean) line: 1282	
	Composite(Widget).sendEvent(int) line: 1263	
	Composite(Control).setBounds(int, int, int, int, boolean, boolean) line: 881	
	Composite.setBounds(int, int, int, int, boolean, boolean) line: 1357	
	Composite(Control).setBounds(Rectangle) line: 707	
	ScrolledCompositeLayout.layout(Composite, boolean) line: 109	
	ScrolledComposite(Composite).updateLayout(boolean) line: 1546	
	ScrolledComposite(Composite).layout(boolean, boolean) line: 951	
	ScrolledComposite(Composite).layout(boolean) line: 909	
	ScrolledComposite$3.handleEvent(Event) line: 170	
	EventTable.sendEvent(Event) line: 84	
	Composite(Widget).sendEvent(Event) line: 1258	
	Composite(Widget).sendEvent(int, Event, boolean) line: 1282	
	Composite(Widget).sendEvent(int) line: 1263	
	Composite(Control).setBounds(int, int, int, int, boolean, boolean) line: 881	
	Composite.setBounds(int, int, int, int, boolean, boolean) line: 1357	
	Composite(Control).setBounds(Rectangle) line: 707	
	ScrolledCompositeLayout.layout(Composite, boolean) line: 109	
	ScrolledComposite(Composite).updateLayout(boolean) line: 1546	
	ScrolledComposite(Composite).layout(boolean, boolean) line: 951	
	ScrolledComposite(Composite).layout(boolean) line: 909	
	ScrolledComposite$3.handleEvent(Event) line: 170	
	EventTable.sendEvent(Event) line: 84	
	Composite(Widget).sendEvent(Event) line: 1258	
	Composite(Widget).sendEvent(int, Event, boolean) line: 1282	
	Composite(Widget).sendEvent(int) line: 1263	
	Composite(Control).setBounds(int, int, int, int, boolean, boolean) line: 881	
	Composite.setBounds(int, int, int, int, boolean, boolean) line: 1357	
	Composite(Control).setSize(Point) line: 994	
	Composite(Control).pack(boolean) line: 1184	
	Composite(Control).pack() line: 1159	
	XScalaWT$$anon$2.controlResized(ControlEvent) line: 148	
	TypedListener.handleEvent(Event) line: 228	
	EventTable.sendEvent(Event) line: 84	
	ScrolledComposite(Widget).sendEvent(Event) line: 1258	
	ScrolledComposite(Widget).sendEvent(int, Event, boolean) line: 1282	
	ScrolledComposite(Widget).sendEvent(int) line: 1263	
	ScrolledComposite(Control).setBounds(int, int, int, int, boolean, boolean) line: 881	
	ScrolledComposite(Composite).setBounds(int, int, int, int, boolean, boolean) line: 1357	
	ScrolledComposite(Control).setBounds(Rectangle) line: 707	
	CTabFolder.setSelection(int) line: 2727	
	CTabFolder.setSelection(int, boolean) line: 2739	
	CTabFolder.destroyItem(CTabItem) line: 500	
	CTabItem.dispose() line: 126	
	DetailsViewPresenterManager$$anonfun$close$1.apply(CTabItem) line: 156	
	DetailsViewPresenterManager$$anonfun$close$1.apply(Object) line: 156	
	IndexedSeqOptimized$class.foreach(IndexedSeqOptimized, Function1) line: 34	
	ArrayOps$ofRef<T>(ArrayOps<T>).foreach(Function1) line: 34	
	DetailsViewPresenterManager.close() line: 156	
	NodesTreeScreen.selectedNodeChanged(SelectionChangedEvent) line: 180	
	NodesTreeScreen$$anonfun$6$$anonfun$apply$1.apply(SelectionChangedEvent) line: 33	
	GeneratedMethodAccessor2.invoke(Object, Object[]) line: not available	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
	Method.invoke(Object, Object...) line: 597	
	XScalaWTX$$anon$1.selectionChanged(SelectionChangedEvent) line: 52	
	Viewer$2.run() line: 162	
	SafeRunnable$1.run(ISafeRunnable) line: 128	
	SafeRunnable.run(ISafeRunnable) line: 175	
	TreeViewer(Viewer).fireSelectionChanged(SelectionChangedEvent) line: 160	
	TreeViewer(StructuredViewer).updateSelection(ISelection) line: 2132	
	TreeViewer(StructuredViewer).handleSelect(SelectionEvent) line: 1160	
	StructuredViewer$4.widgetSelected(SelectionEvent) line: 1190	
	OpenStrategy.fireSelectionEvent(SelectionEvent) line: 228	
	OpenStrategy.access$4(OpenStrategy, SelectionEvent) line: 222	
	OpenStrategy$1.handleEvent(Event) line: 389	
	EventTable.sendEvent(Event) line: 84	
	Tree(Widget).sendEvent(Event) line: 1258	
	Display.runDeferredEvents() line: 3552	
	Display.readAndDispatch() line: 3171	
	MainWindow(Window).runEventLoop(Shell) line: 825	
	MainWindow(Window).open() line: 801	
	BootStrapper$.main(String[]) line: 115	
	BootStrapper.main(String[]) line: not available	
</pre>
Unfortunately, I couldn't extract a small enough testcase so far.
Comment 1 Eric Williams CLA 2018-05-15 14:53:31 EDT
This code doesn't run anymore, I couldn't see a path where this stack trace occurs. Closing this ticket.