Example usage for org.springframework.transaction.interceptor TransactionAspectSupport currentTransactionStatus

List of usage examples for org.springframework.transaction.interceptor TransactionAspectSupport currentTransactionStatus

Introduction

In this page you can find the example usage for org.springframework.transaction.interceptor TransactionAspectSupport currentTransactionStatus.

Prototype

public static TransactionStatus currentTransactionStatus() throws NoTransactionException 

Source Link

Document

Return the transaction status of the current method invocation.

Usage

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;
}