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

Bug 580617

Summary: ColumnChooserDialog throws exceptions with column groups
Product: [Technology] NatTable Reporter: Vincent Sennedot <vincent.sennedot>
Component: CoreAssignee: Dirk Fauth <dirk.fauth>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: dirk.fauth
Version: 2.0.3   
Target Milestone: 2.0.4   
Hardware: PC   
OS: Windows 11   
See Also: https://git.eclipse.org/r/c/nattable/org.eclipse.nebula.widgets.nattable/+/195373
https://git.eclipse.org/c/nattable/org.eclipse.nebula.widgets.nattable.git/commit/?id=e1b27e7272d2ae0a14a633199db2e3f878256f52
https://git.eclipse.org/r/c/nattable/org.eclipse.nebula.widgets.nattable/+/195402
https://git.eclipse.org/c/nattable/org.eclipse.nebula.widgets.nattable.git/commit/?id=7c4b3b21bd77d791f32c66ba534bdb97756bf0b0
Whiteboard:

Description Vincent Sennedot CLA 2022-08-25 09:52:28 EDT
Using a ColumnChooserDialog with column groups can throw exceptions.

It can appear for example in thoses cases:
- select a column group in the selectedTree
- select a column group and some of its children and unselect the column group in the selectedTree
- select a column group in the availableTree and move it to the selectedTree

There are maybe other cases, but all came from the same cause: many of the collections are created with ArrayUtil.asCollection() which is a collection that doesn't support add or remove.

Here is some stack traces:

java.lang.UnsupportedOperationException
	at java.base/java.util.AbstractList.add(AbstractList.java:153)
	at java.base/java.util.AbstractList.add(AbstractList.java:111)
	at org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog.setGroupsSelectionIfRequired(ColumnChooserDialog.java:1420)
	at org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog.setSelectionIncludingNested(ColumnChooserDialog.java:1397)
	at org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog.setSelectionIncludingNested(ColumnChooserDialog.java:1344)
	at org.eclipse.nebula.widgets.nattable.columnChooser.ColumnChooser$1.itemsSelected(ColumnChooser.java:238)
	at org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog.fireItemsSelected(ColumnChooserDialog.java:322)
	at org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog.addSelected(ColumnChooserDialog.java:756)
	at org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog.access$0(ColumnChooserDialog.java:749)
	at org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog$3.widgetSelected(ColumnChooserDialog.java:135)
	
java.lang.UnsupportedOperationException
	at java.base/java.util.AbstractList.add(AbstractList.java:153)
	at java.base/java.util.AbstractList.add(AbstractList.java:111)
	at java.base/java.util.AbstractCollection.addAll(AbstractCollection.java:336)
	at org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog.selectAllChildren(ColumnChooserDialog.java:817)
	at org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog.toggleColumnGroupSelection(ColumnChooserDialog.java:807)
	at org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog.access$6(ColumnChooserDialog.java:802)
	at org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog$8.widgetSelected(ColumnChooserDialog.java:216)
Comment 1 Eclipse Genie CLA 2022-08-25 18:27:34 EDT
New Gerrit change created: https://git.eclipse.org/r/c/nattable/org.eclipse.nebula.widgets.nattable/+/195373
Comment 3 Eclipse Genie CLA 2022-08-26 17:12:21 EDT
New Gerrit change created: https://git.eclipse.org/r/c/nattable/org.eclipse.nebula.widgets.nattable/+/195402
Comment 5 Dirk Fauth CLA 2022-12-14 14:57:14 EST
Released with 2.0.4