From cf186d49291375bb92ef886afa4d6c5b17871c77 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andreas=20M=C3=BCller?= Date: Mon, 29 Jun 2020 23:55:12 +0200 Subject: [PATCH] revert load with update only --- .../eu/etaxonomy/cdm/cache/CacheLoader.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/cdmlib-cache/src/main/java/eu/etaxonomy/cdm/cache/CacheLoader.java b/cdmlib-cache/src/main/java/eu/etaxonomy/cdm/cache/CacheLoader.java index b70b601e2e..2fa75f97cf 100644 --- a/cdmlib-cache/src/main/java/eu/etaxonomy/cdm/cache/CacheLoader.java +++ b/cdmlib-cache/src/main/java/eu/etaxonomy/cdm/cache/CacheLoader.java @@ -260,18 +260,30 @@ public class CacheLoader { if(isRecursiveEnabled && recursive) { if (logger.isDebugEnabled()){logger.debug("---- starting recursive load for cdm entity " + cdmEntity.getClass().getSimpleName() + " with id " + cdmEntity.getId());} List alreadyVisitedEntities = new ArrayList<>(); - loadedCdmBase = loadRecursive(cdmEntity, alreadyVisitedEntities, update); + T cb = loadRecursive(cdmEntity, alreadyVisitedEntities, update); alreadyVisitedEntities.clear(); if (logger.isDebugEnabled()){logger.debug("---- ending recursive load for cdm entity " + cdmEntity.getClass().getSimpleName() + " with id " + cdmEntity.getId() + "\n");} - } else if (update){ - if (logger.isDebugEnabled()){logger.debug("---- update cdm entity " + cdmEntity.getClass().getSimpleName() + " with id " + cdmEntity.getId());} - loadedCdmBase = loadRecursive(cdmEntity, null, update); - if (logger.isDebugEnabled()){logger.debug("---- ending update for cdm entity " + cdmEntity.getClass().getSimpleName() + " with id " + cdmEntity.getId() + "\n");} + loadedCdmBase = cb; } else { loadedCdmBase = putToCache(cdmEntity); } return loadedCdmBase; +// if(isRecursiveEnabled && recursive) { +// if (logger.isDebugEnabled()){logger.debug("---- starting recursive load for cdm entity " + cdmEntity.getClass().getSimpleName() + " with id " + cdmEntity.getId());} +// List alreadyVisitedEntities = new ArrayList<>(); +// loadedCdmBase = loadRecursive(cdmEntity, alreadyVisitedEntities, update); +// alreadyVisitedEntities.clear(); +// if (logger.isDebugEnabled()){logger.debug("---- ending recursive load for cdm entity " + cdmEntity.getClass().getSimpleName() + " with id " + cdmEntity.getId() + "\n");} +// } else if (update){ +// if (logger.isDebugEnabled()){logger.debug("---- update cdm entity " + cdmEntity.getClass().getSimpleName() + " with id " + cdmEntity.getId());} +// loadedCdmBase = loadRecursive(cdmEntity, null, update); +// if (logger.isDebugEnabled()){logger.debug("---- ending update for cdm entity " + cdmEntity.getClass().getSimpleName() + " with id " + cdmEntity.getId() + "\n");} +// } else { +// loadedCdmBase = putToCache(cdmEntity); +// } +// return loadedCdmBase; + } /** @@ -346,7 +358,7 @@ public class CacheLoader { // with CdmBase as the generic type Object fieldValue = getAndUpdateFieldValue(deproxiedEntity, cachedCdmEntity, field, alreadyVisitedEntities, update); //Map and Collection are loaded recursivly in getAndUpdateFieldValue already - if (fieldValue instanceof CdmBase) { + if (fieldValue != null) { CdmBase cdmEntityInSubGraph = (CdmBase)fieldValue; if(!entityAlreadyVisisted(alreadyVisitedEntities, cdmEntityInSubGraph) ) { if(cdmCacher.ignoreRecursiveLoad(cdmEntityInSubGraph)){ @@ -358,8 +370,8 @@ public class CacheLoader { } else { if (logger.isDebugEnabled()){logger.debug("object of type " + cdmEntityInSubGraph.getClass().getSimpleName() + " with id " + cdmEntityInSubGraph.getId() + " already visited");} } - } else if (fieldValue != null){ - throw new IllegalArgumentException("Unhandled field value of type " + fieldValue.getClass().getName() + " for field " + field); +// } else if (fieldValue != null){ +// throw new IllegalArgumentException("Unhandled field value of type " + fieldValue.getClass().getName() + " for field " + field); } } -- 2.34.1