# HG changeset patch # User Raimund Renkert # Date 1436545767 -7200 # Node ID d74b5b1190aea9d907ece09d9f2f69544559d3ef # Parent 51d8d5bacf687047b93cc092bc1aa202ce789aa8 fixed delete probe service. diff -r 51d8d5bacf68 -r d74b5b1190ae src/main/java/de/intevation/lada/rest/ProbeService.java --- a/src/main/java/de/intevation/lada/rest/ProbeService.java Fri Jul 10 14:54:21 2015 +0200 +++ b/src/main/java/de/intevation/lada/rest/ProbeService.java Fri Jul 10 18:29:27 2015 +0200 @@ -14,6 +14,7 @@ import java.util.List; import java.util.Map; +import javax.ejb.EJBTransactionRolledbackException; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.json.Json; @@ -22,6 +23,7 @@ import javax.json.JsonObject; import javax.json.JsonReader; import javax.persistence.Query; +import javax.persistence.TransactionRequiredException; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.DELETE; import javax.ws.rs.GET; @@ -507,7 +509,14 @@ /* Delete the probe translation object*/ defaultRepo.delete(probeTransObj, "land"); /* Delete the probe object*/ - Response response = defaultRepo.delete(probeObj, "land"); - return response; + try { + Response response = defaultRepo.delete(probeObj, "land"); + return response; + } + catch(IllegalArgumentException | EJBTransactionRolledbackException | + TransactionRequiredException e) { + defaultRepo.update(probeTransObj, "land"); + return new Response(false, 600, ""); + } } } diff -r 51d8d5bacf68 -r d74b5b1190ae src/main/java/de/intevation/lada/util/data/DataTransaction.java --- a/src/main/java/de/intevation/lada/util/data/DataTransaction.java Fri Jul 10 14:54:21 2015 +0200 +++ b/src/main/java/de/intevation/lada/util/data/DataTransaction.java Fri Jul 10 18:29:27 2015 +0200 @@ -14,6 +14,7 @@ import javax.inject.Inject; import javax.persistence.EntityExistsException; import javax.persistence.EntityManager; +import javax.persistence.PersistenceException; import javax.persistence.Query; import javax.persistence.TransactionRequiredException; @@ -84,7 +85,8 @@ @TransactionAttribute(TransactionAttributeType.REQUIRED) public void removeFromDatabase(Object object, String dataSource) throws IllegalArgumentException, - TransactionRequiredException + TransactionRequiredException, + EJBTransactionRolledbackException { EntityManager em = emp.entityManager(dataSource); em.remove( diff -r 51d8d5bacf68 -r d74b5b1190ae src/main/java/de/intevation/lada/util/data/DefaultRepository.java --- a/src/main/java/de/intevation/lada/util/data/DefaultRepository.java Fri Jul 10 14:54:21 2015 +0200 +++ b/src/main/java/de/intevation/lada/util/data/DefaultRepository.java Fri Jul 10 18:29:27 2015 +0200 @@ -118,7 +118,7 @@ */ @Override public Response delete(Object object, String dataSource) { - Response response = new Response(true, 200, null); + Response response = new Response(true, 200, ""); try { transaction.removeFromDatabase(object, dataSource); }