Java.lang.ArrayIndexOutOfBoundsException: -1

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)

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?

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

Então ele tá parando na linha 74

[code]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);
		}
	}
}[/code]

“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:

Se tirar a linha:

ojtCriticas.setData(null); 

continua com o erro?

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 !!!