You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/10/09 13:38:56 UTC

git commit: ISIS-919: don't call "hashCode" on a request-scoped service if logging set to DEBUG.

Repository: isis
Updated Branches:
  refs/heads/master 6907534b4 -> fb50685c5


ISIS-919: don't call "hashCode" on a request-scoped service if logging set to DEBUG.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/fb50685c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/fb50685c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/fb50685c

Branch: refs/heads/master
Commit: fb50685c58ba1263e271410fa2062282ecb07752
Parents: 6907534
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Oct 8 17:04:49 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Oct 9 12:29:14 2014 +0100

----------------------------------------------------------------------
 .../adaptermanager/PojoAdapterHashMap.java      | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/fb50685c/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoAdapterHashMap.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoAdapterHashMap.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoAdapterHashMap.java
index 99f250a..39c4a97 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoAdapterHashMap.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoAdapterHashMap.java
@@ -33,10 +33,8 @@ import org.apache.isis.core.commons.debug.DebugBuilder;
 import org.apache.isis.core.commons.debug.DebuggableWithTitle;
 import org.apache.isis.core.commons.util.ToString;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.runtime.services.RequestScopedService;
 
-/**
- * TODO: an alternative might be to use {@link IdentityMap}.
- */
 public class PojoAdapterHashMap implements DebuggableWithTitle, Iterable<ObjectAdapter>, SessionScopedComponent, Resettable {
 
     private static class IdentityHashKey {
@@ -117,15 +115,19 @@ public class PojoAdapterHashMap implements DebuggableWithTitle, Iterable<ObjectA
 
     public void add(final Object pojo, final ObjectAdapter adapter) {
         adapterByPojoMap.put(key(pojo), adapter);
+
         if(LOG.isDebugEnabled()) {
-            LOG.debug("add adapter: #" + Long.toHexString(pojo.hashCode()) + " -> #" + Long.toHexString(adapter.hashCode()));
-        }
-        // log at end so that if toString needs adapters they're in maps.
-        if (adapter.isResolved()) {
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("add " + new ToString(pojo) + " as " + adapter);
+            LOG.debug("add adapter: #" + key(pojo) + " -> #" + Long.toHexString(adapter.hashCode()));
+
+            if (adapter.isResolved()) {
+                if (pojo instanceof RequestScopedService) {
+                    // avoid touching the service
+                } else {
+                    LOG.debug("add " + new ToString(pojo) + " as " + adapter);
+                }
             }
         }
+
     }
 
     public void remove(final ObjectAdapter object) {