You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by mg...@apache.org on 2015/11/12 21:02:28 UTC
[46/50] [abbrv] isis git commit: ISIS-1246: improving the diagnostics
for NPE.
ISIS-1246: improving the diagnostics for NPE.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/aedbd56b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/aedbd56b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/aedbd56b
Branch: refs/heads/ISIS-1224-select2-v4
Commit: aedbd56b17e0f22207433a7f17d39bab4b23cbaf
Parents: 8da4a6f
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 11 15:41:09 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 11 15:41:09 2015 +0000
----------------------------------------------------------------------
.../system/persistence/PersistenceSession.java | 46 +++++++++++++++-----
1 file changed, 34 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/aedbd56b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
index 81a62f1..0e72141 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
@@ -1405,26 +1405,48 @@ public class PersistenceSession implements
private void ensurePojoAdapterMapConsistent(final ObjectAdapter adapter) {
final Object adapterPojo = adapter.getObject();
- final ObjectAdapter adapterAccordingToPojoAdapterMap = pojoAdapterMap.getAdapter(adapterPojo);
- // take care not to touch the pojo, since it might have been deleted.
- ensureThatArg(
- adapter, is(adapterAccordingToPojoAdapterMap),
- "mismatch in PojoAdapterMap: provided adapter's OID: " + adapter.getOid() + "; \n"
- + " but map's adapter's OID was : " + adapterAccordingToPojoAdapterMap.getOid());
+ final ObjectAdapter adapterAccordingToMap = pojoAdapterMap.getAdapter(adapterPojo);
+
+ if(adapterPojo == null) {
+ // nothing to check
+ return;
+ }
+ ensureMapConsistent(adapter, adapterAccordingToMap, "PojoAdapterMap");
}
private void ensureOidAdapterMapConsistent(final ObjectAdapter adapter) {
final Oid adapterOid = adapter.getOid();
- final ObjectAdapter adapterAccordingToOidAdapterMap = oidAdapterMap
- .getAdapter(adapterOid);
+ final ObjectAdapter adapterAccordingToMap = oidAdapterMap.getAdapter(adapterOid);
+
+ if(adapterOid == null) {
+ // nothing to check
+ return;
+ }
+ ensureMapConsistent(adapter, adapterAccordingToMap, "OidAdapterMap");
+ }
+
+ private void ensureMapConsistent(
+ final ObjectAdapter adapter,
+ final ObjectAdapter adapterAccordingToMap,
+ final String mapName) {
+
+ final Oid adapterOid = adapter.getOid();
+
// take care not to touch the pojo, since it might have been deleted.
+
+ if(adapterAccordingToMap == null) {
+ throw new IllegalStateException("mismatch in "
+ + mapName
+ + ": provided adapter's OID: " + adapterOid + "; but no adapter found in map");
+ }
ensureThatArg(
- adapter, is(adapterAccordingToOidAdapterMap),
- "mismatch in OidAdapter map: " + "adapter's Oid: " + adapterOid + ", " + "provided adapter's OID: "
- + adapter.getOid() + "; " + "map's adapter's Oid: " + adapterAccordingToOidAdapterMap.getOid());
+ adapter, is(adapterAccordingToMap),
+ "mismatch in "
+ + mapName
+ + ": provided adapter's OID: " + adapterOid + ", \n"
+ + "but map's adapter's OID was: " + adapterAccordingToMap.getOid());
}
-
public ObjectAdapter adapterForAny(RootOid rootOid) {
final ObjectSpecId specId = rootOid.getObjectSpecId();