 <p>why not use <strong>LinkedBlockingQueue</strong>? <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/LinkedBlockingQueue.html" rel="nofollow">http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/LinkedBlockingQueue.html</a></p> <p>BTW, it's not neceserally have to do with synchronization. a code like this:</p> <pre><code>for(Value v : valuesList){ valueslist.add(new Value()); } </code></pre> <p>would cause this exception as well. check your code for possible modifications of the list when it's being iterated over.</p>