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