Apanhando de IndexOutOfBoundException

Fala feras

Tenho o seguinte método:

	private StringBuffer gerarEtiqueta(List etiqueta, List ofertas, boolean somenteOferta){
		List listaDoidia = new ArrayList(etiqueta);
		Collections.copy(listaDoidia, etiqueta);

		StringBuffer relatorio = new StringBuffer("");
		
		for (int i = 0; i < etiqueta.size(); i++) {
			ModelEtqBaguetaVO modelEtqBagueteVO = (ModelEtqBaguetaVO) etiqueta
					.get(i);
			
			if(i!=0){
				relatorio.append("\n");
			}
			
			relatorio.append("Filial " + modelEtqBagueteVO.getCdFilial() + " - " + modelEtqBagueteVO.getNmFantasia() + "\n");
			relatorio.append("DS_PRODUTO;CD_PRODUTO;VL_VENDA;VL_OFERTA\n");		
			
			for (int j = 0; j < listaDoidia.size(); j++) {
				ModelEtqBaguetaVO temp = (ModelEtqBaguetaVO) etiqueta
					.get(j);
				if(modelEtqBagueteVO.getCdFilial().equals(temp.getCdFilial())){
					etiqueta.remove(temp);
					StringBuffer bufferMensagemVlOferta = null;
					StringBuffer bufferMensagemVlVenda = null;
					if(temp.getVlOferta() != null){
						bufferMensagemVlOferta = new StringBuffer("POR");
						bufferMensagemVlOferta.append(temp.getVlOferta());
						temp.setVlOferta(bufferMensagemVlOferta.toString());
						bufferMensagemVlVenda = new StringBuffer("DE");
						bufferMensagemVlVenda.append(temp.getVlPrVenda());
						temp.setVlPrVenda(bufferMensagemVlVenda.toString());
					} else {
						bufferMensagemVlVenda = new StringBuffer("PMC");
						bufferMensagemVlVenda.append(temp.getVlPrVenda());
						temp.setVlPrVenda(bufferMensagemVlVenda.toString());
					}
					if(somenteOferta){
						for(int k=0; k<ofertas.size(); k++){
							String cdOferta = (String)ofertas.get(k);
							Integer cdTpOferta = new Integer(Integer.parseInt(cdOferta));
							if(temp.getCdTpOferta().equals(cdTpOferta)){
								//writer.write(modelEtqBagueteVO, camposVO, processing);
								relatorio.append(temp.getDsProduto() + ";" + temp.getCdProduto() + ";" + temp.getVlPrVenda() + ";" + temp.getVlOferta() + "\n");
							}
						}
					} else {
						relatorio.append(temp.getDsProduto() + ";"
								+ temp.getCdProduto() + ";"
								+ temp.getVlPrVenda() + ";"
								+ temp.getVlOferta() + "\n");
					}
				}
			}
		}
		return relatorio;
	}

Quando ele entra a primeira vez no looping, ele é executado numa boa, mas quando vai entrar a segunda, ele lança a exceção:

Nâo sei o que mais pode ser. Alguém pode dar uma luz?

Valeu

Use um debug e veja o que ocorre nessa linha da classe EtiquetaCMD.java:110.

É o início do looping…não sei pq está dando isso sendo q o i muda pra posicao 1 e ele já se perde todo :S

Achei :smiley:

Eu tava querendo pegar objeto da lista que está sendo removida no mesmo looping :oops:

Valeuu