Search in sources :

Example 6 with OptimisticLockingFailureException

use of org.springframework.dao.OptimisticLockingFailureException in project vladmihalcea.wordpress.com by vladmihalcea.

the class ProductRepositoryIT method testSave.

@Test
public void testSave() {
    Product product = new Product();
    product.setId(123L);
    product.setName("Tv");
    product.setQuantity(BigInteger.TEN);
    product.setDiscount(BigDecimal.valueOf(12.34));
    productRepository.save(product);
    Product savedProduct = productRepository.findOne(123L);
    assertEquals(savedProduct, product);
    assertEquals(savedProduct.hashCode(), product.hashCode());
    assertEquals(Long.valueOf(0), product.getVersion());
    assertEquals("Tv", product.getName());
    savedProduct.setName("Dvd");
    savedProduct = productRepository.save(savedProduct);
    assertEquals(Long.valueOf(1), savedProduct.getVersion());
    savedProduct.setVersion(0L);
    try {
        productRepository.save(savedProduct);
        fail("Expected OptimisticLockingFailureException");
    } catch (OptimisticLockingFailureException e) {
    }
    productRepository.delete(product);
}
Also used : OptimisticLockingFailureException(org.springframework.dao.OptimisticLockingFailureException) Product(com.vladmihalcea.mongo.model.Product) Test(org.junit.Test)

Example 7 with OptimisticLockingFailureException

use of org.springframework.dao.OptimisticLockingFailureException in project opennms by OpenNMS.

the class QuickBaseTicketerPlugin method saveOrUpdate.

public void saveOrUpdate(Ticket ticket) {
    try {
        Properties props = getProperties();
        QuickBaseClient qdb = createClient(getUserName(props), getPassword(props), getUrl(props));
        String dbId = qdb.findDbByName(getApplicationName(props));
        HashMap<String, String> record = new HashMap<String, String>();
        record.put(getSummaryField(props), ticket.getSummary());
        record.put(getDetailsField(props), ticket.getDetails());
        record.put(getStateField(props), getQuickBaseStateValue(ticket.getState(), props));
        if (ticket.getId() == null) {
            addAdditionCreationFields(record, props);
            String recordId = qdb.addRecord(dbId, record);
            ticket.setId(recordId);
        } else {
            Ticket oldTicket = get(ticket.getId());
            if (ticket.getModificationTimestamp().equals(oldTicket.getModificationTimestamp())) {
                qdb.editRecord(dbId, record, ticket.getId());
            } else {
                throw new OptimisticLockingFailureException("Ticket has been updated while this ticket was in memory! Reload and try again!");
            }
        }
    } catch (Throwable e) {
        throw new DataRetrievalFailureException("Failed to commit QuickBase transaction: " + e.getMessage(), e);
    }
}
Also used : Ticket(org.opennms.api.integration.ticketing.Ticket) OptimisticLockingFailureException(org.springframework.dao.OptimisticLockingFailureException) HashMap(java.util.HashMap) QuickBaseClient(com.intuit.quickbase.util.QuickBaseClient) DataRetrievalFailureException(org.springframework.dao.DataRetrievalFailureException) Properties(java.util.Properties)

Aggregations

OptimisticLockingFailureException (org.springframework.dao.OptimisticLockingFailureException)7 Test (org.junit.Test)6 TransactionStatus (org.springframework.transaction.TransactionStatus)2 QuickBaseClient (com.intuit.quickbase.util.QuickBaseClient)1 Product (com.vladmihalcea.mongo.model.Product)1 HashMap (java.util.HashMap)1 Properties (java.util.Properties)1 EntityManager (javax.persistence.EntityManager)1 EntityManagerFactory (javax.persistence.EntityManagerFactory)1 EntityTransaction (javax.persistence.EntityTransaction)1 OptimisticLockException (javax.persistence.OptimisticLockException)1 UserTransaction (javax.transaction.UserTransaction)1 Ticket (org.opennms.api.integration.ticketing.Ticket)1 DataRetrievalFailureException (org.springframework.dao.DataRetrievalFailureException)1 InvalidDataAccessApiUsageException (org.springframework.dao.InvalidDataAccessApiUsageException)1 MapPersistenceExceptionTranslator (org.springframework.dao.support.DataAccessUtilsTests.MapPersistenceExceptionTranslator)1 ITestBean (org.springframework.tests.sample.beans.ITestBean)1 TestBean (org.springframework.tests.sample.beans.TestBean)1 MockCallbackPreferringTransactionManager (org.springframework.transaction.MockCallbackPreferringTransactionManager)1 DefaultTransactionAttribute (org.springframework.transaction.interceptor.DefaultTransactionAttribute)1