Erro ao salvar no banco de dados usando JSF/Hibernate/CDI

Prezados,

Estou com um probleminha chato, que estou tentando resolver faz uns 3 dias sem sucesso.
Tenho uma pagina XHTML , para cadastrar uma determinada entidade. Também tenho outra pata listar as entidades cadastradas. Acontece que é possivel listar, mas eu não consigo salvar. Observo que eu conseguia salvar normalmente, porém, andei tentando implementar um conversor e isto pode ter prejudicado algo.

A saida quando eu tento salvar:

    mai 03, 2018 11:32:50 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute
ADVERTÊNCIA: #{moradorBean.salvar}: java.lang.IllegalStateException: Session/EntityManager is closed
javax.faces.FacesException: #{moradorBean.salvar}: java.lang.IllegalStateException: Session/EntityManager is closed
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:119)
	at javax.faces.component.UICommand.broadcast(UICommand.java:330)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:870)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1418)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:201)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:670)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at br.com.fbreda.c_project.util.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:33)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:407)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: javax.faces.el.EvaluationException: java.lang.IllegalStateException: Session/EntityManager is closed
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	... 32 more
Caused by: java.lang.IllegalStateException: Session/EntityManager is closed
	at org.hibernate.internal.AbstractSharedSessionContract.checkOpen(AbstractSharedSessionContract.java:337)
	at org.hibernate.engine.spi.SharedSessionContractImplementor.checkOpen(SharedSessionContractImplementor.java:135)
	at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:685)
	at org.hibernate.internal.SessionImpl.save(SessionImpl.java:681)
	at org.hibernate.internal.SessionImpl.save(SessionImpl.java:676)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:355)
	at com.sun.proxy.$Proxy84.save(Unknown Source)
	at br.com.fbreda.c_project.model.DAO.MoradorDAOHibernate.salvar(MoradorDAOHibernate.java:26)
	at br.com.fbreda.c_project.model.service.MoradorService.salvar(MoradorService.java:33)
	at br.com.fbreda.c_project.controllers.MoradorBean.salvar(MoradorBean.java:56)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:247)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
	at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
	at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	... 33 more

mai 03, 2018 11:32:50 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
GRAVE: javax.faces.el.EvaluationException: java.lang.IllegalStateException: Session/EntityManager is closed
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	at javax.faces.component.UICommand.broadcast(UICommand.java:330)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:870)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1418)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:201)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:670)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at br.com.fbreda.c_project.util.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:33)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:407)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalStateException: Session/EntityManager is closed
	at org.hibernate.internal.AbstractSharedSessionContract.checkOpen(AbstractSharedSessionContract.java:337)
	at org.hibernate.engine.spi.SharedSessionContractImplementor.checkOpen(SharedSessionContractImplementor.java:135)
	at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:685)
	at org.hibernate.internal.SessionImpl.save(SessionImpl.java:681)
	at org.hibernate.internal.SessionImpl.save(SessionImpl.java:676)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:355)
	at com.sun.proxy.$Proxy84.save(Unknown Source)
	at br.com.fbreda.c_project.model.DAO.MoradorDAOHibernate.salvar(MoradorDAOHibernate.java:26)
	at br.com.fbreda.c_project.model.service.MoradorService.salvar(MoradorService.java:33)
	at br.com.fbreda.c_project.controllers.MoradorBean.salvar(MoradorBean.java:56)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:247)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
	at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
	at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	... 33 more

A pagina XHTML

    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://xmlns.jcp.org/jsf/html"
	xmlns:f="http://xmlns.jcp.org/jsf/core"
	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
	xmlns:p="http://primefaces.org/ui"
	template="WEB-INF/templates/Layout.xhtml">

	<ui:define name="content">
		<div class="ui-fluid">
			<h1 class="aw-page-title">Cadastro Unidades</h1>

			<h:form id="form">

				<p:messages autoUpdate="false" />

				<p:panelGrid id="panel" columns="2" layout="grid"
					style="margin-bottom: 15px" styleClass="panelgrid-noborder"
					columnClasses="ui-grid-col-6, ui-grid-col-6">

					<p:outputLabel value="Unidade: " for="unidade" />
					<p:inputText id="unidade" label="Unidade"
						value="#{unidadeBean.unidade.unidade}" />

					<p:outputLabel value="Bloco: " for="bloco" />
					<p:inputText id="bloco" label="Bloco"
						value="#{unidadeBean.unidade.bloco}" />
						
						<p:outputLabel value="Numero de Moradores: " for="moradores" />
					<p:inputText id="moradores" label="NumeroMoradores"
						value="#{unidadeBean.unidade.qtdeMorador}" />

				</p:panelGrid>

				<p:toolbar>
					<p:toolbarGroup>
						<p:commandButton value="Salvar" action="#{unidadeBean.salvar}"
							update="@form" process="@this panel" />

					</p:toolbarGroup>
				</p:toolbar>
			</h:form>
		</div>
	</ui:define>
</ui:composition>

o ManagedBean:

    package br.com.fbreda.c_project.controllers;

import java.io.Serializable;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;

import br.com.fbreda.c_project.model.Unidade;
import br.com.fbreda.c_project.model.service.UnidadeService;

@Named
@ViewScoped
public class UnidadeBean implements Serializable {

	private static final long serialVersionUID = -5255379300304281899L;

	@Inject
	private Unidade unidade;

	private List<Unidade> listaUnidades;

	@Inject
	private UnidadeService unidadeService;

	public String salvar() {

		System.out.println("Salvar do Unidadebean");
		FacesContext context = FacesContext.getCurrentInstance();

		unidadeService.salvar(unidade);

		FacesMessage facesMsg = new FacesMessage("Unidade salva com sucesso");
		context.addMessage(null, facesMsg);

		return "listaUnidades?faces-redirect=true";
	}

	public List<Unidade> getListaUnidades() {
		this.listaUnidades = unidadeService.listar();

		return this.listaUnidades;
	}

	public Unidade getUnidade() {
		return unidade;
	}

	public void setUnidade(Unidade unidade) {
		this.unidade = unidade;
	}

}

A classe de serviço:

    package br.com.fbreda.c_project.model.service;

import java.io.Serializable;
import java.util.List;

import br.com.fbreda.c_project.model.Unidade;
import br.com.fbreda.c_project.model.DAO.DAOFactory;
import br.com.fbreda.c_project.model.interfacesDAO.UnidadeDAO;

public class UnidadeService implements Serializable {

	private static final long serialVersionUID = -7606250922332039422L;

	private UnidadeDAO unidadeDAO;

	public UnidadeService() {
		unidadeDAO = DAOFactory.criarUnidadeDAO();
	}

	public Unidade carregar(long id) {

		return this.unidadeDAO.carregar(id);
	}

	public void salvar(Unidade unidade) {
		System.out.println("salvaro do service");
		unidadeDAO.salvar(unidade);

	}

	public List<Unidade> listar() {

		return unidadeDAO.listar();
	}

}