From eb7277aa13e292b7285944d1c31a8858479e9b2f Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 21 Sep 2018 05:35:01 +0200 Subject: [PATCH] Wrong behaviour in BeanMap.put/putAll (#1484) --- src/main/java/io/ebean/common/BeanMap.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/ebean/common/BeanMap.java b/src/main/java/io/ebean/common/BeanMap.java index 34bb51f9e..82a3c9853 100644 --- a/src/main/java/io/ebean/common/BeanMap.java +++ b/src/main/java/io/ebean/common/BeanMap.java @@ -273,14 +273,16 @@ public final class BeanMap extends AbstractBeanCollection implements Ma checkReadOnly(); init(); if (modifyListening) { - Object oldBean = map.put(key, value); + E oldBean = map.put(key, value); if (value != oldBean) { // register the add of the new and the removal of the old modifyAddition(value); modifyRemoval(oldBean); } + return oldBean; + } else { + return map.put(key, value); } - return map.put(key, value); } @Override @@ -295,8 +297,9 @@ public final class BeanMap extends AbstractBeanCollection implements Ma modifyRemoval(oldBean); } } + } else { + map.putAll(puts); } - map.putAll(puts); } @Override