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();