[jboss-user] [JBoss Seam] - Re: Exception: Could not register transaction ....

miloslav.vlach do-not-reply at jboss.com
Mon Sep 17 14:47:27 EDT 2007


The requestaction again :)


  | package cz.bpsolutions.mis.request;
  | 
  | import java.io.Serializable;
  | import java.util.ArrayList;
  | import java.util.Calendar;
  | import java.util.Collection;
  | import java.util.Date;
  | import java.util.List;
  | 
  | import javax.ejb.Remove;
  | import javax.ejb.Stateful;
  | import javax.persistence.EntityManager;
  | import javax.persistence.PersistenceContext;
  | import javax.persistence.PersistenceContextType;
  | 
  | import org.hibernate.Criteria;
  | import org.hibernate.criterion.Disjunction;
  | import org.hibernate.criterion.MatchMode;
  | import org.hibernate.criterion.Restrictions;
  | import org.hibernate.ejb.EntityManagerImpl;
  | import org.jboss.annotation.ejb.cache.simple.CacheConfig;
  | import org.jboss.seam.ScopeType;
  | import org.jboss.seam.annotations.Begin;
  | import org.jboss.seam.annotations.Destroy;
  | import org.jboss.seam.annotations.End;
  | import org.jboss.seam.annotations.Factory;
  | import org.jboss.seam.annotations.FlushModeType;
  | import org.jboss.seam.annotations.In;
  | import org.jboss.seam.annotations.Logger;
  | import org.jboss.seam.annotations.Name;
  | import org.jboss.seam.annotations.Out;
  | import org.jboss.seam.annotations.datamodel.DataModel;
  | import org.jboss.seam.annotations.datamodel.DataModelSelection;
  | import org.jboss.seam.annotations.security.Restrict;
  | import org.jboss.seam.log.Log;
  | import org.jboss.seam.security.Identity;
  | 
  | import cz.bpsolutions.ims.actions.request.RequestServiceLocal;
  | import cz.bpsolutions.ims.beans.Reason;
  | import cz.bpsolutions.ims.beans.Solution;
  | import cz.bpsolutions.ims.beans.UploadedFile;
  | import cz.bpsolutions.ims.model.Account;
  | import cz.bpsolutions.ims.model.Attachement;
  | import cz.bpsolutions.ims.model.Category;
  | import cz.bpsolutions.ims.model.Request;
  | import cz.bpsolutions.ims.model.RequestFilter;
  | import cz.bpsolutions.ims.model.RequestType;
  | import cz.bpsolutions.ims.service.request.RequestSearchParams;
  | import cz.bpsolutions.ims.workflow.RequestState;
  | import cz.bpsolutions.seam.validation.method.annotation.CustomValidator;
  | import cz.bpsolutions.seam.validation.method.annotation.ValidatedMethod;
  | import cz.bpsolutions.tools.StringTools;
  | 
  | @Name("requestAction")
  | @Stateful
  | @Restrict("#{identity.loggedIn}")
  | public class RequestAction implements RequestActionLocal, Serializable {
  | 
  | 	private static final long serialVersionUID = -5653139064486044176L;
  | 
  | 	@PersistenceContext(type = PersistenceContextType.EXTENDED)
  | 	EntityManager em;
  | 
  | 	@Logger
  | 	Log log;
  | 
  | 	@DataModelSelection(value = "requestActionList")
  | 	@In(required = false)
  | 	@Out(required = false, scope = ScopeType.CONVERSATION)
  | 	private Request request;
  | 
  | 	@DataModelSelection(value = "requestAction_attachements")
  | 	private Attachement attachement;
  | 
  | 	@DataModel(scope = ScopeType.PAGE)
  | 	private Collection<Request> requestActionList;
  | 
  | 	@In(create = true)
  | 	private RequestServiceLocal requestService;
  | 
  | 	@DataModel()
  | 	private Collection<Attachement> requestAction_attachements;
  | 
  | 	@In(required = false)
  | 	private UploadedFile uploadedFile;
  | 
  | 	@In(required = false)
  | 	private Category category;
  | 
  | 	@In(required = false)
  | 	@Out(required = false)
  | 	private Reason reason;
  | 
  | 	@In(scope = ScopeType.SESSION, value = "loggedUser")
  | 	Account loggedUser;
  | 
  | 	@In(required = false)
  | 	private RequestType requestType;
  | 
  | 	@In(required = false)
  | 	private RequestSearchParams requestSearchParams;
  | 
  | 	@In(required = false)
  | 	@Out(required = false)
  | 	Solution solution;
  | 
  | 	@DataModel
  | 	List<Account> requestAction_solvers;
  | 
  | 	@DataModelSelection("requestAction_solvers")
  | 	Account selectedUser;
  | 
  | 	@DataModel()
  | 	List<RequestFilter> requestAction_filters;
  | 
  | 	@DataModelSelection("requestAction_filters")
  | 	@In(required = false)
  | 	@Out(required = false)
  | 	RequestFilter requestFilter;
  | 
  | 	@In(required = false)
  | 	String parReqId;
  | 
  | 	@In(required = false, scope = ScopeType.SESSION)
  | 	@Out(required = false, scope = ScopeType.SESSION)
  | 	RequestFilter rf;
  | 
  | 	@Factory("requestAction_solvers")
  | 	public void initSolvers() {
  | 		log.info("loading solvers for the request: #0", request);
  | 		requestAction_solvers = ((EntityManagerImpl) (em.getDelegate()))
  | 				.getSession().createCriteria(Account.class).list();
  | 	}
  | 
  | 	@Factory("requestAction_attachements")
  | 	public void initAttachements() {
  | 		log.info("loading the attachements");
  | 		if (request != null) {
  | 			requestAction_attachements = request.getAttachements();
  | 		}
  | 	}
  | 
  | 	@Factory("requestActionList")
  | 	public void init() {
  | 		log.info("loading all requests, filter: #0", rf);
  | 
  | 		Criteria cr = ((EntityManagerImpl) (em.getDelegate())).getSession()
  | 				.createCriteria(Request.class);
  | 
  | 		if (rf != null) {
  | 
  | 			// restrikce autora
  | 			if (!StringTools.isEmpty(rf.getAuthorName())) {
  | 				log.info("finding author: #0", rf.getAuthorName());
  | 				cr.createAlias("author", "a");
  | 				cr.add(Restrictions.ilike("a.fullName", rf.getAuthorName(),
  | 						MatchMode.ANYWHERE));
  | 			}
  | 			// restrikce resitele
  | 			if (!StringTools.isEmpty(rf.getSolverName())) {
  | 				log.info("finding solver: #0", rf.getSolverName());
  | 				cr.createAlias("solver", "s");
  | 				cr.add(Restrictions.ilike("s.fullName", rf.getSolverName(),
  | 						MatchMode.ANYWHERE));
  | 			}
  | 			// restrikce operatora
  | 			if (!StringTools.isEmpty(rf.getOperatorName())) {
  | 				log.info("finding operator: #0", rf.getOperatorName());
  | 				cr.createAlias("operator", "o");
  | 				cr.add(Restrictions.ilike("o.fullName", rf.getOperatorName(),
  | 						MatchMode.ANYWHERE));
  | 			}
  | 
  | 			// restrikce kategorii
  | 			if (!StringTools.isEmpty(rf.getCategoriesString())) {
  | 				log.info("finding category: #0", rf.getCategoriesString());
  | 				cr.createAlias("category", "cat");
  | 				Disjunction rs = Restrictions.disjunction();
  | 				for (String catId : rf.getCategoriesString().split(",")) {
  | 					Category cat = (Category) em.find(Category.class, Long
  | 							.valueOf(catId));
  | 					if (cat != null) {
  | 						rs.add(Restrictions.ilike("cat.fullName", cat
  | 								.getFullName(), MatchMode.ANYWHERE));
  | 					}
  | 				}
  | 				cr.add(rs);
  | 			}
  | 
  | 			// restrikce stavu
  | 			if (!StringTools.isEmpty(rf.getStatesString())) {
  | 				log.info("finding states: #0", rf.getStatesString());
  | 				Disjunction rs = Restrictions.disjunction();
  | 
  | 				for (String state : rf.getStatesString().split(",")) {
  | 					rs.add(Restrictions.eq("state", state));
  | 				}
  | 				cr.add(rs);
  | 			}
  | 
  | 			// restrikce nazvu a popisu
  | 			if (!StringTools.isEmpty(rf.getKeyword())) {
  | 				log.info("finding keyword: #0", rf.getKeyword());
  | 				cr.add(Restrictions.disjunction().add(
  | 						Restrictions.ilike("name", rf.getKeyword(),
  | 								MatchMode.ANYWHERE)).add(
  | 						Restrictions.ilike("description", rf.getKeyword(),
  | 								MatchMode.ANYWHERE)));
  | 			}
  | 
  | 			// restrikce requestTypu
  | 			if (!StringTools.isEmpty(rf.getRequestTypesString())) {
  | 				log.info("finding requestType: #0", rf.getRequestTypesString());
  | 				cr.createAlias("requestType", "rt");
  | 				Disjunction dj = Restrictions.disjunction();
  | 
  | 				for (String rt : rf.getRequestTypesString().split(",")) {
  | 					dj.add(Restrictions.eq("rt.id", Long.valueOf(rt)));
  | 				}
  | 				cr.add(dj);
  | 			}
  | 			// restrikce priority
  | 			if (!StringTools.isEmpty(rf.getPrioritiesString())) {
  | 				log.info("finding priority: #0", rf.getPrioritiesString());
  | 				Disjunction rs = Restrictions.disjunction();
  | 
  | 				for (String priority : rf.getPrioritiesString().split(",")) {
  | 					rs.add(Restrictions.eq("priority", Integer
  | 							.valueOf(priority)));
  | 				}
  | 				cr.add(rs);
  | 			}
  | 
  | 			// restrikce datumu
  | 			if (rf.getDateFilter() != null && !rf.getDateFilter().equals(0)) {
  | 				if (rf.getDateFilter() == 1) {
  | 					// dnes
  | 					Date today = new Date();
  | 
  | 					Calendar cal = Calendar.getInstance();
  | 
  | 					cal.setTime(today);
  | 
  | 					cal.set(Calendar.HOUR, 0);
  | 					cal.set(Calendar.MINUTE, 0);
  | 					cal.set(Calendar.SECOND, 0);
  | 					cal.set(Calendar.MILLISECOND, 0);
  | 
  | 					Date from = cal.getTime();
  | 
  | 					cal.set(Calendar.HOUR, 23);
  | 					cal.set(Calendar.MINUTE, 59);
  | 					cal.set(Calendar.SECOND, 59);
  | 
  | 					Date to = cal.getTime();
  | 
  | 					cr.add(Restrictions.between("created", from, to));
  | 				}
  | 				if (rf.getDateFilter() == 2) {
  | 					// 3 dny
  | 					Date today = new Date();
  | 
  | 					Calendar cal = Calendar.getInstance();
  | 
  | 					cal.setTime(today);
  | 
  | 					cal.set(Calendar.HOUR, 23);
  | 					cal.set(Calendar.MINUTE, 59);
  | 					cal.set(Calendar.SECOND, 59);
  | 					Date to = cal.getTime();
  | 
  | 					cal.set(Calendar.HOUR, 0);
  | 					cal.set(Calendar.MINUTE, 0);
  | 					cal.set(Calendar.SECOND, 0);
  | 					cal.set(Calendar.MILLISECOND, 0);
  | 
  | 					cal.add(Calendar.HOUR, -24);
  | 					cal.add(Calendar.HOUR, -24);
  | 					cal.add(Calendar.HOUR, -24);
  | 					Date from = cal.getTime();
  | 
  | 					cr.add(Restrictions.between("created", from, to));
  | 				}
  | 				if (rf.getDateFilter() == 3) {
  | 					Date today = new Date();
  | 
  | 					Calendar cal = Calendar.getInstance();
  | 
  | 					cal.setTime(today);
  | 
  | 					cal.set(Calendar.HOUR, 23);
  | 					cal.set(Calendar.MINUTE, 59);
  | 					cal.set(Calendar.SECOND, 59);
  | 					Date to = cal.getTime();
  | 
  | 					cal.set(Calendar.HOUR, 0);
  | 					cal.set(Calendar.MINUTE, 0);
  | 					cal.set(Calendar.SECOND, 0);
  | 					cal.set(Calendar.MILLISECOND, 0);
  | 
  | 					cal.add(Calendar.HOUR, -24);
  | 					cal.add(Calendar.HOUR, -24);
  | 					cal.add(Calendar.HOUR, -24);
  | 					cal.add(Calendar.HOUR, -24);
  | 					cal.add(Calendar.HOUR, -24);
  | 					cal.add(Calendar.HOUR, -24);
  | 					cal.add(Calendar.HOUR, -24);
  | 					Date from = cal.getTime();
  | 
  | 					cr.add(Restrictions.between("created", from, to));
  | 				}
  | 				if (rf.getDateFilter() == 4) {
  | 					cr.add(Restrictions.between("created", rf.getFromDate(), rf
  | 							.getToDate()));
  | 				}
  | 			}
  | 			requestActionList = cr.list();
  | 
  | 		} else {
  | 			requestActionList = cr.list();
  | 		}
  | 		log.info("raw collection size: #0", requestActionList.size());
  | 
  | 		for (Request r : new ArrayList<Request>(requestActionList)) {
  | 			if (!Identity.instance().hasPermission("request", "read", r)) {
  | 				requestActionList.remove(r);
  | 			}
  | 		}
  | 		log.info("secured collection size: #0", requestActionList.size());
  | 
  | 	}
  | 
  | 	public String find() {
  | 		log.info("finding the requests");
  | 		requestActionList = null;
  | 		return "find";
  | 	}
  | 
  | 	public String delete() {
  | 		log.info("deleting the request: #0", request);
  | 		em.remove(request);
  | 		requestActionList = null;
  | 		return DefaultActions.DELETED;
  | 	}
  | 
  | 	@End(beforeRedirect = true)
  | 	@ValidatedMethod(formName = "addForm", validators = { @CustomValidator(validatorClass = RequestSaveValidator.class, mapping = {
  | 			"category", "requestType", "request" }) })
  | 	public String save() {
  | 		log.info("adding the request #0", request);
  | 		em.refresh(category);
  | 		em.refresh(requestType);
  | 
  | 		requestType.getRequests().add(request);
  | 
  | 		request.setCategory(category);
  | 		request.setAuthor(loggedUser);
  | 		request.setCreated(new Date());
  | 		request.setRequestType(requestType);
  | 
  | 		if (parReqId != null) { // podrizeny request - nastavime vazby a ulozime
  | 			// rodice
  | 			Request parentRequest = em.find(Request.class, Long
  | 					.valueOf(parReqId));
  | 			request.setParent(parentRequest);
  | 			parentRequest.getChildren().add(request);
  | 			em.merge(parentRequest);
  | 			parReqId = null; // pro jistotu
  | 		}
  | 		em.merge(request);
  | 
  | 		requestService.save(request);
  | 		return DefaultActions.SAVED;
  | 	}
  | 
  | 	@ValidatedMethod(formName = "editForm", validators = { @CustomValidator(validatorClass = RequestSaveValidator.class, mapping = {
  | 			"category", "requestType", "request" }) })
  | 	@End(beforeRedirect = true)
  | 	public String update() {
  | 		log.info("adding the request #0", request);
  | 		em.refresh(category);
  | 		em.refresh(requestType);
  | 
  | 		if (!requestType.getRequests().contains(request)) {
  | 			requestType.getRequests().add(request);
  | 		}
  | 		request.setCategory(category);
  | 		request.setAuthor(loggedUser);
  | 		request.setCreated(new Date());
  | 		request.setRequestType(requestType);
  | 
  | 		em.merge(request);
  | 		return DefaultActions.EDITED;
  | 	}
  | 
  | 	@Begin(join = true)
  | 	public String loadDetail() {
  | 		edit();
  | 		return DefaultActions.LOADED;
  | 	}
  | 
  | 	@Begin(join = true)
  | 	public String edit() {
  | 		em.refresh(request);
  | 		requestAction_attachements = request.getAttachements();
  | 		return DefaultActions.EDITED;
  | 	}
  | 
  | 	@Begin(join = true)
  | 	public String addAttachement() {
  | 		checkRequest();
  | 		log.info("adding attachement #0:  #1", request, uploadedFile);
  | 
  | 		if (uploadedFile == null) {
  | 			return null;
  | 		}
  | 
  | 		String location = uploadedFile.getUploadedFile().getName()
  | 				+ (new Date()).toString();
  | 
  | 		Attachement a = new Attachement();
  | 		a.setContentType(uploadedFile.getUploadedFile().getContentType());
  | 		a.setFileName(uploadedFile.getUploadedFile().getName());
  | 		a.setFileSize(uploadedFile.getUploadedFile().getSize());
  | 		a.setRequest(request);
  | 		a.setLocation(location);
  | 
  | 		request.getAttachements().add(a);
  | 		requestAction_attachements = request.getAttachements();
  | 
  | 		return "attachementAdded";
  | 	}
  | 
  | 	@Begin(join = true)
  | 	public String removeAttachement() {
  | 		checkRequest();
  | 		log.info("removing attachement #0", request);
  | 
  | 		request.getAttachements().remove(attachement);
  | 		requestAction_attachements = request.getAttachements();
  | 
  | 		return "attachementRemoved";
  | 	}
  | 
  | 	private void checkRequest() {
  | 		if (request == null) {
  | 			request = new Request();
  | 		}
  | 	}
  | 
  | 	@Destroy
  | 	@Remove
  | 	public void destroy() {
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda je volaná kdy? chce autor akceptovat vy?e?ení HelpDesku.
  | 	 * Metoda je kone?ná.
  | 	 */
  | 	@Begin(join = true)
  | 	public String authAcceptSolution() {
  | 		requestService.authAcceptSolution(request);
  | 		return null;
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda je volaná kdy? chce autor odmítnout (reklamovat) validované
  | 	 * ?e?ení. Metoda p?esm?rovává na stránku se zadáním d?vodu.
  | 	 */
  | 	@Begin(join = true)
  | 	public String authRejectSolution() {
  | 		reason = new Reason();
  | 		return "rejectSolution";
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda je volaná kdy? chce autor odmítnout (reklamovat) validované
  | 	 * ?e?ení. Metoda se zavolá ze stránky, která definovala d?vod pro odmítnutí
  | 	 * ?e?ení.
  | 	 */
  | 	@End(beforeRedirect = true)
  | 	@ValidatedMethod(formName = "rejectForm", validators = { @CustomValidator(validatorClass = ReasonValidator.class, mapping = "reason") })
  | 	public String authSaveRejectSolution() {
  | 		requestService.authSaveRejectSolution(request, reason);
  | 		return "rejectedSolution";
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda nastaví operátor?v souhlas s autorovou reklamací. Vrací
  | 	 * po?adavek zp?t do stavu "?e?í se"
  | 	 */
  | 	@End(beforeRedirect = true)
  | 	public String opAcceptReclamation() {
  | 		requestService.opAcceptReclamation(request);
  | 		return null;
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda nastavuje validaci operátora s vy?e?ením po?adavku.
  | 	 */
  | 	@End(beforeRedirect = true)
  | 	public String opAcceptSolution() {
  | 		requestService.opAcceptSolution(request);
  | 		return null;
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda posíla p?esm?rování na solverselect.xhtml, kde se zobrazí
  | 	 * v?ichni ?e?itelé.
  | 	 */
  | 	@Begin(join = true)
  | 	public String opAssignSolver() {
  | 		log.info("forwarding to select solver...");
  | 		return "selectSolver";
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda zajistí ulo?ení vybraného ?e?itele. Odskakuje zp?t na
  | 	 * /actions/request/list.xhtml
  | 	 */
  | 	@End(beforeRedirect = true)
  | 	public String opSaveAssignSolver() {
  | 		log.info("saving the assigned solver...");
  | 		requestService.opSaveAssignSolver(request, selectedUser);
  | 		return "solverSelected";
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda provede p?esm?rování na stránku pro zadání od?vodn?ní
  | 	 * nesouhlasu s autorovou reklamací.
  | 	 */
  | 	@Begin(join = true)
  | 	public String opRejectReclamation() {
  | 		log.info("redirecting to the rejectreclamation");
  | 		return "rejectReclamation";
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda zavolá servisku pro odmítnutí u?ivatelské reklamace.
  | 	 */
  | 	@End(beforeRedirect = true)
  | 	@ValidatedMethod(formName = "rejectForm", validators = { @CustomValidator(validatorClass = ReasonValidator.class, mapping = "reason") })
  | 	public String opSaveRejectReclamation() {
  | 		requestService.opSaveRejectReclamation(request, reason);
  | 		return "rejectReclamationSaved";
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda zajistí p?esm?rování na zadání d?vodu pro odmítnutí po?adaku.
  | 	 */
  | 	@Begin(join = true)
  | 	public String opRejectRequest() {
  | 		log.info("forwarding to request reject.");
  | 		return "rejectRequest";
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda zajistí zapsání informace o odmítnutí a odmítnutí po?adavku.
  | 	 */
  | 	@End(beforeRedirect = true)
  | 	@ValidatedMethod(formName = "rejectForm", validators = { @CustomValidator(validatorClass = ReasonValidator.class, mapping = "reason") })
  | 	public String opSaveRejectRequest() {
  | 		requestService.opSaveRejectRequest(request, reason);
  | 		return "rejectRequestSaved";
  | 	}
  | 
  | 	public String opRejectSolution() {
  | 		request.setState(RequestState.SOLVING);
  | 		em.merge(request);
  | 		return "returnToSolving";
  | 	}
  | 
  | 	@End(beforeRedirect = true)
  | 	public String opSaveRejectSolution() {
  | 		// TODO Auto-generated method stub
  | 		return "returnedToSolving";
  | 	}
  | 
  | 	/** nastavi stav v reseni */
  | 	@End(beforeRedirect = true)
  | 	public String solvAcceptAssignment() {
  | 		requestService.solvAcceptAssignment(request);
  | 		return "";
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda provede p?esm?rování na formulá? zadávající d?vod pro?
  | 	 * ?e?itel odmítl po?adavek.
  | 	 */
  | 	@Begin(join = true)
  | 	public String solvRejectAssignment() {
  | 		log.info("redirecting to the reject solving");
  | 		reason = new Reason();
  | 		return "rejectAssignment";
  | 	}
  | 
  | 	@End(beforeRedirect = true)
  | 	@ValidatedMethod(formName = "rejectForm", validators = { @CustomValidator(validatorClass = ReasonValidator.class, mapping = "reason") })
  | 	public String solvSaveRejectAssignment() {
  | 		requestService.solvSaveRejectAssignment(request, reason);
  | 		return "rejectAssignmentSaved";
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda p?epo?le ?e?itele na zadání ?e?ení.
  | 	 */
  | 	@Begin(join = true)
  | 	public String solvSolveRequest() {
  | 		log.info("redirecting to the add solution");
  | 		em.refresh(request);
  | 		return "solveRequest";
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda ulo?í vy?e?ení, nebo p?idá ?e?ení ke stávajícímu
  | 	 */
  | 	@End(beforeRedirect = true)
  | 	@ValidatedMethod(formName = "solveForm", validators = { @CustomValidator(validatorClass = SolutionValidator.class, mapping = "request") })
  | 	public String solvSaveSolveRequest() {
  | 		requestService.solvSolveRequest(request, solution);
  | 		return "solutionSaved";
  | 	}
  | 
  | 	/**
  | 	 * Tato metoda p?eposílá na správu filtr?
  | 	 */
  | 	public String manageFilters() {
  | 		return "manageFilters";
  | 	}
  | 
  | 	@Factory("requestAction_filters")
  | 	public void initFilters() {
  | 		requestAction_filters = ((EntityManagerImpl) (em.getDelegate()))
  | 				.getSession().createCriteria(RequestFilter.class).createAlias(
  | 						"account", "a").add(
  | 						Restrictions.eq("a.id", loggedUser.getId())).list();
  | 		log.info("loading user filters for request: #0", requestAction_filters);
  | 	}
  | 
  | 	public String setFilter(Long id) {
  | 		log.info("trying to set filter #0", id);
  | 		rf = (RequestFilter) em.find(RequestFilter.class, id);
  | 		log.info("succesfully loaded filter: #0", rf);
  | 		requestActionList = null;
  | 		return "list";
  | 	}
  | 
  | 	public String deleteFilter() {
  | 		log.info("deleting filter #0", requestFilter);
  | 		Account a = (Account) em.find(Account.class, requestFilter.getAccount()
  | 				.getId());
  | 		// a.getFilters().remove(requestFilter);
  | 		em.remove(requestFilter);
  | 		em.merge(a);
  | 
  | 		requestAction_filters = null;
  | 		return "filterDeleted";
  | 	}
  | 
  | 	public void initAddChildren() {
  | 		if (parReqId != null) {
  | 			request = null;
  | 		}
  | 	}
  | 
  | 	@Begin(nested = true)
  | 	public String addFilter() {
  | 		return "addFilter";
  | 	}
  | 
  | 	@End(beforeRedirect = true)
  | 	public String saveFilter() {
  | 		requestFilter.setAccount(loggedUser);
  | 		Account a = em.find(Account.class, loggedUser.getId());
  | 
  | 		a.getFilters().add(requestFilter);
  | 		em.refresh(a);
  | 
  | 		em.merge(requestFilter);
  | 		em.merge(a);
  | 		requestAction_filters = null;
  | 		requestFilter = null;
  | 		return "filterSaved";
  | 	}
  | 
  | 	public String editFilter() {
  | 		return "editFilter";
  | 	}
  | 
  | 	public String removeFilter() {
  | 		return null;
  | 	}
  | 
  | 	public String updateFilter() {
  | 		return "filterSaved";
  | 	}
  | 
  | 	public String cancelFilter() {
  | 		rf = null;
  | 		requestActionList = null;
  | 		return "list";
  | 	}
  | }
  | 
  | 


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

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




More information about the jboss-user mailing list