From 1c167b16080a1b2bc4eef5446236e4cfa6514029 Mon Sep 17 00:00:00 2001 From: kirillius Date: Mon, 6 Oct 2025 20:34:20 +0300 Subject: [PATCH] hotfix git subscr. debug --- .../pf/sdn/External/API/GitSubscription.java | 3 +- .../Subscription/SubscriptionService.java | 38 ++++++++++--------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/ru/kirillius/pf/sdn/External/API/GitSubscription.java b/app/src/main/java/ru/kirillius/pf/sdn/External/API/GitSubscription.java index 665c842..020a006 100644 --- a/app/src/main/java/ru/kirillius/pf/sdn/External/API/GitSubscription.java +++ b/app/src/main/java/ru/kirillius/pf/sdn/External/API/GitSubscription.java @@ -63,7 +63,7 @@ public class GitSubscription implements SubscriptionProvider { for (var file : Objects.requireNonNull(resourcesDir.listFiles())) { try (var stream = new FileInputStream(file)) { var name = file.getName(); - if(!name.endsWith(".json")) { + if (!name.endsWith(".json")) { continue; } var bundle = JSONUtility.deserializeStructure(new JSONObject(new JSONTokener(stream)), NetworkResourceBundle.class); @@ -73,6 +73,7 @@ public class GitSubscription implements SubscriptionProvider { return map; } catch (Exception e) { + SystemLogger.error("Error while reading git repository", CTX, e); throw new RuntimeException(e); } } diff --git a/core/src/main/java/ru/kirillius/pf/sdn/core/Subscription/SubscriptionService.java b/core/src/main/java/ru/kirillius/pf/sdn/core/Subscription/SubscriptionService.java index fa277bf..c1d9d3c 100644 --- a/core/src/main/java/ru/kirillius/pf/sdn/core/Subscription/SubscriptionService.java +++ b/core/src/main/java/ru/kirillius/pf/sdn/core/Subscription/SubscriptionService.java @@ -22,11 +22,9 @@ public class SubscriptionService extends AppService { private final ExecutorService executor = Executors.newSingleThreadExecutor(); - private final Map, SubscriptionProvider> providerCache = new ConcurrentHashMap<>(); - private final AtomicReference> updateProcess = new AtomicReference<>(); @Getter @@ -65,22 +63,28 @@ public class SubscriptionService extends AppService { for (var repoConfig : config.getSubscriptions()) { var providerType = repoConfig.getType(); var provider = providerCache.get(providerType); - if (provider == null) { - //noinspection unchecked - provider = SubscriptionProvider.instantiate((Class) providerType, context); - //noinspection unchecked - providerCache.put((Class) providerType, provider); - } - var resources = provider.getResources(repoConfig); - - resources.keySet().forEach(key -> { - var resourceName = repoConfig.getName() + ":" + key; - //добавляем только выбранные ресурсы - if (subscribedResources.contains(resourceName)) { - bundle.add(resources.get(key)); + try { + if (provider == null) { + //noinspection unchecked + provider = SubscriptionProvider.instantiate((Class) providerType, context); + //noinspection unchecked + providerCache.put((Class) providerType, provider); } - available.put(resourceName, resources.get(key)); - }); + + + var resources = provider.getResources(repoConfig); + + resources.keySet().forEach(key -> { + var resourceName = repoConfig.getName() + ":" + key; + //добавляем только выбранные ресурсы + if (subscribedResources.contains(resourceName)) { + bundle.add(resources.get(key)); + } + available.put(resourceName, resources.get(key)); + }); + } catch (Exception e) { + SystemLogger.error("Error fetching provider " + provider, CTX, e); + } } availableResources.clear();