Note that there are some explanatory texts on larger screens.

plurals
  1. POConcurrentModificationException in single Threaded unmodifiableList
    primarykey
    data
    text
    <p>I have a single threaded application that iterates over a huge tree structure where children are stored in a list. The iterators always operate on an unmodifiable list:</p> <pre><code>public List&lt;HierarchyNode&gt; getChildren() { return Collections.unmodifiableList(children); } </code></pre> <p>Still I get an ConcurrentModificationException at some point, which I thought impossible in an unmodifiable List? The iteration is done using a visitor... any ideas how this is possible?</p> <p>EDIT: The only one who can modify this list is the Constructor of the class holding the list:</p> <pre><code>private final List&lt;HierarchyNode&gt; children; </code></pre> <p>Maybe this is related to the fact that the memory usage of thetree is fairly large (>4GB)?</p> <p>Trace:</p> <pre><code>Testcase: testParserSingleFile(General.NetlistBuilder): Caused an ERROR null java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) at java.util.ArrayList$Itr.next(ArrayList.java:791) at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1067) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitArchitectureNode(HierarchyNodeVisitorImplementation.java:20) at com.bevm.semantics.netlist.NetlistBuilder.visitArchitectureNode(NetlistBuilder.java:40) at com.bevm.hierarchy.ArchitectureNode.accept(ArchitectureNode.java:25) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitEntityNode(HierarchyNodeVisitorImplementation.java:33) at com.bevm.semantics.netlist.NetlistBuilder.visitEntityNode(NetlistBuilder.java:33) at com.bevm.hierarchy.EntityNode.accept(EntityNode.java:33) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitComponentNode(HierarchyNodeVisitorImplementation.java:27) at com.bevm.hierarchy.ComponentNode.accept(ComponentNode.java:25) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitInstanceNode(HierarchyNodeVisitorImplementation.java:45) at com.bevm.semantics.netlist.NetlistBuilder.visitInstanceNode(NetlistBuilder.java:85) at com.bevm.hierarchy.InstanceNode.accept(InstanceNode.java:89) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitArchitectureNode(HierarchyNodeVisitorImplementation.java:21) at com.bevm.semantics.netlist.NetlistBuilder.visitArchitectureNode(NetlistBuilder.java:40) at com.bevm.hierarchy.ArchitectureNode.accept(ArchitectureNode.java:25) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitEntityNode(HierarchyNodeVisitorImplementation.java:33) at com.bevm.semantics.netlist.NetlistBuilder.visitEntityNode(NetlistBuilder.java:33) at com.bevm.hierarchy.EntityNode.accept(EntityNode.java:33) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitComponentNode(HierarchyNodeVisitorImplementation.java:27) at com.bevm.hierarchy.ComponentNode.accept(ComponentNode.java:25) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitInstanceNode(HierarchyNodeVisitorImplementation.java:45) at com.bevm.semantics.netlist.NetlistBuilder.visitInstanceNode(NetlistBuilder.java:85) at com.bevm.hierarchy.InstanceNode.accept(InstanceNode.java:89) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitArchitectureNode(HierarchyNodeVisitorImplementation.java:21) at com.bevm.semantics.netlist.NetlistBuilder.visitArchitectureNode(NetlistBuilder.java:40) at com.bevm.hierarchy.ArchitectureNode.accept(ArchitectureNode.java:25) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitEntityNode(HierarchyNodeVisitorImplementation.java:33) at com.bevm.semantics.netlist.NetlistBuilder.visitEntityNode(NetlistBuilder.java:33) at com.bevm.hierarchy.EntityNode.accept(EntityNode.java:33) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitComponentNode(HierarchyNodeVisitorImplementation.java:27) at com.bevm.hierarchy.ComponentNode.accept(ComponentNode.java:25) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitInstanceNode(HierarchyNodeVisitorImplementation.java:45) at com.bevm.semantics.netlist.NetlistBuilder.visitInstanceNode(NetlistBuilder.java:85) at com.bevm.hierarchy.InstanceNode.accept(InstanceNode.java:89) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitGenerateNode(HierarchyNodeVisitorImplementation.java:39) at com.bevm.semantics.netlist.NetlistBuilder.visitGenerateNode(NetlistBuilder.java:79) at com.bevm.hierarchy.GenerateNode.accept(GenerateNode.java:27) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitArchitectureNode(HierarchyNodeVisitorImplementation.java:21) at com.bevm.semantics.netlist.NetlistBuilder.visitArchitectureNode(NetlistBuilder.java:40) at com.bevm.hierarchy.ArchitectureNode.accept(ArchitectureNode.java:25) at com.bevm.hierarchy.HierarchyNodeVisitorImplementation.visitEntityNode(HierarchyNodeVisitorImplementation.java:33) at com.bevm.semantics.netlist.NetlistBuilder.visitEntityNode(NetlistBuilder.java:33) at com.bevm.hierarchy.EntityNode.accept(EntityNode.java:33) at com.beckhoff.vmagic.hierarchy.HierarchyNodeVisitorImplementation.visit(HierarchyNodeVisitorImplementation.java:15) at General.NetlistBuilder.testParserSingleFile(NetlistBuilder.java:125) </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload