[Resolvido]Converter JSF 2 erro de cast

Olá pessoal bom dia para todos,

Estou com um problema no converter que é o seguinte:

Tenho os dados que quero buscar para o componente SelectOneMenu


public List<SelectItem> getOptionList(){
         List<Divida> ListOptionDivida = null;
          List<SelectItem> toDataReturn = new LinkedList<SelectItem>();
          DividaDAO divDAO = new DividaDAO();
          try{
              ListOptionDivida = divDAO.getDividas();
              for (Divida dvd: ListOptionDivida){
                  //dvd.getId(), dvd.getId()+' - '+dvd.getEmpresa()
                  toDataReturn.add(new SelectItem(dvd.getId(),dvd.getEmpresa()));
              }
          }catch (Exception e){
              e.printStackTrace();
              e.getMessage();
             
          }
          return toDataReturn;
     } 

Na página Xhtml está da seguinte forma:

<p:outputLabel for="dividaid" value="Divida ID:"/>
                    <p:selectOneMenu id="dividaid" value="#{pagamentoFaces.selectedPagamento.divida}" converter="dividaConverter">
                        <f:selectItem itemLabel="|| - Selecione - || "/>
                        <f:selectItems value="#{pagamentoFaces.optionList}" var="pag" itemLabel="#{pag.label}" itemValue="#{pag.value}"/>
                    </p:selectOneMenu>

O converter:

@FacesConverter(value="dividaConverter",forClass = Divida.class)
public class DividaConverter implements Converter{

    @Override
    public Object getAsObject(FacesContext fc, UIComponent uic, String value) {
       if(value != null && value.trim().length() > 0){
           Integer codigo = Integer.valueOf(value);
           System.out.println("CONVERTENDO VALOR DE STRING E BUSCANDO O CODIGO "+codigo);
           try{
               DividaDAO dividaDAO = new DividaDAO();
               return dividaDAO.getDivida(codigo);
           }catch(Exception e){
               throw new ConverterException("Não foi possivel encontrar a dívida "+value+". "+e.getMessage());
           }
       }
       return null;
    }

    @Override
    public String getAsString(FacesContext fc, UIComponent uic, Object value) {
       if(value != null){
           System.out.println("CONVERTENDO PARA STRING " + value);
           Divida divida =  (Divida) value;
           //System.out.println("CONVERTENDO PARA STRING " + String.valueOf(divida.getId()));
           return divida.toString();
       }else
       return "";
    }
    
}

Quando eu tento acessar a página xhtml dá o erro na linha Divida divida = (Divida) value;

java.lang.Integer cannot be cast to br.com.finance.model.Divida
at br.com.finance.util.DividaConverter.getAsString(DividaConverter.java:41)

Lembrando que o toString() está declarado assim na classe Divida:

@Override
    public String toString() {
        return  String.valueOf(id);
         }

Alguém porderia me ajudar?

Amigo, não precisa desse toString.

Faz assim:

[code]@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object value)
throws ConverterException {
try {
if (value != null && !value.equals(new Divida())) {
return ((Divida) value).getId().toString();
}

    } catch (ConverterException e) {  
        e.printStackTrace();  
    }  
    return null;  

}[/code]
@Override  
    public String getAsString(FacesContext fc, UIComponent uic, Object value) {  
       if(value != null){  
           System.out.println("CONVERTENDO PARA STRING " + value);  
           Divida divida =  (Divida) value;  // vc deve fazer um instanceOf antes de tentar fazer o cast 
           //System.out.println("CONVERTENDO PARA STRING " + String.valueOf(divida.getId()));  
           return divida.toString();  
       }else  
       return "";  
    }  

é bem provável que esse value que esta vindo como paramentro no método getAsString seja um integer

até porque vc esta setando
o id no SelectItem

 toDataReturn.add(new SelectItem(dvd.getId(),dvd.getEmpresa()));

vc poderia fazer isso no lugar

 toDataReturn.add(new SelectItem(dvd, dvd.getEmpresa()));// passar o objeto divida como valor

Boa, boa, Perfeito!

Fiz a mudança que Danilo aconselhou e funcionou perfeitamente, parabéns e obrigado.

Obrigado também ao darkSteel também funcionou. Valeu!!!