mentre questo metodo è quello che non funziona

codice:
public void web2(int ris2, String tupla)  
    { 
    try{ 
    final TabellaScript tb =new TabellaScript();      
    int i=0;        
//questo controllo verifica se è stato scelto un singolo file o una directory
       
//identificazione singola pagina        
        if (ris2 == 0) { 
        i=0; 
        tb.run(nomefile, tupla);
        t=tb.total();
        Record[] rr = new Record[t]; 
         final  Record[] r = new Record[t];
        rr=null;
        rr = tb.run(nomefile, tupla);  //gli dico che è la prima volta con il true e ris3 il rigo scelto         
       
           
        while (i!=t){ 
        r[i] = new Record(); 
        r[i].setSelezionato(true); //seleziona il flag
        r[i].setNome(rr[i].getNome()); //seleziona il nome del file
        r[i].setTipo(rr[i].getTipo()); //seleziona il nome della pagina web
        r[i].setScopo(rr[i].getScopo());//seleziona la directory in cui si trova il file
        r[i].setData(rr[i].getData());//visualizza la data di estrazione
        r[i].setProve(rr[i].getProve());
        r[i].setClsv(rr[i].getClsv());
        r[i].setFreq(rr[i].getFreq());
        r[i].setCodice2(rr[i].getCodice2());//visualizza il codice
        i++;}
        Object[][] data2 = new Object[r.length][];
//questo ciclo for mi permette di passargli le tuple che ho configurato nella classe Record metodo getObject()
        for ( i = 0; i < r.length; i++)
        {
            data2[i] = r[i].getObjects_script ();
        }
        
       MyTableModel my = new MyTableModel();
       my.MyTable_script(data2);
        
        
       final JTable tab = new JTable(my);
       
       p_job2.add(tab);
       //rr2 =rr;
      //  TableColumn column = null;
      //  column = tab.getColumnModel().getColumn(5);
      //  my.setUpSportColumn(tab,column);
      //  tab.setCellSelectionEnabled(true);//abilita solo la cella selezionata
      //  tab.setColumnSelectionAllowed(true);//elimina la selezione sulla tupla
        JScrollPane scroll = new JScrollPane(tab); 
        p_job2.add(scroll);
        
        tab.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
                  int[] selected = tab.getSelectedColumns();
                  for (int i = 0; i < selected.length; i++) {
                        if (selected[i] == 5) {//viene attivato solo per la sesta colonna
                   try{
                        JFrame f = new JFrame();
                        JPanel p = new JPanel();
                        tabellaPagina tb = new tabellaPagina("");
                        int count=1, n_cod=0;//salvo in n_cod il rigo selezionato
                        //stampa il rispettivo codice 
                        JTextArea t = new JTextArea(rr2[0].getCodice(),30,35);
                        JScrollPane s = new  JScrollPane(t);
                        f.setTitle("codice");
                        f.getContentPane().add(s);
                        f.setSize(400,440);
                        f.setLocation(470, 250); 
     
                   }
                  catch (IllegalArgumentException ee) {}
                  catch (ArrayIndexOutOfBoundsException e1) {}
                  catch (NullPointerException e2) {}     
                                                    }
              }
              } });
 }  
 if (ris2 == 1) { 
        i=0; 
        tb.run(nomefile, tupla);
        t=tb.total();
        Record[] rr = new Record[t]; 
        rr=null;
        rr = tb.run(nomefile, tupla);  //gli dico che è la prima volta con il true e ris3 il rigo scelto         
        final  Record[] r = new Record[t];
       
        while (i != t){
        r[i] = new Record(); 
        r[i].setSelezionato(true); //seleziona il flag
        r[i].setNome(rr[i].getNome()); //seleziona il nome del file
        r[i].setTipo(rr[i].getTipo()); //seleziona il nome della pagina web
        r[i].setScopo(rr[i].getScopo());//seleziona la directory in cui si trova il file
        r[i].setData(rr[i].getData());//visualizza la data di estrazione
        r[i].setProve(rr[i].getProve());
        r[i].setClsv(rr[i].getClsv());
        r[i].setFreq(rr[i].getFreq());
        r[i].setCodice2(rr[i].getCodice2());//visualizza il codice
        i++; 
          }
        Object[][] data2 = new Object[r.length][];
//questo ciclo for mi permette di passargli le tuple che ho configurato nella classe Record metodo getObject()
        for ( i = 0; i < r.length; i++)
        {
            data2[i] = r[i].getObjects_script ();
        }
       
         MyTableModel my = new MyTableModel();
         my.MyTable_script(data2);
         final  JTable tab = new JTable(my);
         p_job2.removeAll();
         p_job2.add(tab);  
         tab.setCellSelectionEnabled(true);//abilita solo la cella selezionata
                tab.setColumnSelectionAllowed(true);//elimina la selezione sulla tupla
              TableColumn column = null;
              column = tab.getColumnModel().getColumn(6);
              my.setUpSportColumn(tab,column);
               tab.setCellSelectionEnabled(true);//abilita solo la cella selezionata
                tab.setColumnSelectionAllowed(true);//elimina la selezione sulla tupla
          JScrollPane scroll = new JScrollPane(tab); 
          p_job2.add(scroll);
          rr2 =rr;
          tab.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                          int[] selected = tab.getSelectedColumns();
                          int selectedrow = tab.getSelectedRow();
                          //boolean isSelected = false;
                          for (int i = 0; i < selected.length; i++) {
                                if (selected[i] == 5) {//viene attivato solo per la sesta colonna
                                //isSelected = true;
                            try{
                                JFrame f = new JFrame();
                                tabellaPagina tb = new tabellaPagina("");
                                int count=1, n_cod=0;//salvo in n_cod il rigo selezionato
                                n_cod=selectedrow;
                                JTextArea t = new JTextArea(rr2[n_cod].getCodice(),30,35); //stampa il rispettivo codice 
                                JScrollPane s = new  JScrollPane(t);
                                f.setTitle("codice");
                                f.getContentPane().add(s);
                                f.setSize(400,440);
                                f.setLocation(470, 250); 
                            }
                          catch (IllegalArgumentException ee) {}
                          catch (ArrayIndexOutOfBoundsException e1) {}
                          catch (NullPointerException e2) {}     
                                                            }
                      }
                      } });
       
        
       
  } 
  } catch (SQLException ex) {}
    catch (ClassNotFoundException ex) {} 
    catch (SAXException ex) {} 
    catch (IOException ex) {}
    catch (NullPointerException e){}    
    catch (ArrayIndexOutOfBoundsException e){}
    p_job2.validate(); 
    
   
}
e la parte in rosso è il codice che mi interessa...e che mi dà problemi