diff --git a/notification-core/src/main/java/org/opengroup/osdu/notification/service/SubscriptionHandler.java b/notification-core/src/main/java/org/opengroup/osdu/notification/service/SubscriptionHandler.java index 016ca4f49a55e630b95bbdf0c7ace92359c25a02..72d6f22d572c4132b49c0fe093697d841b6163c6 100644 --- a/notification-core/src/main/java/org/opengroup/osdu/notification/service/SubscriptionHandler.java +++ b/notification-core/src/main/java/org/opengroup/osdu/notification/service/SubscriptionHandler.java @@ -36,6 +36,8 @@ import java.util.List; @Component public class SubscriptionHandler { + + private static final String STATUS_NOT_FOUND = "not-found"; @Autowired private ISubscriptionFactory subscriptionFactory; @Autowired @@ -51,8 +53,12 @@ public class SubscriptionHandler { public Subscription getSubscriptionFromCache(String notificationId) throws IOException, SubscriptionException { String subscriptionString = subscriptionCacheFactory.get(notificationId); try { - if (Strings.isNullOrEmpty(subscriptionString)) + if (Strings.isNullOrEmpty(subscriptionString)) { subscriptionString = querySubscriptionAndUpdateCache(notificationId); + } + if (subscriptionString.equals(STATUS_NOT_FOUND)) { + throw new AppException(HttpStatus.SC_NOT_FOUND, "Unable to find a subscription with notificationId:" + notificationId, "Subscription not found"); + } ObjectMapper objectMapper = this.getObjectMapper(); Subscription subscription = objectMapper.readValue(subscriptionString, Subscription.class); return subscription; @@ -68,7 +74,8 @@ public class SubscriptionHandler { List<Subscription> subscriptionList = service.query(notificationId); if (subscriptionList == null || subscriptionList.size() == 0) { - throw new AppException(HttpStatus.SC_NOT_FOUND, "Not found subscription for notificationId:" + notificationId, "Subscription not found"); + this.subscriptionCacheFactory.put(notificationId, STATUS_NOT_FOUND); + return STATUS_NOT_FOUND; } Subscription subscription = subscriptionList.get(0); diff --git a/provider/notification-azure/src/main/resources/application.properties b/provider/notification-azure/src/main/resources/application.properties index f55e5cd962467cc00e94916031257b92cffb7b4e..82ed78dbe56f8d77c5223f51d7201284f869e3df 100644 --- a/provider/notification-azure/src/main/resources/application.properties +++ b/provider/notification-azure/src/main/resources/application.properties @@ -35,8 +35,8 @@ PARTITION_API=${partition_service_endpoint} app.entitlements=${entitlements_service_endpoint} app.register=${registeration_service_endpoint} app.project=opendes -app.expireTime=300 -app.maxCacheSize=10 +app.expireTime=600 +app.maxCacheSize=100 # Azure AD configuration #azure.activedirectory.client-id=${aad_client_id}