laptop and a wrench

Bug

Layer.SetExpanded(true) creates duplicate group layer items in the Contents pane in ArcGIS Pro 2.8.x but works fine in ArcGIS Pro 2.7.x.

Last Published: October 13, 2021 ArcGIS Pro SDK for .NET
Bug ID Number BUG-000143582
SubmittedOctober 11, 2021
Last ModifiedJune 19, 2025
Applies toArcGIS Pro SDK for .NET
Version found2.8
Operating SystemWindows OS
Operating System Version10.0 64 Bit
StatusWill Not Be Addressed

Additional Information

Here are a few changes that the submitter can make to remove potential deadlocks and the System.Threading.Tasks.Task. I do not recommend the approach being used in the repro. I cannot reproduce it with the code consolidated/refactored as below. These changes/recommendations to the code are all explained here: https://github.com/esri/arcgis-pro-sdk/wiki/ProConcepts-Asynchronous-Programming-in-ArcGIS-Pro //Button1 implementation protected async override void OnClick() { var loops = 20; //we use a single queuedtask that is _awaited_ not "Wait" //Class2_Add_Batch_Magic is implemented with synchronous //methods var N = await QueuedTask.Run(() => { Class2_Add_Batch_Magic class2_Add_Batch_Magic = new Class2_Add_Batch_Magic(); return class2_Add_Batch_Magic.GO(loops); }); //Show modal UI outside the context of the QTR MessageBox.Show(String.Format("Complete {0} Loops, Duplicates = {1}", loops, N)); } //Note that all methods are converted to synchronous internal class Class2_Add_Batch_Magic { //The use of System.Threading.Tasks.Task is removed public int GO(int loops = 20) { return Run(loops); } private int Run(int loops) { return TestLoop(loops); } //Must be called within the context of a QTR or a //CalledOnWrongThreadException will be thrown from //LayerFactory.Instance.CreateGroupLayer... private int TestLoop(int loops) { int N = 0; for (int i = 0; i < loops; i++) { N += Nest1(i); } return N; //MessageBox.Show(String.Format("Complete {0} Loops, Duplicates = {1}", loops, N)); } private int Nest1(int index) { int N = 0; N = Nest2(index); return N; } private int Nest2(int index) { int N = 0; N = Make_Both(index); return N; } private int Make_Both(int index) { var pMagic = MakeGroup("Magic_" + index, null); var pBatch = MakeGroup("Batch_" + index, pMagic); Layer_Visible(pBatch, false); Layer_Expands(pBatch, false); return pMagic.Layers.Count - 1; } private GroupLayer MakeGroup(string Name, GroupLayer Parent) { ILayerContainerEdit Group = Parent; if (Group == null) { if (MapView.Active == null) return null; else Group = MapView.Active?.Map; } Parent = LayerFactory.Instance.CreateGroupLayer(Group, 0, "A_" + Name + "_Z"); Parent.SetName(Name); Layer_Expands(Parent, true); Layer_Visible(Parent, true); return Parent; } private void Layer_Expands(Layer pLayer, bool Value) { pLayer.SetExpanded(Value); } private void Layer_Visible(Layer pLayer, bool Value) { pLayer.SetVisibility(Value); } }

Steps to Reproduce

Bug ID: BUG-000143582

Software:

  • ArcGIS Pro SDK for .NET

Get notified when the status of a bug changes

Download the Esri Support App

Discover more on this topic

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options