From 4c13c7324a920f5cca9601154e5224e5d7484fa9 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Fri, 12 Dec 2014 18:09:27 +0000
Subject: [PATCH] #2140 fix - Many changes related with cahce and JPA cycling relationships
---
securis/src/main/java/net/curisit/securis/services/ApplicationResource.java | 45 +++++++++++++++++++++++++++++++++------------
1 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java b/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
index 916511f..db7bf67 100644
--- a/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
@@ -26,10 +26,14 @@
import net.curisit.integrity.commons.Utils;
import net.curisit.securis.DefaultExceptionHandler;
+import net.curisit.securis.SeCurisException;
import net.curisit.securis.db.Application;
import net.curisit.securis.db.ApplicationMetadata;
import net.curisit.securis.security.BasicSecurityContext;
import net.curisit.securis.security.Securable;
+import net.curisit.securis.services.exception.SeCurisServiceException;
+import net.curisit.securis.services.exception.SeCurisServiceException.ErrorCodes;
+import net.curisit.securis.utils.JsonUtils;
import net.curisit.securis.utils.TokenHelper;
import org.apache.logging.log4j.LogManager;
@@ -71,6 +75,7 @@
LOG.info("Getting applications list ");
EntityManager em = emProvider.get();
+ em.clear();
TypedQuery<Application> q = em.createNamedQuery("list-applications", Application.class);
List<Application> list = q.getResultList();
@@ -80,6 +85,7 @@
/**
*
* @return the server version in format majorVersion.minorVersion
+ * @throws SeCurisServiceException
*/
@GET
@Path("/{appid}")
@@ -87,7 +93,7 @@
MediaType.APPLICATION_JSON
})
@Securable
- public Response get(@PathParam("appid") String appid, @HeaderParam(TokenHelper.TOKEN_HEADER_PĂ€RAM) String token) {
+ public Response get(@PathParam("appid") String appid) throws SeCurisServiceException {
LOG.info("Getting application data for id: {}: ", appid);
if (appid == null || "".equals(appid)) {
LOG.error("Application ID is mandatory");
@@ -95,12 +101,28 @@
}
EntityManager em = emProvider.get();
- Application app = em.find(Application.class, Integer.parseInt(appid));
+ em.clear();
+
+ Application app = null;
+ try {
+ LOG.info("READY to GET app: {}", appid);
+ app = em.find(Application.class, Integer.parseInt(appid));
+ } catch (Exception e) {
+ LOG.info("ERROR GETTING app: {}", e);
+ }
if (app == null) {
LOG.error("Application with id {} not found in DB", appid);
+ throw new SeCurisServiceException(ErrorCodes.NOT_FOUND, "Application not found with ID: " + appid);
+ }
- return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Application not found with ID: " + appid)
- .build();
+ try {
+ LOG.info("JSON for APP:\n\n\n");
+ LOG.info(JsonUtils.toJSON(app));
+ } catch (SeCurisException e) {
+ LOG.info("ERROR {}", e);
+
+ } catch (Exception e) {
+ LOG.info("ERROR??? {}", e);
}
return Response.ok(app).build();
}
@@ -199,14 +221,13 @@
return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Application not found with ID: " + appid)
.build();
}
-
- if (app.getLicenseTypes() != null && !app.getLicenseTypes().isEmpty()) {
- return Response
- .status(Status.FORBIDDEN)
- .header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER,
- "Application can not be deleted becasue has assigned one or more License types, ID: " + appid).build();
- }
-
+ /*
+ * if (app.getLicenseTypes() != null &&
+ * !app.getLicenseTypes().isEmpty()) { throw new
+ * SeCurisServiceException(ErrorCodes.NOT_FOUND,
+ * "Application can not be deleted becasue has assigned one or more License types, ID: "
+ * + appid); }
+ */
em.remove(app);
return Response.ok(Utils.createMap("success", true, "id", appid)).build();
}
--
Gitblit v1.3.2