List of usage examples for org.springframework.transaction.interceptor TransactionAspectSupport currentTransactionStatus
public static TransactionStatus currentTransactionStatus() throws NoTransactionException
From source file:com.mobileman.projecth.web.controller.PublicController.java
@Transactional @RequestMapping(method = RequestMethod.POST, value = "/behandlung/pwbnvergessen2") public String changepwd(HttpServletRequest request, HttpServletResponse response, Model model) { String code = request.getParameter("code"); String password = request.getParameter("password"); String password2 = request.getParameter("password2"); model.addAttribute("code", code); boolean error = true; try {//from ww w .j a v a 2 s .c o m if (StringUtils.isNotBlank(password) && StringUtils.isNotBlank(password2) && StringUtils.isNotBlank(code)) { if (password.equals(password2)) { User user = userService.findUserByActivationUID(code); if (user != null) { userService.changePassword(user.getId(), null, password); model.addAttribute("info", true); error = false; } } else { model.addAttribute("errorsame", true); error = false; } } } catch (Exception ex) { if (LoginException.class.isInstance(ex)) { fillLoginError(model, LoginException.class.cast(ex)); error = false; } ex.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } if (error) { model.addAttribute("error", true); } return "behandlung/pwbnvergessen2"; }
From source file:org.openregistry.core.service.DefaultPersonService.java
/** * Persists an SorPerson on update.//ww w.ja v a 2 s . c o m * * @param sorPerson the person to update. * @return serviceExecutionResult. */ public ServiceExecutionResult<SorPerson> updateSorPerson(final SorPerson sorPerson) { final Set validationErrors = this.validator.validate(sorPerson); if (!validationErrors.isEmpty()) { Iterator iter = validationErrors.iterator(); while (iter.hasNext()) { logger.info("validation errors: " + iter.next()); } //since because of existing design we cannot raise exception, we can only rollback the transaction through code //OR-384 if (TransactionAspectSupport.currentTransactionStatus() != null) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } return new GeneralServiceExecutionResult<SorPerson>(validationErrors); } //do reconciliationCheck to make sure that modifications do not cause person to reconcile to a different person if (!this.reconciler.reconcilesToSamePerson(sorPerson)) { throw new IllegalStateException(); } // Iterate over any sorRoles setting sorid and source id if not specified by SoR. for (final SorRole sorRole : sorPerson.getRoles()) { setRoleIdAndSource(sorRole, sorPerson.getSourceSor()); } // Save Sor Person final SorPerson savedSorPerson = this.personRepository.saveSorPerson(sorPerson); Person person = this.findPersonById(savedSorPerson.getPersonId()); Assert.notNull(person, "person cannot be null."); logger.info("Verifying Number of calculated Roles before the calculate: " + person.getRoles().size()); // Iterate over sorRoles. SorRoles may be new or updated. for (final SorRole savedSorRole : savedSorPerson.getRoles()) { logger.info("DefaultPersonService: savedSorPersonRole Found, savedSorRoleID: " + savedSorRole.getId()); logger.info("DefaultPersonService: savedSorPersonRole Found, Role Must be newly added."); //let sor role elector decide if this new role can be converted to calculated one sorRoleElector.addSorRole(savedSorRole, person); logger.info("Verifying Number of calculated Roles after calculate: " + person.getRoles().size()); } for (final IdentifierAssigner ia : this.identifierAssigners) { ia.addIdentifierTo(sorPerson, person); } person = recalculatePersonBiodemInfo(person, savedSorPerson, RecalculationType.UPDATE, false); person = this.personRepository.savePerson(person); return new GeneralServiceExecutionResult<SorPerson>(savedSorPerson); }
From source file:org.openregistry.core.service.DefaultPersonService.java
public ServiceExecutionResult<SorRole> updateSorRole(final SorPerson sorPerson, final SorRole sorRole) { Assert.notNull(sorPerson, "sorPerson cannot be null."); Assert.notNull(sorRole, "sorRole cannot be null."); final Set validationErrors = this.validator.validate(sorRole); if (!validationErrors.isEmpty()) { //since because of existing design we cannot raise exception, we can only rollback the transaction through code //OR-384//from w w w . j a v a 2 s .c o m if (TransactionAspectSupport.currentTransactionStatus() != null) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } return new GeneralServiceExecutionResult<SorRole>(validationErrors); } final SorRole savedSorRole = this.personRepository.saveSorRole(sorRole); final Person person = this.personRepository.findByInternalId(sorPerson.getPersonId()); final Role role = person.findRoleBySoRRoleId(savedSorRole.getId()); if (role != null) { //update calculated role only if that role was previously converted to calculated one by sorRoleElector role.recalculate(savedSorRole); this.personRepository.savePerson(person); } //else //do nothing i.e. don't update the calculated role if SorRoleElector Previously decided not to convert this sor role to calculated role return new GeneralServiceExecutionResult<SorRole>(savedSorRole); }
From source file:com.mobileman.projecth.web.controller.ArztController.java
@Transactional @RequestMapping(method = RequestMethod.POST, value = "/arzt/send_new_message") public @ResponseBody String sendMessage(HttpServletRequest request, HttpServletResponse response, Model model) { DataHolder dataHolder = new DataHolder(request); Doctor doctor = dataHolder.getDoctor(); String result = ""; String receiver = request.getParameter("receiver"); String subject = request.getParameter("subject"); String body = request.getParameter("body"); boolean copy = Boolean.parseBoolean(request.getParameter("copy")); try {//from w w w. j a va 2 s. c o m messageService.sendMessage(doctor.getId(), Long.valueOf(receiver), subject, body, copy); result = "ok"; } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); result = "error"; } return result; }
From source file:com.mobileman.projecth.web.controller.ArztController.java
@Transactional @RequestMapping(method = RequestMethod.POST, value = "/arzt/reply_to_message") public @ResponseBody String replyMessage(HttpServletRequest request, HttpServletResponse response, Model model) {//from w w w.j av a 2 s. c om String result = ""; String messageId = request.getParameter("messageId"); String body = request.getParameter("body"); boolean copy = Boolean.parseBoolean(request.getParameter("copy")); try { messageService.sendReplyToMessage(Long.valueOf(messageId), body, copy); result = "ok"; } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); result = "error"; } return result; }
From source file:com.qcadoo.model.internal.DataAccessServiceImpl.java
private EntityOpResult deleteEntity(final InternalDataDefinition dataDefinition, final Long entityId, final boolean testOnly, final Set<EntitySignature> traversedEntities) { Object databaseEntity = getDatabaseEntity(dataDefinition, entityId); checkNotNull(databaseEntity, "Entity[%s][id=%s] cannot be found", dataDefinition.getPluginIdentifier() + "." + dataDefinition.getName(), entityId); Entity entity = get(dataDefinition, entityId); if (!dataDefinition.callDeleteHook(entity)) { logDeletionErrors(entity);/*from ww w .ja v a 2 s.c o m*/ entity.addGlobalError("qcadooView.message.deleteFailedMessage"); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return EntityOpResult.failure(entity); } priorityService.deprioritizeEntity(dataDefinition, databaseEntity); Map<String, FieldDefinition> fields = dataDefinition.getFields(); for (FieldDefinition fieldDefinition : fields.values()) { if (fieldDefinition.getType() instanceof CollectionFieldType) { CollectionFieldType collectionFieldType = (CollectionFieldType) fieldDefinition.getType(); @SuppressWarnings("unchecked") Collection<Entity> children = (Collection<Entity>) entity.getField(fieldDefinition.getName()); EntityOpResult cascadeDeletionRes = performCascadeStrategy(entity, collectionFieldType, children, traversedEntities); if (!cascadeDeletionRes.isSuccessfull()) { return cascadeDeletionRes; } } } if (testOnly) { logEntityInfo(dataDefinition, entityId, "may be cascade deleted"); } else { try { databaseEntity = getDatabaseEntity(dataDefinition, entityId); if (databaseEntity != null) { hibernateService.getCurrentSession().delete(databaseEntity); hibernateService.getCurrentSession().flush(); } } catch (ConstraintViolationException e) { throw new IllegalStateException(getConstraintViolationMessage(entity), e); } logEntityInfo(dataDefinition, entityId, "has been deleted"); } return new EntityOpResult(true, entity); }
From source file:com.mobileman.projecth.web.controller.ArztController.java
@Transactional @RequestMapping(method = RequestMethod.POST, value = "/arzt/mark_as_read") public @ResponseBody String markAsRead(HttpServletRequest request, HttpServletResponse response, Model model) { String result = ""; String messageId = request.getParameter("messageId"); try {//from w w w . j ava2 s . c o m messageService.markAsRead(Long.valueOf(messageId), true); result = "ok"; } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); result = "error"; } return result; }
From source file:com.mobileman.projecth.web.controller.ArztController.java
@Transactional @RequestMapping(method = RequestMethod.POST, value = "/arzt/mark_as_unread") public @ResponseBody String markAsUnread(HttpServletRequest request, HttpServletResponse response, Model model) {//w w w . j ava 2 s .c o m String result = ""; String messageId = request.getParameter("messageId"); try { messageService.markAsRead(Long.valueOf(messageId), false); result = "ok"; } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); result = "error"; } return result; }
From source file:com.mobileman.projecth.web.controller.ArztController.java
@Transactional @RequestMapping(method = RequestMethod.POST, value = "/arzt/delete_message") public @ResponseBody String deleteMessage(HttpServletRequest request, HttpServletResponse response, Model model) {//from w w w . ja v a 2 s . c om String result = ""; String messageId = request.getParameter("messageId"); DataHolder dataHolder = new DataHolder(request); Doctor doctor = dataHolder.getDoctor(); try { messageService.deleteMessage(doctor.getId(), Long.valueOf(messageId)); result = "ok"; } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); result = "error"; } return result; }
From source file:com.mobileman.projecth.web.controller.ArztController.java
@Transactional @RequestMapping(method = RequestMethod.POST, value = "/arzt/mark_as_spam") public @ResponseBody String markAsSpamMessage(HttpServletRequest request, HttpServletResponse response, Model model) {/* w w w. j av a2s. co m*/ String result = ""; String messageId = request.getParameter("messageId"); try { messageService.markAsSpam(Long.valueOf(messageId), true); result = "ok"; } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); result = "error"; } return result; }