fix issue 305: CodeConverter.replaceArrayAccess leads to java.util.ConcurrentModificationException #306
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a suggestion for a fix for the issue #305.
Changes were made in javassist.bytecode.analysis.Type.findCommonInterfaces:
Instead of manipulating the map while iterating over the key set at line 499, an iterator is used now. Elements are removed via iterator.remove().
Instead of manipulating the map while iterating over the value set at line 506, the identified interfaces are accumulated in a list and removed after the iteration loop.
I also wrote a test. The test calls replaceArrayAccess on a class that causes a ConcurrentModificationException without the fix.