brooklyn-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From henev...@apache.org
Subject [1/2] brooklyn-server git commit: Fix Entities.UNCHANGED marker, for rebind
Date Thu, 07 Jul 2016 09:38:19 GMT
Repository: brooklyn-server
Updated Branches:
  refs/heads/master 257926534 -> 20c6b1e00


Fix Entities.UNCHANGED marker, for rebind

Previously, after rebind then enrichers using this would have their
own copy of their object (due to xstream deserialisation). Instead,
use an enum.

This does not fix the problem for existing persisted state of enrichers
that have their own object!

Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/1455bbef
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/1455bbef
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/1455bbef

Branch: refs/heads/master
Commit: 1455bbefabf610132c60c2f89a1c3e78a3d45f8e
Parents: 1f2e2a1
Author: Aled Sage <aled.sage@gmail.com>
Authored: Wed Jul 6 13:16:29 2016 +0100
Committer: Aled Sage <aled.sage@gmail.com>
Committed: Wed Jul 6 13:16:29 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/brooklyn/core/entity/Entities.java   | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1455bbef/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java b/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java
index 1909845..2821652 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java
@@ -144,19 +144,26 @@ public class Entities {
             "access.cert",
             "access.key");
 
+    // Don't use `new Object()` - deserialization creates a different object from the constant.
+    // Instead, use this enum.
+    private enum ValueMarkers {
+        UNCHANGED,
+        REMOVE;
+    }
+    
     /**
      * Special object used by some setting methods to indicate that a value should be ignored.
      * <p>
      * See specific usages of this field to confirm where.
      */
-    public static final Object UNCHANGED = new Object();
+    public static final Object UNCHANGED = ValueMarkers.UNCHANGED;
 
     /**
      * Special object used by some setting methods to indicate that a value should be removed.
      * <p>
      * See specific usages of this field to confirm where.
      */
-    public static final Object REMOVE = new Object();
+    public static final Object REMOVE = ValueMarkers.REMOVE;
 
     /**
      * Invokes an {@link Effector} on multiple entities, with the named arguments from the
parameters {@link Map}


Mime
View raw message