From 696440a6754a60888fce7a82e8022ca7278b9be5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Aur=C3=A8le=20Brothier?= Date: Wed, 4 May 2016 14:28:44 +0200 Subject: [PATCH 1/2] dao: Hit the cache for entity flagged as removed too since they are put in cache afterwards. --- framework/db/src/com/cloud/utils/db/GenericDaoBase.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/framework/db/src/com/cloud/utils/db/GenericDaoBase.java b/framework/db/src/com/cloud/utils/db/GenericDaoBase.java index 29adbe257a9..2de161b457c 100644 --- a/framework/db/src/com/cloud/utils/db/GenericDaoBase.java +++ b/framework/db/src/com/cloud/utils/db/GenericDaoBase.java @@ -969,7 +969,12 @@ public abstract class GenericDaoBase extends Compone @Override @DB() public T findByIdIncludingRemoved(ID id) { - return findById(id, true, null); + if (_cache != null) { + final Element element = _cache.get(id); + return element == null ? findById(id, true, null) : (T)element.getObjectValue(); + } else { + return findById(id, true, null); + } } @Override From 39aa0e4f35259f1b4962f0469c82930a3fdac579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Aur=C3=A8le=20Brothier?= Date: Mon, 9 May 2016 11:39:04 +0200 Subject: [PATCH 2/2] DAO: Rewrite change for method findByIdIncludingRemoved(ID id) Also change the sibling method findById(final ID id) --- .../com/cloud/utils/db/GenericDaoBase.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/framework/db/src/com/cloud/utils/db/GenericDaoBase.java b/framework/db/src/com/cloud/utils/db/GenericDaoBase.java index 2de161b457c..f1b8d0d4dc8 100644 --- a/framework/db/src/com/cloud/utils/db/GenericDaoBase.java +++ b/framework/db/src/com/cloud/utils/db/GenericDaoBase.java @@ -942,12 +942,18 @@ public abstract class GenericDaoBase extends Compone @DB() @SuppressWarnings("unchecked") public T findById(final ID id) { + T result = null; if (_cache != null) { final Element element = _cache.get(id); - return element == null ? lockRow(id, null) : (T)element.getObjectValue(); + if (element == null) { + result = lockRow(id, null); + } else { + result = (T)element.getObjectValue(); + } } else { - return lockRow(id, null); + result = lockRow(id, null); } + return result; } @Override @@ -968,13 +974,19 @@ public abstract class GenericDaoBase extends Compone @Override @DB() - public T findByIdIncludingRemoved(ID id) { + public T findByIdIncludingRemoved(final ID id) { + T result = null; if (_cache != null) { final Element element = _cache.get(id); - return element == null ? findById(id, true, null) : (T)element.getObjectValue(); + if (element == null) { + result = findById(id, true, null); + } else { + result = (T)element.getObjectValue(); + } } else { - return findById(id, true, null); + result = findById(id, true, null); } + return result; } @Override