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 2018/02/14 15:15:22 UTC

[isis] 06/13: ISIS-1817 + ISIS-1818 added missing assignment + clarify comments

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 1155e89564761b6a94e2f02637f0044d9e9cabc8
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Jan 15 09:08:29 2018 +0100

    ISIS-1817 + ISIS-1818 added missing assignment + clarify comments
---
 .../model/models/whereami/WhereAmIModelDefault.java       | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java
index ff06907..9b335ba 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java
@@ -72,7 +72,7 @@ class WhereAmIModelDefault implements WhereAmIModel {
 	@Override
 	public Stream<EntityModel> streamParentChainReversed() {
 		if(!isWhereAmIEnabled)
-			return Stream.empty(); // unexpected call, we could log a warning
+			return Stream.empty(); //[ahuber] unexpected call, we could log a warning
 		
 		return reversedChainOfParents.stream()
 		.map(this::toEntityModel);
@@ -89,11 +89,20 @@ class WhereAmIModelDefault implements WhereAmIModel {
 	private void overrideFromConfigIfNew(IsisConfiguration configuration) {
 		
 		//[ahuber] without evidence that this significantly improves performance, 
-		// we use the smart update idiom here ...
-		final int newConfigHash = System.identityHashCode(configuration);
+		// (skipping 2 hash-table lookups) we use the smart update idiom here ...
+		//
+		// Note: Updates are expected to occur only once per application life-cycle,
+		// however this class might be loaded by a class-loader, that endures multiple
+		// application life-cycles. Chances of hash-collisions are simply neglected.
+		
+		// that's the hash of the object (we don't care about the actual config values)
+		// assuming that, we get a new (immutable) config instance each app's life-cycle:
+		final int newConfigHash = System.identityHashCode(configuration); 
 		if(newConfigHash == configHash)
 			return;
 		
+		configHash = newConfigHash;
+		
 		isWhereAmIEnabled = configuration.getBoolean(
 				CONFIG_KEY_IS_WHERE_AM_I_FEATURE_ENABLED,
 				IS_WHERE_AM_I_FEATURE_ENABLED_DEFAULT);

-- 
To stop receiving notification emails like this one, please contact
danhaywood@apache.org.