Método getSelectedIndex do JComboBox retornando 0 mesmo estando vazio

Pessoal, boa noite!

Tenho o seguindo código dentro de um botão:

try {
        
        int index = tblItens.getSelectedRow();
        
        if(index != -1){
            
            Item i = itens.get(index);
            
            if(cbbProduto.getSelectedIndex() != -1){
                
                Produto p = (Produto) cbbProduto.getSelectedItem();
                i.setFkMarca(p.getFkMarca());
                i.setFkModelo(p.getFkModelo());
                i.setFkCategoria(p.getFkCategoria());
                
            }else{
                
                JOptionPane.showMessageDialog(this, "Não é possível editar o item sem selecionar um produto.", "Erro", JOptionPane.ERROR_MESSAGE);
                
            }
            
            if(cbbPessoa.getSelectedIndex() != -1){
                
                Pessoa ps = (Pessoa) cbbPessoa.getSelectedItem();
                i.setFkPessoa(ps.getCod());
                
            }
            
            if(cbbEmpresa.getSelectedIndex() != -1){
                
                Empresa e = (Empresa) cbbEmpresa.getSelectedItem();
                i.setFkEmpresa(e.getCod());
                
            }
            
            if(cbbEmpresa.getSelectedIndex() != -1){
                
                Empresa e = (Empresa) cbbEmpresa.getSelectedItem();
                i.setFkEmpresa(e.getCod());
                
            }
            
            if(cbbSetor.getSelectedIndex() != -1){
                
                Setor s = (Setor) cbbSetor.getSelectedItem();
                i.setFkSetor(s.getCod());
                
            }
            
            if(itemDao.alt(i)){
                
                cleanFields();
                i = itemDao.returnLastItem();
                itens.add(i);
                loadTable(itens);
                JOptionPane.showMessageDialog(this, "O item foi atualizado com sucesso no banco de dados.", "Informação", JOptionPane.INFORMATION_MESSAGE);
                
            }
            
        }else{
            
            JOptionPane.showMessageDialog(this, "Impossível editar sem selecionar o item desejado.", "Erro", JOptionPane.ERROR_MESSAGE);
            
        }
        
        
    } catch (Exception e) {
        
        JOptionPane.showMessageDialog(this, "Ocorreu um erro durante o processo.", "Erro", JOptionPane.ERROR_MESSAGE);
        
    }

E em determinado momento, mesmo o combobox estando vazio, o método getSelectedIndex retorna 0, quando deveria me retornar -1, com isso o código abaixo acaba criando um objeto null e me retornando erro ao realizar a modificação que preciso.

if(cbbSetor.getSelectedIndex() != -1){
            
            Setor s = (Setor) cbbSetor.getSelectedItem();
            i.setFkSetor(s.getCod());

}

Para preencher os boxes, eu utilizo campos de texto fazendo busca de acordo com o que o usuário deseja.

if(evt.getKeyCode() == KeyEvent.VK_ENTER){
        
        
        if(!txtPesPessoa.getText().isEmpty()){
            
            cbbPessoa.removeAllItems();
            PersonDao personDao = new PersonDao();
            for(Pessoa p : personDao.listar(txtPesPessoa.getText())){

                cbbPessoa.addItem(p);

            }
            
        }
        
    }else if((evt.getKeyCode() == KeyEvent.VK_BACKSPACE) && (txtPesPessoa.getText().length()-1 == 0)){
        
        cbbPessoa.removeAllItems();
        
    }

e quando vou alterar, acabo recebendo esse retorno de objecto null, alguém pode me ajudar?

Vc não tem conexão com o banco certo?
Há uma maneira que é realmente fácil pegar os dados, lembrando que as relações no banco dever estar bem efectuada
Pega aí o código

 conectacategoria.executaSQL("select * from tbl_categoria order by Codigo");
    jComboBoxCategoria.removeAllItems();
    
try {
    conectacategoria.rs.first();
    do {
        jComboBoxCategoria.addItem(conectacategoria.rs.getString("Categoria"));
    }while(conectacategoria.rs.next());
} catch (SQLException ex) {
    JOptionPane.showMessageDialog(rootPane, "Erro ao Preencher o Combobox Categoria \n Erro:"+ex.getMessage());

Eu tenho conexão com o banco amigo, personDao.listar(txtPesPessoa.getText()) esse método me retorna os dados.

Ainda estou com esse problema, um JcomboBox gera null e o outro gera null um objeto todo null.