Java.lang.ArrayIndexOutOfBoundsException: -1

6 respostas
H

Quando vou importar alguns arquivos ele da esse erro alguém sabe porque???
E se tento importar o mesmo arquivo após o erro ele importa sem problemas.
Alguém pode me ajudar???
java.lang.ArrayIndexOutOfBoundsException: -1

at java.util.BitSet.clear(Unknown Source)

at javax.swing.DefaultListSelectionModel.clear(Unknown Source)

at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)

at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)

at javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source)

at javax.swing.JTable.setRowSelectionInterval(Unknown Source)

at ois.ui.OISJTable.setRowSelectionInterval(OISJTable.java:388)

at ois.ui.OISDataSet.setSelectedRow(OISDataSet.java:1885)

at ois.ui.OISDataSet.addRow(OISDataSet.java:1464)

at ois.ui.OISJTable.addRow(OISJTable.java:1919)

at br.uis.c4.client.inventaire.UCIRMultiArticleSelectionPanel$EnquadraProc.run(UCIRMultiArticleSelectionPanel.java:466)

at java.lang.Thread.run(Unknown Source)

6 Respostas

samuel.grigolato

Se quiser algum tipo de ajuda vai ter que detalhar mais suas perguntas.

1º O que está tentando fazer?
2º Este erro aparece exatamente onde/quando?
3º É um erro da sua aplicação ou de alguma ferramenta que está utilizando?

H

Acho que ta explicado ali em "Importar alguns arquivos " !!!
Mas por via das duvidas vou colocar o código abaixo

H
Então ele tá parando na linha 74
private class EnquadraProc implements Runnable{

		File f;
		public EnquadraProc(File f)
		{		
			this.f=f;
		}
		public void run() {
			try{
       		 BufferedReader in = new BufferedReader(new FileReader(f));
       	     int aux=0;
       		 String str;
       	     String strAux="";
       	     ojtCriticas.setData(null);
	        	 List listEan = new ArrayList();
	        	 //ojtProdutos.setData(null);
	        	 //ojtCriticas.setData(null);
       	     while ((str = in.readLine()) != null) {
	        	    if(str == null || "".equals(str.trim())){
       	 			ojtCriticas.addRow(new Object[]{str, getLabel(-100583)});
       	 			}
	        	    else if(str.trim().length() > 15){
	        	    	ojtCriticas.addRow(new Object[]{str, getLabel(-100584)});
	        	    }
       	 		else{
       	 			strAux=str;
       	 			aux = 0;
       	 			int tamanho= str.length();
       	 				for(int i=0;i<tamanho;i++)
       	 				{
       	 					if(str.substring(0, 1).equals("0"))
       	 					{
       	 						aux+=1;
       	 						str= str.substring(1);
       	 					}       	 						
       	 					else 
       	 						break;
       	 				}
       	 				}
       	 			    if(aux>=9)
       	 				 listEan.add(str.trim());  
       	 			    else
       	 			    {
       	 			    	str=strAux;
       	 			    	listEan.add(str.trim());  
       	 			    }
       	 			    
       	     }
       	     in.close();
       	     String CampoTipoPosicao = UCIRInvInit.getCampoTipoPosicao();
       	     List [] retorno = UCIRInvServiceCall.processaEans(cja, cja.iSite, listEan.toArray(),CampoTipoPosicao);
       	     List eanOK	 	= retorno[0];
       	     List eanNoOK 	= retorno[1];
       	     int total = (eanOK.size() > eanNoOK.size()) ? eanOK.size() : eanNoOK.size();
       	     for(int i=0; i < total; i++){
       	    	 if(i < eanOK.size()){
	        	    	 ojtProdutos.addRow((Object[])eanOK.get(i));
       	    	 }
       	    		
       	    	 if(i < eanNoOK.size()){
       	    		 Object [] line = (Object[]) eanNoOK.get(i);
       	    		 //EAN inválido ou não cadastrado   ou       EAN sem sortimento de compra e vendaean sem sortimento de compra e venda
       	    		// String msg = ((Integer)line[1]).equals(new Integer(1)) ? getLabel(-100586) : getLabel(-100585);
       	    		String msg = null;
       	    		if(((Integer)line[1]).equals(new Integer(1)))
       	    		{
       	    			msg = getLabel(-100586);
       	    		}else if(((Integer)line[1]).equals(new Integer(2))){
       	    			msg = getLabel(-100585);
       	    		}else{
       	    			msg = getLabel(171);
       	    		}
       	    		
       	    		 ojtCriticas.addRow(new Object[] { line[0], msg });
       	    	 }
       	     }
       	     
       	     //retira linha em branco
       	  for(int i=0;i<ojtProdutos.getRowCount();i++)
    	     {
       		  if(ojtProdutos.toString(i,Constantes.TableColumnsNames.CL_EAN)==null)
       		  {
       			ojtProdutos.removeRow(i);
       			i = i-1;
       		  }
       		  
    	     }
       	     for(int i=0;i<ojtProdutos.getRowCount();i++)
       	     {
       	    	 for(int j=ojtProdutos.getRowCount();j>0;j--){
       	    		 if(ojtProdutos.toString(i,Constantes.TableColumnsNames.CL_EAN).
	    				 equals(ojtProdutos.toString(j,Constantes.TableColumnsNames.CL_EAN)) && i!=j)
	    		 		 {
		   	    			 ojtCriticas.addRow(new Object[]{ojtProdutos.toString(i,Constantes.TableColumnsNames.CL_EAN), "EAN duplicado." });
		   	    			 ojtProdutos.removeRow(j);
	    		 		}
	    			 }
       	     }
       	  wait.closeWaitScreen();//fecha tela de aguarde	

									
				
			}catch(Exception e){
				wait.closeWaitScreen();//fecha tela de aguarde
				cja.failure(e);
			}
		}
	}
samuel.grigolato

“Importar alguns arquivos” em um Fórum de Java pode significar muita coisa, pelo menos para mim.

E pelo fato de não ter conseguido respostas ainda, acredito que não é só eu que penso assim.

Me desculpe se eu estiver muito fora do escopo, mas acho difícil alguém destrinchar seu StackTrace atrás destas informações.

Edit: não tinha lido seu último post, agora ficou bem melhor :slight_smile:

samuel.grigolato

Se tirar a linha:

ojtCriticas.setData(null);

continua com o erro?

H

Então Samuel na verdade já estão usando essa aplicação faz uns 2 anos !!!
Mas sempre tem o usuário(FDP)que faz surgir novos erros!!! Ai é osso
Mas tirar se tirar ojtCriticas.setData(null);
Não muda !!!

Criado 29 de julho de 2010
Ultima resposta 29 de jul. de 2010
Respostas 6
Participantes 2