Today, I had to sort a category containing about 40 layers. I used
Layer > Sort Selected Categories > By Name > Ascending
I get a ConcurrentModificationException and lost all the layers in the Category but one.
try to reproduce it and save the error stack.. important for fixing to pinpoint where the concurrent mod happens.
Cannot reproduce it at home.
It will be difficult as I did not notice any special operation I did during the sort operation.
I'll try again tomorrow.
I can see two ways to make SortACategory more safe :
- synchronizing removeLayers / addLayers in SortCategoryAbstractPlugIn
- setting setFiringEvents to false during these operations
Not sure which is the good approach, would like to reproduce the problem first.
I changed the code of SortCategory. It does not remove/add layer from layerManager any more but just remove/add from category.
Hopefully, it solves the problem. If no one can confirm the problem, let's close the ticket before next release.