From 74853c4f9743809a749dee0dfb59905860a3dc29 Mon Sep 17 00:00:00 2001 From: Erik Jan de Wit Date: Tue, 1 Jul 2014 13:46:37 +0200 Subject: [PATCH] FORGE-1916: added handling for OptimisticLock exception --- .../forge/addon/javaee/rest/generator/impl/Endpoint.jv | 8 +++++++- .../addon/javaee/rest/generator/impl/EndpointWithDTO.jv | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/javaee/impl/src/main/resources/org/jboss/forge/addon/javaee/rest/generator/impl/Endpoint.jv b/javaee/impl/src/main/resources/org/jboss/forge/addon/javaee/rest/generator/impl/Endpoint.jv index 0343cd18dc..29ce5d2c9b 100644 --- a/javaee/impl/src/main/resources/org/jboss/forge/addon/javaee/rest/generator/impl/Endpoint.jv +++ b/javaee/impl/src/main/resources/org/jboss/forge/addon/javaee/rest/generator/impl/Endpoint.jv @@ -5,6 +5,7 @@ import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.NoResultException; +import javax.persistence.OptimisticLockException; import javax.persistence.PersistenceContext; import javax.persistence.TypedQuery; import javax.ws.rs.*; @@ -83,7 +84,12 @@ public class ${entityTable}Endpoint @Consumes("${contentType}") public Response update(${entity.getName()} entity) { - entity = em.merge(entity); + try { + entity = em.merge(entity); + } catch (OptimisticLockException e) { + return Response.status(Response.Status.CONFLICT).entity(e.getEntity()).build(); + } + return Response.noContent().build(); } } \ No newline at end of file diff --git a/javaee/impl/src/main/resources/org/jboss/forge/addon/javaee/rest/generator/impl/EndpointWithDTO.jv b/javaee/impl/src/main/resources/org/jboss/forge/addon/javaee/rest/generator/impl/EndpointWithDTO.jv index 02f538e68f..ab8527ec0d 100644 --- a/javaee/impl/src/main/resources/org/jboss/forge/addon/javaee/rest/generator/impl/EndpointWithDTO.jv +++ b/javaee/impl/src/main/resources/org/jboss/forge/addon/javaee/rest/generator/impl/EndpointWithDTO.jv @@ -6,6 +6,7 @@ import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.NoResultException; +import javax.persistence.OptimisticLockException; import javax.persistence.PersistenceContext; import javax.persistence.TypedQuery; import javax.ws.rs.*; @@ -100,7 +101,11 @@ public class ${entityTable}Endpoint entity = null; } entity = dto.fromDTO(entity, em); - entity = em.merge(entity); + try { + entity = em.merge(entity); + } catch (OptimisticLockException e) { + return Response.status(Response.Status.CONFLICT).entity(e.getEntity()).build(); + } return Response.noContent().build(); } } \ No newline at end of file