Ilustres!
Estou com um problema em tese simples, mas estou quebrando a cabeça pra resolver, faz tempo que não trabalho com java 
Vamos lá, tenho uma classe Categoria que possui subcategorias armazenadas dentro de um arraylist… até aí tudo bem:
public class Categoria implements Serializable {
private String titulo;
private String descricao;
private ArrayList<Produto> produtos;
private ArrayList<Categoria> subCategorias;
//.....//
}
Daí na hora de buscar uma categoria pelo titulo, pensei em linearizar todas elas em um novo array list, e aqui está o problema:
public Categoria pesquisarCategoria(String titulo){
Categoria ret = null;
ArrayList<Categoria> todas = new ArrayList<Categoria>(categorias);
for(Categoria aux : todas){
todas.addAll(aux.getSubCategorias());
}
for(Categoria aux: todas){
if(aux.getTitulo().equals(titulo)){
return aux;
}
}
return ret;
}
Erro:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at pkgCatalogo.SingletonCatalogo.pesquisarCategoria(SingletonCatalogo.java:65)
at trabalhooo.Sistema.pesquisarCategoria(Sistema.java:59)
at trabalhooo.TrabalhoOO.main(TrabalhoOO.java:254)
Alguma luz?

Grato desde já!