From 3b5b45b463c0730c4a872cef58e091b46e27b731 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Fri, 19 Nov 2021 11:21:14 +0000 Subject: [PATCH] Give up after 5 attempts to request data in the GET /arbitrary APIs --- .../java/org/qortal/api/resource/ArbitraryResource.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/org/qortal/api/resource/ArbitraryResource.java b/src/main/java/org/qortal/api/resource/ArbitraryResource.java index 90a687c0..e0dc257f 100644 --- a/src/main/java/org/qortal/api/resource/ArbitraryResource.java +++ b/src/main/java/org/qortal/api/resource/ArbitraryResource.java @@ -464,12 +464,19 @@ public class ArbitraryResource { ArbitraryDataReader arbitraryDataReader = new ArbitraryDataReader(name, ArbitraryDataFile.ResourceIdType.NAME, service, identifier); try { + int attempts = 0; + // Loop until we have data while (!Controller.isStopping()) { + attempts++; try { arbitraryDataReader.loadSynchronously(rebuild); break; } catch (MissingDataException e) { + if (attempts > 5) { + // Give up after 5 attempts + throw ApiExceptionFactory.INSTANCE.createCustomException(request, ApiError.INVALID_CRITERIA, "Data unavailable. Please try again later."); + } continue; } }