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/01/19 17:22:59 UTC

[isis] 01/02: ISIS-2223: ensure map is serializable (forces use of HashMap)

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

commit 646234b5837a4ac07af08efa1c658660bd7a82da
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Jan 19 18:19:12 2020 +0100

    ISIS-2223: ensure map is serializable (forces use of HashMap)
---
 .../core/commons/internal/memento/_Mementos_MementoDefault.java    | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/memento/_Mementos_MementoDefault.java b/core/commons/src/main/java/org/apache/isis/core/commons/internal/memento/_Mementos_MementoDefault.java
index 2d919f6..637cf3d 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/internal/memento/_Mementos_MementoDefault.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/internal/memento/_Mementos_MementoDefault.java
@@ -26,6 +26,7 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.ObjectStreamClass;
 import java.io.Serializable;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
@@ -33,13 +34,13 @@ import javax.annotation.Nullable;
 
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.base._NullSafe;
+import org.apache.isis.core.commons.internal.base._With;
 import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.internal.context._Context;
 import org.apache.isis.core.commons.internal.memento._Mementos.EncoderDecoder;
 import org.apache.isis.core.commons.internal.memento._Mementos.Memento;
 import org.apache.isis.core.commons.internal.memento._Mementos.SerializingAdapter;
-import org.apache.isis.core.commons.internal.base._With;
 
 /**
  *
@@ -62,7 +63,7 @@ class _Mementos_MementoDefault implements _Mementos.Memento {
     private _Mementos_MementoDefault(
             EncoderDecoder codec,
             SerializingAdapter serializer,
-            Map<String, Serializable> valuesByKey) {
+            HashMap<String, Serializable> valuesByKey) { // we need a Serializable Map
 
         this.codec = _With.requires(codec, "codec");
         this.serializer = _With.requires(serializer, "serializer");
@@ -122,7 +123,7 @@ class _Mementos_MementoDefault implements _Mementos.Memento {
             }
         }) {
             // read in the entire map
-            final Map<String, Serializable> valuesByKey = _Casts.uncheckedCast(ois.readObject());
+            final HashMap<String, Serializable> valuesByKey = _Casts.uncheckedCast(ois.readObject());
             return new _Mementos_MementoDefault(codec, serializer, valuesByKey);
         } catch (Exception e) {
             throw new IllegalArgumentException("failed to parse memento from serialized string", e);