diff --git a/src/main/java/org/gcube/datatransfer/resolver/gis/geonetwork/GeonetworkResolver.java b/src/main/java/org/gcube/datatransfer/resolver/gis/geonetwork/GeonetworkResolver.java index faff633..cacf5ae 100644 --- a/src/main/java/org/gcube/datatransfer/resolver/gis/geonetwork/GeonetworkResolver.java +++ b/src/main/java/org/gcube/datatransfer/resolver/gis/geonetwork/GeonetworkResolver.java @@ -115,6 +115,8 @@ public class GeonetworkResolver extends HttpServlet{ String resetCache = req.getParameter(RESET_CACHE); String resetScope = req.getParameter(RESET_CACHED_SCOPE); + String originalScope = ScopeProvider.instance.get(); + if (scopeValue == null || scopeValue.equals("")) { logger.debug("Scope not found"); sendError(resp, HttpServletResponse.SC_BAD_REQUEST, SCOPE+" not found or empty"); @@ -140,8 +142,8 @@ public class GeonetworkResolver extends HttpServlet{ // gnInstance = gntwAccess.getGeonetworkInstance(); // } -// GeonetworkServiceInterface gntwAccess = new GeonetworkAccessParameter(scopeValue); -// GeonetworkInstance gnInstance = gntwAccess.getGeonetworkInstance(); + ScopeProvider.instance.set(scopeValue); + HTTPCallsUtils httpUtils = new HTTPCallsUtils(); Configuration config = gnInstance.getGeonetworkPublisher().getConfiguration(); String geonetworkUrl = config.getGeoNetworkEndpoint(); @@ -190,6 +192,14 @@ public class GeonetworkResolver extends HttpServlet{ String error = "Sorry, an error occurred on resolving geonetwork request with scope "+scopeValue+". Please, contact support!"; sendError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, error); return; + }finally{ + if(originalScope!=null){ + ScopeProvider.instance.set(originalScope); + logger.info("scope provider set to orginal scope: "+originalScope); + }else{ + ScopeProvider.instance.reset(); + logger.info("scope provider reset"); + } } }