Author: sletellier Date: 2010-12-21 16:32:36 +0100 (Tue, 21 Dec 2010) New Revision: 639 Url: http://nuiton.org/repositories/revision/wikitty/639 Log: Optimize restore method Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceCached.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceCached.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceCached.java 2010-12-21 14:04:26 UTC (rev 638) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceCached.java 2010-12-21 15:32:36 UTC (rev 639) @@ -284,7 +284,7 @@ protected Wikitty cacheGetWikitty(String id) { Wikitty result = cache.getWikitty(id); - // all time wrap, inly WikittyImpl are in cache + // all time wrap, only WikittyImpl are in cache result = wrapWikitty(result); return result; } @@ -393,28 +393,34 @@ } // retrieve missing object - List<Wikitty> missingInCache = ws.restore(securityToken, notInCache); + if (!notInCache.isEmpty()) { + List<Wikitty> missingInCache = ws.restore(securityToken, notInCache); - cachePutWikitty(missingInCache); + cachePutWikitty(missingInCache); - for (Wikitty w : missingInCache) { - // add missing object - if (w != null) { - fromCache.put(w.getId(), w); + for (Wikitty w : missingInCache) { + // add missing object + if (w != null) { + + // Always wrap wikitties + w = wrapWikitty(w); + fromCache.put(w.getId(), w); + } } } - Collection<Wikitty> tmp = fromCache.values(); - - // wrap the resulting wikitties to prevent cache conflicts - ArrayList<Wikitty> result = new ArrayList<Wikitty>(); - for (Wikitty w : tmp) { - result.add(wrapWikitty(w)); - } + // FIXME sletellier 21/12/10 : Its already done in #cacheGetWikitty, so, remove it ? +// Collection<Wikitty> tmp = fromCache.values(); +// +// // wrap the resulting wikitties to prevent cache conflicts +// ArrayList<Wikitty> result = new ArrayList<Wikitty>(); +// for (Wikitty w : tmp) { +// result.add(wrapWikitty(w)); +// } statAdd(ids.size(), notInCache.size()); - return result; + return new ArrayList<Wikitty>(fromCache.values()); } /**