Salvar em um vetor de classe

Boa tarde, escrevi esse código

public class Vendedor {
private int codigo;
private String nome;
private byte comissao;
private static byte nrInstancias;

public Vendedor(){
    String nome = "";
    nrInstancias = 0;
}

public byte getNrIntancias(){
    nrInstancias +=1;
    return nrInstancias;
}

public void setCodigo(String codigo){
    this.codigo = Integer.parseInt(codigo);
    
}

public void setNome(String nome){
    this.nome = nome;
    
}

public void setComissao(String comissao){
    this.comissao = Byte.parseByte(comissao);
    
}

public String toString(){
    return "Vendedor "+ codigo +": "+ nome+ " - "+comissao;
}

}

import javax.swing.JOptionPane;

public class CadastroVendedor {

public static void main(String[] args) {
    Vendedor[] registro = new Vendedor[1];
    Vendedor vend = new Vendedor();
    String codigo, nome, comissao;

    for (int cont = 0; cont <= 2; cont++) {
        codigo = JOptionPane.showInputDialog(null, "Código do vendedor: ");
        vend.setCodigo(codigo);

        nome = JOptionPane.showInputDialog(null, "Nome d vendedor");
        vend.setNome(nome);

        comissao = JOptionPane.showInputDialog(null, "Comissão do vendedor: ");
        vend.setComissao(comissao);
        
        registro[cont] = vend;

    }  
    String str = "Relatório de funcionario:\n";
    for(int cont = 0; cont <= registro.length;cont++){
        str += registro[cont];
    }
    JOptionPane.showMessageDialog(null,str);
}

}

alguem saberia me dizer pq da erro na linha registro[cont] = vend ???

@Vitor_Machado tenho um palpite mas gostaria de ver o log que é retornado pelo erro. No loop você percorre ele três vezes, porém, seu vetor tem apenas um espaço, provavelmente deve estar ocorrendo erro de tamanho incorreto.

{

    //tamanho do vetor {0,1,2}
    Vendedor[] registro = new Vendedor[3];

    //loop acontece em {0,1,2}
    for(int cont = 0; cont <= 2; cont++){
            registro[cont] = vend;
   }

}