Analysis of Mauve failures - Part 2
Bryce McKinlay
bryce@waitaki.otago.ac.nz
Fri Apr 5 21:58:00 GMT 2002
Mark Wielaard wrote:
>Where does the definition of structural change come from? Although I
>understand what you say I cannot find this definition in the spec.
>
It comes from the JCL, IIRC. I don't have my copy handy to check, however.
>So we are interpreting "modification of an collection" as modification
>of the actual "structure" of the collection.
>
Right, and "structure" modification can be defined as any change to the
size of the collection or order of the elements.
>But uncommenting the al.add() or the al.remove(o) does throw, but the
>al.remove(new Object()) does not throw.
>
It is interesting that list.remove(object_not_in_list) does not cause
ConcurrentModificationException, because I also remember interpreting
something in the JCL as "calling any method that _could_ result in a
structural change should cause ConcurrentModificationException", but in
this case it seems that the exception only happens if a change actually
occurs. Of course, its not uncommon for the JCL to not match the actual
implementation in current JDKs!
regards
Bryce.
More information about the Java
mailing list