You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/07/20 06:26:41 UTC

[isis] branch master updated: ISIS-2297: ObjectMementoWkt: properly implement hash function

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

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


The following commit(s) were added to refs/heads/master by this push:
     new fa21997  ISIS-2297: ObjectMementoWkt: properly implement hash function
fa21997 is described below

commit fa219975ae64add73756be7582c5e457b3eb6359
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Jul 20 08:26:27 2020 +0200

    ISIS-2297: ObjectMementoWkt: properly implement hash function
---
 .../wicket/viewer/services/mementos/ObjectMementoWkt.java      | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoWkt.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoWkt.java
index ce4b63e..e5b898f 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoWkt.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoWkt.java
@@ -21,6 +21,7 @@ package org.apache.isis.viewer.wicket.viewer.services.mementos;
 
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.function.Function;
 
@@ -289,18 +290,19 @@ final class ObjectMementoWkt implements Serializable {
             public boolean equals(
                     ObjectMementoWkt memento, 
                     ObjectMementoWkt otherMemento) {
-                return otherMemento.recreateStrategy == SERIALIZABLE && 
-                        Objects.equal(memento.serializedObject, otherMemento.serializedObject);
+                return otherMemento.recreateStrategy == SERIALIZABLE
+                        && Objects.equal(memento.objectSpecId, otherMemento.objectSpecId)
+                        && Objects.equal(memento.serializedObject, otherMemento.serializedObject);
             }
 
             @Override
             public int hashCode(ObjectMementoWkt memento) {
-                return memento.serializedObject.hashCode();
+                return Arrays.hashCode(memento.serializedObject); // potentially expensive, unfortunately cannot be cached in enum
             }
 
             @Override
             public String toString(ObjectMementoWkt memento) {
-                throw _Exceptions.notImplemented();
+                return "ObjectMementoWkt {SERIALIZABLE " + memento.objectSpecId + "}";
             }
 
             @Override