Yes it is possible to get this exception (not error) also in a single-threaded environment.
More precisely the exception is thrown whenever a collection you're currently iterating through is modified either by another thread or by the current thread.
An example of a single-threaded scenario in which you get this error is the following:
Iterator names = namesList.iterator();
while(names.hasNext()){
String currentName = names.next();
if(currentName.startsWith("A")){
namesList.remove(currentName); //here you modify the original collection
}
}
In this case, if the iterator is a fail-fast iterator (as most of the collection implementations provide) you will get a ConcurrentModificationException