You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2018/06/05 08:44:35 UTC

[4/5] brooklyn-server git commit: Set attributes with value unchanged: don’t re-persist

Set attributes with value unchanged: don’t re-persist

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

Branch: refs/heads/master
Commit: 62d7b967c49f35f45e97c8f6a650afdbc4f5a094
Parents: 01a5f19
Author: Aled Sage <al...@gmail.com>
Authored: Thu May 24 22:00:31 2018 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Thu May 24 22:00:31 2018 +0100

----------------------------------------------------------------------
 .../org/apache/brooklyn/core/entity/AbstractEntity.java  |  5 ++++-
 .../brooklyn/core/mgmt/rebind/RebindEntityTest.java      | 11 +++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/62d7b967/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
index bb561bd..53630d9 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
@@ -974,7 +974,10 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
                 entityType.addSensorIfAbsent(attribute);
             }
             
-            getManagementSupport().getEntityChangeListener().onAttributeChanged(attribute);
+            if (!Objects.equal(result, val)) {
+                getManagementSupport().getEntityChangeListener().onAttributeChanged(attribute);
+            }
+            
             return result;
         }
 

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/62d7b967/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindEntityTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindEntityTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindEntityTest.java
index 71f4018..8b58f58 100644
--- a/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindEntityTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindEntityTest.java
@@ -770,6 +770,17 @@ public class RebindEntityTest extends RebindTestFixtureWithApp {
         assertFalse(RebindTestUtils.hasPendingPersists(mgmt()));
     }
     
+    @Test
+    public void testDoNotRepersistOnSetAttributeWithSameValue() throws Exception {
+        final AttributeSensor<String> MY_ATTRIBUTE = Sensors.builder(String.class, "myAttribute").build();
+        
+        origApp.sensors().set(MY_ATTRIBUTE, "myval");
+        RebindTestUtils.waitForPersisted(mgmt());
+        
+        origApp.sensors().set(MY_ATTRIBUTE, "myval");
+        assertFalse(RebindTestUtils.hasPendingPersists(mgmt()));
+    }
+    
     @ImplementedBy(EntityChecksIsRebindingImpl.class)
     public static interface EntityChecksIsRebinding extends TestEntity {
         boolean isRebindingValWhenRebinding();