diff --git a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/dao/AdditionalAttributesDAO.java b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/dao/AdditionalAttributesDAO.java index ed41f2e5b..10c27cc47 100644 --- a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/dao/AdditionalAttributesDAO.java +++ b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/dao/AdditionalAttributesDAO.java @@ -12,6 +12,9 @@ import java.util.Map; import java.util.stream.Collectors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import ch.ethz.seb.sebserver.gbl.api.EntityType; import ch.ethz.seb.sebserver.gbl.model.EntityKey; import ch.ethz.seb.sebserver.gbl.util.Result; @@ -23,6 +26,8 @@ * in a separated data-base table. */ public interface AdditionalAttributesDAO { + Logger log = LoggerFactory.getLogger(AdditionalAttributesDAO.class); + /** Use this to get all additional attribute records for a specific entity. * * @param type the entity type @@ -85,8 +90,9 @@ default Result> saveAdditionalAttributes( return Result.tryCatch(() -> attributes.entrySet() .stream() - .map(attr -> saveAdditionalAttribute(type, entityId, attr.getKey(), attr.getValue())) - .flatMap(Result::onErrorLogAndSkip) + .map(attr -> saveAdditionalAttribute(type, entityId, attr.getKey(), attr.getValue()) + .onError(error -> log.warn("Failed to save additional attribute: ", error.getMessage()))) + .flatMap(Result::skipOnError) .collect(Collectors.toList())); } diff --git a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/dao/impl/AdditionalAttributesDAOImpl.java b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/dao/impl/AdditionalAttributesDAOImpl.java index d36439090..a26a55a8d 100644 --- a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/dao/impl/AdditionalAttributesDAOImpl.java +++ b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/dao/impl/AdditionalAttributesDAOImpl.java @@ -95,7 +95,7 @@ public Result saveAdditionalAttribute( if (value == null) { throw new IllegalArgumentException( - "value cannot be null. Use delete to delete an additional attribute"); + "value cannot be null. Use delete to delete an additional attribute: " + String.valueOf(name)); } if (log.isDebugEnabled()) {