Questo codice mi da un "null pointer exception". Da quanto ho capito vuol dire che c'è qualcosa che sta a null, ma non capisco proprio cosa:

codice:
public class Libreria {
    private String codice, autore, titolo;
    private boolean cod;
    private String vet[]=new String[100];
    private int i, dim=0;
    
    /**
     * Metodo costruttore.
     * Inserisce il libro solo se il codice è corretto e non è già presente in libreria.
     * Altrimenti imposta tutto a null.
     */
    public Libreria(String codice, String autore, String titolo) {
        cod=controllaCodice(codice);
        if(cod==true){
            this.codice=codice;
            this.autore=autore;
            this.titolo=titolo;
            vet[dim]=codice;
            dim++;
        }else{
            System.out.println("Codice errato o autore già presente in elenco!");
            this.codice=null;
            this.autore=null;
            this.titolo=null;
        }
    }
    
    /**
     * Restituisce vero se il codice è giusto.
     * Restituisce false se il codice è di lunghezza errata o è già presente.
     */
    private boolean controllaCodice(String codice) {
        if(codice.length()!=6){
            return false; // Codice di lunghezza errata
        }else{
            for(i=0; i<vet.length; i++){
                if(vet[i].equals(codice)){
                    return false; // Codice già presente in archivio
                }
            }
            return true; // Codice corretto
        }
    }
    
    @Override
    public String toString() {
        return "Codice: "+codice+", Autore: "+autore+", Titolo: "+titolo+"\n";
    }
    
}
Questo è il main:

codice:
public class Main {
    public static void main(String[] args) {
        Libreria lib;
        String str;
        
        lib=new Libreria("AA2457", "Autore 1", "Titolo di prova");
        str=lib.toString();
        System.out.println(str);
        
        lib=new Libreria("AB1265", "Autore 2", "Titolo di prova");
        str=lib.toString();
        System.out.println(str);
        
        lib=new Libreria("AC1586", "Autore 3", "Titolo di prova");
        str=lib.toString();
        System.out.println(str);
        
        lib=new Libreria("AD98123", "Autore 4", "Titolo di prova");
        str=lib.toString();
        System.out.println(str);
        
        lib=new Libreria("AC1586", "Autore 5", "Titolo di prova");
        str=lib.toString();
        System.out.println(str);
        
    }
}
Please help me