From c68b2731bb1bfdaa70603efd4f523f8f3c08b2c7 Mon Sep 17 00:00:00 2001 From: maroni Date: Fri, 6 Jul 2012 01:18:11 -0300 Subject: [PATCH] =?utf8?q?Modifica=C3=A7=C3=B5es=20no=20sistema=20de=20conex?= =?utf8?q?=C3=A3o=20com=20BD=20para=20evitar=20erro=20de=20shared=20chache=20?= =?utf8?q?e=20ajuste=20em=20nullpointerexception=20ao=20pular=20a=20etapa=20?= =?utf8?q?do=20diagnostico.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../simdecs/comunicacao/BaseComunicacao.java | 12 ++++++++-- .../simdecs/comunicacao/MetodoIniciaCaso.java | 11 ++++----- .../org/ufcspa/simdecs/mediador/LogExecucao.java | 8 +++--- .../simdecs/mediador/NegociacaoPedagogica.java | 22 ++++++++++++------- web/login.xhtml | 2 +- 5 files changed, 33 insertions(+), 22 deletions(-) diff --git a/src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java b/src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java index 0ca35b7..95e6399 100644 --- a/src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java +++ b/src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java @@ -10,6 +10,7 @@ import java.io.StringWriter; import java.util.Iterator; import java.util.Map; import javax.persistence.EntityManager; +import javax.persistence.Persistence; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -65,7 +66,6 @@ public abstract class BaseComunicacao extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - EntityManager em = DbUtil.getInstance().getEntityManager(); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); @@ -85,8 +85,11 @@ public abstract class BaseComunicacao extends HttpServlet { } printDebug("------------------------------------------------------------------------------------"); + EntityManager em = null; try { - + // EntityManager em = DbUtil.getInstance().getEntityManager(); + em = Persistence.createEntityManagerFactory("SimDeCSPU").createEntityManager(); + executaServico(em, request, response, out); } catch(Exception e) { out.println("" ); @@ -111,7 +114,10 @@ public abstract class BaseComunicacao extends HttpServlet { out.println("" ); e.printStackTrace(); - } finally { + } finally { + if (em != null) + em.close(); + out.close(); } } diff --git a/src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java b/src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java index 133eb7b..014e311 100644 --- a/src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java +++ b/src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java @@ -24,8 +24,7 @@ import unbbayes.prs.bn.TreeVariable; */ public class MetodoIniciaCaso extends BaseComunicacao { - private String getPerguntaNodo(Long idNodo) { - EntityManager em = DbUtil.getInstance().getEntityManager(); + private String getPerguntaNodo(Long idNodo, EntityManager em) { List perguntas = em.createQuery("From PerguntaNodo where nodo.id=:pIdNodo") .setParameter("pIdNodo", idNodo) .getResultList(); @@ -195,7 +194,7 @@ public class MetodoIniciaCaso extends BaseComunicacao { } { - String pergunta = getPerguntaNodo(nodo.getNodo().getId()); + String pergunta = getPerguntaNodo(nodo.getNodo().getId(), em); String resposta = getRespostaNodo(nodo.getNodo(), paciente); registraPerguntaLog(em, sessaoUsuario, paciente, nodo.getNodo(), true, Nodo.SINAL_SINTOMA, pergunta, nodo.getNodo().getNomeAmigavel(), resposta); listaSintomas.add(" "); @@ -210,7 +209,7 @@ public class MetodoIniciaCaso extends BaseComunicacao { } { - String pergunta = getPerguntaNodo(nodo.getId()); + String pergunta = getPerguntaNodo(nodo.getId(), em); String resposta = getRespostaNodo(nodo, paciente); registraPerguntaLog(em, sessaoUsuario, paciente, nodo, false, Nodo.SINAL_SINTOMA, pergunta, nodo.getNomeAmigavel(), resposta); listaSintomas.add(" "); @@ -281,7 +280,7 @@ public class MetodoIniciaCaso extends BaseComunicacao { while (itDiagnosticos.hasNext()) { Nodo nodo = itDiagnosticos.next(); { - String resposta = getPerguntaNodo(nodo.getId()); + String resposta = getPerguntaNodo(nodo.getId(), em); registraPerguntaLog(em, sessaoUsuario, paciente, nodo, false, Nodo.DIAGNOSTICO, null, nodo.getNomeAmigavel(), resposta); out.println(" "); } @@ -293,7 +292,7 @@ public class MetodoIniciaCaso extends BaseComunicacao { while (itConduta.hasNext()) { Nodo nodo = itConduta.next(); { - String resposta = getPerguntaNodo(nodo.getId()); + String resposta = getPerguntaNodo(nodo.getId(), em); registraPerguntaLog(em, sessaoUsuario, paciente, nodo, false, Nodo.CONDUTA, null, nodo.getNomeAmigavel(), resposta); out.println(" "); } diff --git a/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java b/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java index 21400ce..d0b5c8b 100644 --- a/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java +++ b/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java @@ -66,7 +66,7 @@ public class LogExecucao { private EntityManager em; - public final void refresh(SessaoUsuario sessaoUsuario, Paciente paciente) throws Exception { + public final void refresh(SessaoUsuario sessaoUsuario, Paciente paciente, EntityManager em) throws Exception { // Inicializa Valores perguntasRealizadas = perguntasDisponiveis = perguntasProfessor = perguntasBogusRealizadas = @@ -88,7 +88,7 @@ public class LogExecucao { nodosInvestigacao = new ArrayList(); - em = DbUtil.getInstance().getEntityManager(); + //em = DbUtil.getInstance().getEntityManager(); Iterator itLog = em.createQuery("From Log where sessaoUsuario.id=:pIDSessao order by data") .setParameter("pIDSessao", sessaoUsuario.getId()) @@ -244,8 +244,8 @@ public class LogExecucao { } } - public LogExecucao(SessaoUsuario sessaoUsuario, Paciente paciente) throws Exception { - refresh(sessaoUsuario, paciente); + public LogExecucao(SessaoUsuario sessaoUsuario, Paciente paciente, EntityManager em) throws Exception { + refresh(sessaoUsuario, paciente, em); } public boolean isAbriuFichaPaciente() { diff --git a/src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java b/src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java index 4583ba8..25f6a3d 100644 --- a/src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java +++ b/src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java @@ -7,6 +7,7 @@ package org.ufcspa.simdecs.mediador; import java.util.*; import javax.persistence.EntityManager; import javax.persistence.NoResultException; +import javax.persistence.Persistence; import org.ufcspa.simdecs.entities.*; import org.ufcspa.simdecs.util.DbUtil; import org.ufcspa.simdecs.util.NodoBean; @@ -520,7 +521,7 @@ public class NegociacaoPedagogica { // Verifica as condutas - if (logExecucao.isConcluiuConduta()) { + if (logExecucao.isConcluiuConduta() && logExecucao.isConcluiuDiagnostico()) { // Verifica a adequacao da conduta String resultadoConduta = getResultadoConduta(); resultadosSimulacao.add(resultadoConduta); @@ -549,13 +550,18 @@ public class NegociacaoPedagogica { } public NegociacaoPedagogica(long idSessao, Paciente paciente) throws Exception { - em = DbUtil.getInstance().getEntityManager(); - SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, idSessao); - this.sessaoUsuario = sessaoUsuario; - this.paciente = paciente; - - // Busca o log de execução - logExecucao = new LogExecucao(sessaoUsuario, paciente); + //em = DbUtil.getInstance().getEntityManager(); + try { + em = Persistence.createEntityManagerFactory("SimDeCSPU").createEntityManager(); + SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, idSessao); + this.sessaoUsuario = sessaoUsuario; + this.paciente = paciente; + + // Busca o log de execução + logExecucao = new LogExecucao(sessaoUsuario, paciente, em); + } finally { + em.close(); + } } public String getIntervencao(String etapa) throws Exception { diff --git a/web/login.xhtml b/web/login.xhtml index d0a2b2d..a86dc50 100644 --- a/web/login.xhtml +++ b/web/login.xhtml @@ -35,7 +35,7 @@ Acesso ao Simulador

- + -- 1.7.6.4