try to fix some minor dropdown bugs
[potlatch2.git] / org / idmedia / as3commons / lang / ConcurrentModificationException.as
1 /*
2  * Copyright the original author or authors.
3  * 
4  * Licensed under the MOZILLA PUBLIC LICENSE, Version 1.1 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * 
8  *      http://www.mozilla.org/MPL/MPL-1.1.html
9  * 
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.idmedia.as3commons.lang {
17   
18   /**
19    * This exception may be thrown by methods that have detected concurrent
20    * modification of an object when such modification is not permissible.
21    * <p>
22    * For example, it is not generally permissible for one thread to modify a Collection
23    * while another thread is iterating over it.  In general, the results of the
24    * iteration are undefined under these circumstances.  Some Iterator
25    * implementations may choose to throw this exception if this behavior is
26    * detected.  Iterators that do this are known as <i>fail-fast</i> iterators,
27    * as they fail quickly and cleanly, rather that risking arbitrary,
28    * non-deterministic behavior at an undetermined time in the future.
29    * <p>
30    * Note that this exception does not always indicate that an object has
31    * been concurrently modified by a <i>different</i> thread.  If a single
32    * thread issues a sequence of method invocations that violates the
33    * contract of an object, the object may throw this exception.  For
34    * example, if a thread modifies a collection directly while it is
35    * iterating over the collection with a fail-fast iterator, the iterator
36    * will throw this exception.
37    *
38    * <p>Note that fail-fast behavior cannot be guaranteed as it is, generally
39    * speaking, impossible to make any hard guarantees in the presence of
40    * unsynchronized concurrent modification.  Fail-fast operations
41    * throw <tt>ConcurrentModificationException</tt> on a best-effort basis. 
42    * Therefore, it would be wrong to write a program that depended on this
43    * exception for its correctness: <i><tt>ConcurrentModificationException</tt>
44    * should be used only to detect bugs.</i>
45    * 
46    * @author sleistner
47    */
48   public class ConcurrentModificationException extends Exception {
49     
50     /**
51      * Constructs a <tt>ConcurrentModificationException</tt> with the
52      * specified detail message.
53      *
54      * @param message the detail message pertaining to this exception.
55      */
56     function ConcurrentModificationException(message:String = '') {
57       super(message);
58     }
59   }
60 }