Problema na Inserção de uma lista usando many-to-many

Incluir Equivalência:

[code]
<p:selectManyCheckbox value="#{controllerDisciplina.discSelecionadas}" converter="#{DisciplinaConverter}" layout=“pageDirection”>
<f:selectItems value="#{controllerDisciplina.listaDisc}" var=“tipo” itemValue="#{tipo}" itemLabel="#{tipo.codigo}"/>
</p:selectManyCheckbox>

#{controllerDisciplina.discSelecionadas} > é a lista vazia do objeto Disciplina que recebe os itens selecionadas

#{DisciplinaConverter} >

@FacesConverter(forClass = Disciplina.class)
public class DisciplinaConverter implements Converter{

@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
    
    if(value != null && value.trim().length() > 0){
        Integer codigo = Integer.valueOf(value);
        try {
            DisciplinaRN rn = new DisciplinaRN();
            return rn.carregar(codigo);
        } catch (Exception e) {
            throw new ConverterException("Codigo: " + value + " nao encontrado." + e.getMessage());
        }
    }
    return null;
}

@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
    
    if(value != null){
        Disciplina bean = (Disciplina)value;
        return bean.getId().toString();
    }
    return "";
}

}[/code]

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Método de salvar

public void salvarEqv(){ DisciplinaEquivalenteRN rn = new DisciplinaEquivalenteRN(); for(Disciplina disc:discSelecionadas) { this.disciplinaEquivalente.setDisciplina_eq(disc); this.disciplinaEquivalente.setDisciplina_pk(this.disciplina); rn.salvar(this.disciplinaEquivalente); } limparDisc(); }

obs: a classe liga nela mesmo, pois há disciplinas que são equivalentes a elas.

Agora essa loucura n cadastra da o seguinte erro:
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to beans.Disciplina

A pergunta é? de onde vem essa String? Estou trabalhando com objetos =/

Minha classe:

[code]@Entity
@SequenceGenerator(allocationSize= 1, name = “idgen”, sequenceName = “equivalente_seq”)
@Table(name = “disciplina_equivalente”)
public class DisciplinaEquivalente implements Serializable {

    @Id
    @Column(name="id")
    @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="idgen")
    private Integer id;
    
    @ManyToOne
    @JoinColumn(name="disciplina_pk")
    private Disciplina disciplina_pk;
    
    @ManyToOne
    @JoinColumn(name="disciplina_eq")
    private Disciplina disciplina_eq;

//set-get[/code]