[jboss-user] [JBoss Seam] - Re: Workspaces and Concurrent Conversations

harpritt do-not-reply at jboss.com
Mon Jul 16 06:57:58 EDT 2007


Hi ya

Got this one licked! Im not entirely sure what the exact reason is but i will try to explain what i had and what i did to correct it.



THIS IS WHAT I HAD
Symtoms : User A on Browser A would get logged out by user B on Browser B.... 

@Stateful
  | @Name("ticketSystem")
  | @Conversational
  | public class TicketSystemAction implements TicketSystem {
  | 
  |     @In(required = false)
  |     @Out(scope = BUSINESS_PROCESS,required = false)
  |     ChangeRequest changerequest;
  | 
  | 
  | 
  |     @In(required = false)
  |     GsmsMetaData gsmsMetaData;
  | 
  |     @In(required = false)
  |     NewGSMSData newGsmsData;
  | 
  |     @In(required = false)
  |     RequestState requestState;
  | 
  |     @In(required = false)
  |     RequestReference requestReference;
  | 
  |     @In
  |     User user;
  | 
  | 
  |     @Begin
  |     public String newTicket() {
  |         if (changerequest.getCrAction().equals("EDIT")) {
  |             return "editdoc";
  |         }
  |         if (changerequest.getCrAction().equals("NEW")) {
  |             return "newdoc";
  |         }
  |         if (changerequest.getCrAction().equals("MOVE")) {
  |             return "movedoc";
  |         }
  |         if (changerequest.getCrAction().equals("DELETE")) {
  |             return "deletedoc";
  |         }
  |         if (changerequest.getCrAction().equals("OTHER")) {
  |             return "other";
  |         }
  |         //throw exception
  |         return "home";
  |     }
  | 
  |     @End
  |     @CreateProcess(definition = "changerequestprocess")
  |     public String submitTicket() {
  | 
  |         //CREATE Change request
  |         
  |         //PERSIST IT
  |         getChangeRequestDAO().saveCr(changerequest);
  | 
  | 
  |         return "home";
  |     }
  | 
  | 
  | 
  |     @BeginTask
  |     public String view_cr_waiting_appapproval() {
  |         return "viewcrwaitingappApproval";
  |     }
  | 
  |     @EndTask(transition = "accept")
  |     public String appAcceptcr() {
  |         return "home";
  | 
  |     }
  | 
  |     @EndTask(transition = "reject")
  |     public String appRejectCr() {
  |         return "home";
  |     }
  | 
  |     @BeginTask
  |     public String view_cr_waiting_editor_revise() {
  |         return "view_crwaiting_edrevise";
  |     }


THIS IS WHAT I DID

I Moved the methods invold in conversational scope into a seperate class.... 

@Stateful
  | @Name("createChangeRequest")
  | public class CreateChangeRequestAction implements CreateChangeRequest {
  | 
  |     @In(required = false)
  |        @Out(scope = BUSINESS_PROCESS,required = false)
  |         ChangeRequest changerequest;
  |     @In(required = false)
  |     GsmsMetaData gsmsMetaData;
  | 
  |     @In(required = false)
  |     NewGSMSData newGsmsData;
  | 
  |     @In(required = false)
  |     RequestState requestState;
  | 
  |     @In(required = false)
  |     RequestReference requestReference;
  | 
  |     @In
  |     User user;
  | 
  | 
  |       @Begin
  |       public String newTicket() {
  |         if (changerequest.getCrAction().equals("EDIT")) {
  |             return "editdoc";
  |         }
  |         if (changerequest.getCrAction().equals("NEW")) {
  |             return "newdoc";
  |         }
  |         if (changerequest.getCrAction().equals("MOVE")) {
  |             return "movedoc";
  |         }
  |         if (changerequest.getCrAction().equals("DELETE")) {
  |             return "deletedoc";
  |         }
  |         if (changerequest.getCrAction().equals("OTHER")) {
  |             return "other";
  |         }
  |         //throw exception
  |         return "home";
  |     }
  | 
  |     @End
  |     public String submitTicket() {
  | 
  |         //CREATE CHANGE REQUEST
  | 
  |         getChangeRequestDAO().saveCr(changerequest);
  | 
  |         TicketSystem TS = new TicketSystemAction();
  |         
  |         
  |         return TS.startTheCrProcess();
  | 
  |     }
  | 


This was a hunch that worked, Id really like to know why it did what it did but i dont have the time. Ill post again when i work out..... 

... 


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4064487#4064487

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4064487



More information about the jboss-user mailing list