Como vão developers
Estou lendo um tabela na base de dados da minha aplicaçao, logo apos armazeno as informações em uma List:
Pessoas_Dao dao = new Pessoas_Dao();
List<Pessoas_Model> listaPrestador = dao.carregarListaPrestadoresCadastrados();
A minha aplicação deve: ler um arquivo com a extensão RE, dentro deste arquivo vou recuperar as seguintes informações: nome e PIS, que estão em posições especificas.
Ate aqui tudo bem, eu criei um list que armazena as linhas recuperadas do arquivo, e leio assim:
// armazena, apos verificação, os prestadores que ja possuem cadastroes
List<Pessoas_Model> prestCadastrado = new ArrayList<>();
for (String dado : dados) {
String pis = dado.substring(32, 43);
String nome = dado.substring(53, 123);
// compara o pis com objetos da lista recuperada da base de dados
// cadastro que existir na base, sera removido da lista prestador e add na lista
// prestCadastrados
for (Pessoas_Model prestador1 : listaPrestador) { // erro acontece aqui
if (pis.equals(prestador1.getPisPasep())) {
System.out.println("Linha Pis: " + pis + " Objeto prestdor1: " + prestador1.getNome_pessoa() + " PIS: " + prestador1.getPisPasep());
prestCadastrado.add(prestador1);
listaPrestador.remove(prestador1);
}
}
}
o seguinte erro é informado:
Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
at java.util.ArrayList$Itr.next(ArrayList.java:851)
at Controller.CarregarArquivo.verificarPisPasep(CarregarArquivo.java:87)
at View.Form_principal.jButton1ActionPerformed(Form_principal.java:169)
at View.Form_principal.access$400(Form_principal.java:23)
at View.Form_principal$5.actionPerformed(Form_principal.java:133)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java