I'm having some problems with a simple primefaces component. I have a p:dialog with a p:selectBooleanCheckbox inside:
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:p="http://primefaces.org/ui" 
  xmlns:f="http://xmlns.jcp.org/jsf/core"
  xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<h:body>
    <ui:composition template="/templates/template_geral.xhtml">
        <ui:define name="page_content">               
            <h:form id="form"> 
                <p:dataTable resizableColumns="true" var="infoAssinaturas" value="#{mBConsulta_assinaturas.listInfoAssinaturas}" id="infoAssinaturasList" editable="true" rendered="true">  
                   <p:column headerText="Ações" style="width:3%">
                        <p:panelGrid columns="2" style=".ui-panelgrid td, .ui-panelgrid tr{border: none !important}"> 
                            <p:commandLink update=":form:infoAssinaturasEdit" oncomplete="PF('infoAssinaturas_editDialog').show()" title="Editar">  
                                <h:outputText styleClass="ui-icon ui-icon-pencil" style="margin:0 auto;" />
                                <f:setPropertyActionListener value="#{infoAssinaturas}" target="#{mBConsulta_assinaturas.selectedInfoAssinatura}" />
                            </p:commandLink> 
                        </p:panelGrid>
                    </p:column>  
                </p:dataTable>
                <p:outputPanel id="infoAssinaturasEdit" style="text-align:center;"> 
                    <p:dialog widgetVar="infoAssinaturas_editDialog" header="Editar: #{mBConsulta_assinaturas.selectedInfoAssinatura.nomeevento}" resizable="false" modal="true" appendToBody="true">
                        <h:panelGrid columns="2" style="margin-bottom:10px">  
                            <h:outputLabel value="Habilitada: *" for="habilitada" />
                            <p:selectBooleanCheckbox value="#{mBConsulta_assinaturas.selectedInfoAssinatura.habilitadaBoolean}" />
                        </h:panelGrid>
                        <p:commandButton value="Salvar" styleClass="ui-priority-primary" icon="ui-icon-disk"/> 
                        <p:commandButton value="Cancelar" styleClass="ui-priority-primary" icon="ui-icon-cancel"/> 
                    </p:dialog>
                </p:outputPanel>
            </h:form>
        </ui:define>
    </ui:composition>
</h:body>
When I run the application and try to open the page I get the following exception: javax.el.PropertyNotFoundException: Target Unreachable, 'selectedInfoAssinatura' returned null.
The weird thing is, when I replace the p:selectBooleanCheckBox by an p:inputTextBox it works perfectly and no one exception is throw. I miss something with the selectBooleanCheckBox component?
My MB:
public class MBConsulta_assinaturas implements Serializable {
private List<InfoAssinaturas> listInfoAssinaturas;
private InfoAssinaturasFacade infoAssinaturasFacade;
private InfoAssinaturas selectedInfoAssinatura;
public MBConsulta_assinaturas() {
    infoAssinaturasFacade = new InfoAssinaturasFacade();
    listInfoAssinaturas = new ArrayList<InfoAssinaturas>();
    listInfoAssinaturas = infoAssinaturasFacade.listAll();
}
public List<InfoAssinaturas> getListInfoAssinaturas() {
    return listInfoAssinaturas;
}
public InfoAssinaturasFacade getInfoAssinaturasFacade() {
    return infoAssinaturasFacade;
}
public void setListInfoAssinaturas(List<InfoAssinaturas> listInfoAssinaturas) {
    this.listInfoAssinaturas = listInfoAssinaturas;
}
public void setInfoAssinaturasFacade(InfoAssinaturasFacade infoAssinaturasFacade) {
    this.infoAssinaturasFacade = infoAssinaturasFacade;
}
public InfoAssinaturas getSelectedInfoAssinatura() {
    return selectedInfoAssinatura;
}
public void setSelectedInfoAssinatura(InfoAssinaturas selectedInfoAssinatura) {
    this.selectedInfoAssinatura = selectedInfoAssinatura;
}
} 
My model:
public class InfoAssinaturas implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String nomeevento;
private short risco;
private String descricao;
private short habilitada;
public InfoAssinaturas() {
}
public InfoAssinaturas(Integer id) {
    this.id = id;
}
public InfoAssinaturas(Integer id, String nomeevento, short risco, String descricao, short habilitada) {
    this.id = id;
    this.nomeevento = nomeevento;
    this.risco = risco;
    this.descricao = descricao;
    this.habilitada = habilitada;
}
public Integer getId() {
    return id;
}
public void setId(Integer id) {
    this.id = id;
}
public String getNomeevento() {
    return nomeevento;
}
public void setNomeevento(String nomeevento) {
    this.nomeevento = nomeevento;
}
public short getRisco() {
    return risco;
}
public void setRisco(short risco) {
    this.risco = risco;
}
public String getDescricao() {
    return descricao;
}
public void setDescricao(String descricao) {
    this.descricao = descricao;
}
public short getHabilitada() {
    return habilitada;
}
public String getHabilitadaString() {
    FacesContext ctx = FacesContext.getCurrentInstance();
    Application app = ctx.getApplication();
    ResourceBundle bundle = app.getResourceBundle(ctx, "labels");
    if (this.getHabilitada() == 0) {
        return bundle.getString("NAO");
    } else {
        return bundle.getString("SIM");
    }
}
public Boolean getHabilitadaBoolean() {
    if (this.getHabilitada() == 0) {
        return false;
    } else {
       return true;
    }
}
public void setHabilitadaBoolean(Boolean habilitada) {
    if (habilitada) {
        this.setHabilitada((short) 1);
    } else {
       this.setHabilitada((short) 0);
    }
}
public void setHabilitada(short habilitada) {
    this.habilitada = habilitada;
}
}
