Skip to content
Snippets Groups Projects
Commit 648513c7 authored by Rustam Lotsmanenko (EPAM)'s avatar Rustam Lotsmanenko (EPAM) Committed by Yurii Ruban [EPAM / GCP]
Browse files

Merge branch 'fix-recursive-get-subscription' into 'master'

Fixed getting subscription

See merge request !420

(cherry picked from commit 77d50099)

37ea8854 Fixed recursive getting subscription
parent 83e24b8b
No related branches found
No related tags found
No related merge requests found
Pipeline #208159 passed
......@@ -50,12 +50,17 @@ public class ExternalSubscriptionsManager {
List<Subscription> cachedInfos = Optional.ofNullable(getExternalSubscriptions(dataPartitionId))
.orElseThrow(() -> new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Server error", "OQM | Subscription info cache was not initialized"))
.getSubscriptions();
List<Subscription> filteredCachedInfos = filterSubscriptionInfosByTopic(cachedInfos, subscriptionId, serviceTopic);
if (filteredCachedInfos.isEmpty()) {
return sendGetSubscriptionRequest(dataPartitionId, subscriptionId, serviceTopic, cachedInfos);
return getFilteredSubscription(cachedInfos, dataPartitionId, subscriptionId, serviceTopic);
}
private Subscription getFilteredSubscription(List<Subscription> subscriptions, String dataPartitionId,
String subscriptionId, String serviceTopic) {
List<Subscription> filteredInfos = filterSubscriptionInfosByTopic(subscriptions, subscriptionId, serviceTopic);
if (filteredInfos.isEmpty()) {
return sendGetSubscriptionRequest(dataPartitionId, subscriptionId, serviceTopic, subscriptions);
} else {
log.debug("Register client cache | `{}` subscriptions info found. The first was taken.", filteredCachedInfos.size());
return filteredCachedInfos.get(0);
log.debug("Register client cache | `{}` subscriptions info found. The first was taken.", filteredInfos.size());
return filteredInfos.get(0);
}
}
......@@ -72,7 +77,7 @@ public class ExternalSubscriptionsManager {
private void reloadSubscriptionInfoCache(String dataPartitionId) {
List<Subscription> subscriptionInfos = subscriptionHandler.getAllSubscriptionInfos(dataPartitionId);
List<Subscription> enrichedSubscriptionInfos = subscriptionInfos.stream()
.map(subscription -> getSubscription(dataPartitionId, subscription.getNotificationId(), subscription.getTopic()))
.map(subscription -> getFilteredSubscription(subscriptionInfos, dataPartitionId, subscription.getNotificationId(), subscription.getTopic()))
.collect(Collectors.toList());
subscriptionInfoCache.put(dataPartitionId, ExternalSubscriptions.builder().subscriptions(enrichedSubscriptionInfos).build());
log.debug("Subscription info cache PRELOADED for tenant: {}. Size is: {}.", dataPartitionId, enrichedSubscriptionInfos.size());
......@@ -102,4 +107,4 @@ public class ExternalSubscriptionsManager {
.filter(info -> serviceTopic.equals(info.getTopic()) && subscriptionId.equals(info.getNotificationId()))
.collect(Collectors.toList());
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment