Conversation ends on its own
vikramchhetryy Jan 11, 2008 2:51 AMHi All,
I am trying to edit User details in a very unorthodox manner, I dont know if this is cause for Conversation problem.
My Code:-
public class CallCenterAgentEditAction implements CallCenterAgentEdit { @Logger private Log log; @PersistenceContext private EntityManager entityManager; @Out(required = false) Person person; @Out(required = false) Account account; @Out(required = false) PersonContactDetail personContactDetail; @Out(required = false) Roles roles; @In FacesMessages facesMessages; public String prevSelectedCallCenterAgentDetails() { log.info("Inside editSelectedCallCenterAgentDetails method "); log.info("Exiting editSelectedCallCenterAgentDetails method"); return "callCenterAgentEditPrev.xhtml"; } @Begin public void getSelectedCallCenterAgentDetails(Account acc) { log.info("Inside getSelectedCallCenterAgentDetails method"); int personId = acc.getPerson().getIpersonId(); person = (Person) entityManager.createQuery( "from Person p " + "where " + "p.ipersonId = :personId ") .setParameter("personId", personId).getSingleResult(); personContactDetail = (PersonContactDetail) entityManager.createQuery( "from PersonContactDetail p " + "where " + "p.person.ipersonId = :personId ").setParameter( "personId", personId).getSingleResult(); int roleId = (Integer) entityManager.createQuery( "select pr.roles.iroleId from PersonRoles pr " + "where " + "pr.person.ipersonId = :personId ").setParameter( "personId", personId).getSingleResult(); roles = new Roles(); roles.setIroleId(roleId); account = acc; log.info("Exiting getSelectedCallCenterAgentDetails method"); } @End public void updateCallCenterAgentDetails() { log.info("Inside updateCallCenterAgentDetails method"); CallCenterAgent callCenterAgent = new CallCenterAgent(); PersonRoles personRoles = new PersonRoles(); Date date = new Date(); log.info("After Creating object"); person.setDtUpdated(date); account.setDtUpdated(date); personContactDetail.setDtUpdated(date); callCenterAgent.setIcallCenterAgentId(person.getIpersonId()); callCenterAgent.setDtUpdated(date); personRoles.getPerson().setIpersonId(person.getIpersonId()); personRoles.getPerson().setIpersonId(person.getIpersonId()); personRoles.getRoles().setIroleId(roles.getIroleId()); log.info("Updating the database"); entityManager.merge(person); entityManager.merge(account); entityManager.merge(personContactDetail); entityManager.merge(personRoles); entityManager.merge(callCenterAgent); facesMessages.add("Successfully updated the Agent"); log.info("Exiting updateCallCenterAgentDetails method"); } @Remove public void destroy() { } public String editAgentMoveBack() { return "/callCenterAgentAdd.xhtml"; } @End public void cancel() { } }
<page view-id="/callCenterAgentManage.xhtml" login-required="true"> <navigation from-action="#{callCenterAgentEdit.getSelectedCallCenterAgentDetails(details)}"> <redirect view-id="/callCenterAgentEdit.xhtml" /> </navigation> <navigation from-action="#{callCenterAgentManage.updateCallCenterAgentDetails}"> <redirect view-id="/callCenterAgentManage.xhtml" /> </navigation> <navigation from-action="#{callCenterAgentManage.cancel}"> <redirect view-id="/callCenterAgentManage.xhtml" /> </navigation> </page>
edit xhtml
<s:decorate id="fNameDecoration" template="layout/edit.xhtml"> <ui:define name="label">First Name</ui:define> <h:inputText id="fName" required="true" value="#{person.strFirstName}"> <a:support event="onblur" reRender="fNameDecoration" /> </h:inputText> </s:decorate>
when i try to change the details the conversation ends and after some time when I see the server logs it says multiple threads running and the screen hangs.
Can anyone help me get througn this?
Any help would be appreciated.
-Vikram