- Collection<Policy> result = null;
-
- if (type != null) {
- result = policies.getForType(type);
- result = filter(result, null, ric, service);
- } else if (service != null) {
- result = policies.getForService(service);
- result = filter(result, type, ric, null);
- } else if (ric != null) {
- result = policies.getForRic(ric);
- result = filter(result, type, null, service);
- } else {
- result = policies.getAll();
+ synchronized (policies) {
+ Collection<Policy> result = null;
+
+ if (type != null) {
+ result = policies.getForType(type);
+ result = filter(result, null, ric, service);
+ } else if (service != null) {
+ result = policies.getForService(service);
+ result = filter(result, type, ric, null);
+ } else if (ric != null) {
+ result = filter(policies.getForRic(ric), type, null, service);
+ } else {
+ result = policies.getAll();
+ }
+
+ String policiesJson;
+ try {
+ policiesJson = policiesToJson(result);
+ } catch (ServiceException e) {
+ return new ResponseEntity<>(e.getMessage(), HttpStatus.NO_CONTENT);
+ }
+ return new ResponseEntity<>(policiesJson, HttpStatus.OK);