So, as I am sure you are aware, a ConcurrentModificationException will be thrown when one thread is iterating through a list and another thread modifies that list. We encountered this exception being thrown in an ADF Search page, using the search panel. With a particular LOV, everytime a user searched after selecting a value from the LOV, the exception would be thrown (and then the results returned).
After much head-scratching, we found that another field had two different LOVs tied to it and some logic to determine which LOV to show. The attribute with LOV causing the problem was used in the logic, however, it was not set as a dependency. Once it was set as a dependency the problem was solved!
You live, you learn.