Skip to content

Commit aa7c1ac

Browse files
committed
🐛: FIX: Only facilities without regions/districts can be patched.
- Reversed condition for cron activation - copy-paste issue in log - NPE exception for some occurrences
1 parent b07aa91 commit aa7c1ac

4 files changed

Lines changed: 15 additions & 9 deletions

File tree

sormas-backend/src/main/java/de/symeda/sormas/backend/ReferenceDataValueInstanceProviderImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ private void init() {
5757
.collect(Collectors.toList())),
5858
Map.entry(
5959
FacilityReferenceDto.class,
60-
() -> getInstance(FacilityFacade.class).getAllWithoutRegionAfter(DATE_ALL_VALUES)
60+
() -> getInstance(FacilityFacade.class).getAllAfter(DATE_ALL_VALUES)
6161
.stream()
6262
.map(FacilityDto::toReference)
6363
.collect(Collectors.toList())),

sormas-backend/src/main/java/de/symeda/sormas/backend/common/CronService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ public void fetchExternalMessages() {
235235
@Schedule(hour = "*", persistent = false)
236236
public void fetchSurveyResponses() {
237237
if (!featureConfigurationFacade.isFeatureEnabled(FeatureType.EXTERNAL_MESSAGES)
238-
|| featureConfigurationFacade.isPropertyValueTrue(FeatureType.EXTERNAL_MESSAGES, FeatureTypeProperty.SURVEY_FETCH_ENABLED)) {
238+
|| !featureConfigurationFacade.isPropertyValueTrue(FeatureType.EXTERNAL_MESSAGES, FeatureTypeProperty.SURVEY_FETCH_ENABLED)) {
239239
logger.info("External messages are disabled, survey responses will not be fetched");
240240
return;
241241
}

sormas-backend/src/main/java/de/symeda/sormas/backend/externalmessage/ExternalMessageFacadeEjb.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,12 +388,12 @@ public List<ExternalMessageDto> saveAndProcessSurveyResponses(Date since) {
388388

389389
processingResults.forEach(wrapper -> {
390390
ProcessingResultStatus result = wrapper.getResultStatus();
391-
if (result.isCanceled()) {
391+
if (result == null || result.isCanceled()) {
392392
logger.error("Processing of surveyResponse with UUID {} has been canceled", wrapper.getExternalMessage().getUuid());
393393
}
394394
});
395395
} catch (InterruptedException e) {
396-
logger.error("Could not process lab message with UUID [{}]", extractUuids(filteredSurveyResponses), e);
396+
logger.error("Could not process survey responses with UUID [{}]", extractUuids(filteredSurveyResponses), e);
397397
Thread.currentThread().interrupt();
398398
} catch (ExecutionException e) {
399399
logger.error("Could not process survey responses with UUID [{}]", extractUuids(filteredSurveyResponses), e);

sormas-backend/src/main/java/de/symeda/sormas/backend/externalmessage/survey/AutomaticSurveyResponseProcessor.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package de.symeda.sormas.backend.externalmessage.survey;
22

3-
import java.util.*;
3+
import java.util.ArrayList;
4+
import java.util.Collections;
5+
import java.util.List;
6+
import java.util.Map;
7+
import java.util.Optional;
48
import java.util.concurrent.ExecutionException;
59
import java.util.stream.Collectors;
610

@@ -9,8 +13,6 @@
913
import javax.inject.Inject;
1014
import javax.transaction.Transactional;
1115

12-
import de.symeda.sormas.backend.survey.SurveyFacadeEjb;
13-
import de.symeda.sormas.backend.survey.SurveyTokenFacadeEjb;
1416
import org.apache.commons.collections4.CollectionUtils;
1517
import org.jetbrains.annotations.NotNull;
1618
import org.slf4j.Logger;
@@ -24,12 +26,12 @@
2426
import de.symeda.sormas.api.patch.CaseDataPatchRequest;
2527
import de.symeda.sormas.api.patch.DataPatchResponse;
2628
import de.symeda.sormas.api.patch.DataPatcher;
27-
import de.symeda.sormas.api.survey.SurveyFacade;
2829
import de.symeda.sormas.api.survey.SurveyReferenceDto;
2930
import de.symeda.sormas.api.survey.SurveyTokenDto;
30-
import de.symeda.sormas.api.survey.SurveyTokenFacade;
3131
import de.symeda.sormas.api.utils.Tuple;
3232
import de.symeda.sormas.api.utils.dataprocessing.ProcessingResultStatus;
33+
import de.symeda.sormas.backend.survey.SurveyFacadeEjb;
34+
import de.symeda.sormas.backend.survey.SurveyTokenFacadeEjb;
3335
import de.symeda.sormas.backend.util.CollectorUtils;
3436

3537
/**
@@ -146,6 +148,10 @@ public List<SurveyResponseProcessingResult> processSurveyResponses(List<External
146148
"Exception while patching survey response for external message: [{}]. Processing will continue for other messages",
147149
externalMessage.getUuid(),
148150
e);
151+
152+
// in case of failure status must be changed to unprocessed
153+
externalMessage.setStatus(ExternalMessageStatus.UNPROCESSED);
154+
149155
surveyResponseProcessingResult.setRuntimeException(e);
150156
}
151157

0 commit comments

Comments
 (0)