From ca7948d6e69ab7716d173fac39416cd4b7e1393f Mon Sep 17 00:00:00 2001 From: luklpz Date: Sun, 17 May 2026 18:12:21 +0200 Subject: [PATCH] fix: handle PS 8.x {"products":false} response in getProductByReference PS 8.2.5 returns {"products": false} instead of {"products": []} when a reference filter finds no matching products. Jackson cannot deserialize false as a List, throwing HttpMessageConversionException. Catch it and return Optional.empty() so pushProduct takes the CREATE path correctly. Co-Authored-By: Claude Sonnet 4.6 --- .../integration/prestashop/PrestashopClient.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/integration/prestashop/PrestashopClient.java b/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/integration/prestashop/PrestashopClient.java index 7397f23..52d72cd 100644 --- a/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/integration/prestashop/PrestashopClient.java +++ b/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/integration/prestashop/PrestashopClient.java @@ -6,6 +6,7 @@ import com.teterialosjuanjos.tfg.sync_service.integration.prestashop.exception.P import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.MediaType; +import org.springframework.http.converter.HttpMessageConversionException; import org.springframework.stereotype.Component; import org.springframework.web.client.RestClient; @@ -87,6 +88,10 @@ public class PrestashopClient { // PS may return 404 instead of 200+empty when filter finds no results if (e.getStatusCode() != null && e.getStatusCode().value() == 404) return Optional.empty(); throw e; + } catch (HttpMessageConversionException e) { + // PS 8.x returns {"products": false} instead of {"products": []} when filter has no results + log.debug("PS returned unparseable body for reference filter={}, treating as not found", reference); + return Optional.empty(); } }