You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2014/07/30 22:58:29 UTC
git commit: WICKET-5655 clear FLAG_INHERITABLE_MODEL reliably
Repository: wicket
Updated Branches:
refs/heads/wicket-6.x fd2dcbe51 -> 611dffb27
WICKET-5655 clear FLAG_INHERITABLE_MODEL reliably
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/611dffb2
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/611dffb2
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/611dffb2
Branch: refs/heads/wicket-6.x
Commit: 611dffb273f0cc4aba32af335a0dd72b9733ea7d
Parents: fd2dcbe
Author: svenmeier <sv...@meiers.net>
Authored: Wed Jul 30 22:57:55 2014 +0200
Committer: svenmeier <sv...@meiers.net>
Committed: Wed Jul 30 22:57:55 2014 +0200
----------------------------------------------------------------------
.../main/java/org/apache/wicket/Component.java | 9 ++----
.../apache/wicket/model/InheritedModelTest.java | 31 ++++++++++++++++++++
2 files changed, 34 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/611dffb2/wicket-core/src/main/java/org/apache/wicket/Component.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Component.java b/wicket-core/src/main/java/org/apache/wicket/Component.java
index a0c5def..d5e28cc 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Component.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
@@ -2948,6 +2948,9 @@ public abstract class Component
modelChanging();
setModelImpl(wrap(model));
modelChanged();
+
+ // WICKET-3413 reset 'inherited model' when model is explicitely set
+ setFlag(FLAG_INHERITABLE_MODEL, false);
}
return this;
@@ -2976,12 +2979,6 @@ public abstract class Component
if (model != null)
{
data_set(0, model);
- // WICKET-3413 reset 'inherited model' flag if model changed
- // and a new one is not IComponentInheritedModel
- if (getFlag(FLAG_INHERITABLE_MODEL) && !(model instanceof IComponentInheritedModel))
- {
- setFlag(FLAG_INHERITABLE_MODEL, false);
- }
}
else
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/611dffb2/wicket-core/src/test/java/org/apache/wicket/model/InheritedModelTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/model/InheritedModelTest.java b/wicket-core/src/test/java/org/apache/wicket/model/InheritedModelTest.java
index f8c7f1d..4e27602 100644
--- a/wicket-core/src/test/java/org/apache/wicket/model/InheritedModelTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/model/InheritedModelTest.java
@@ -20,6 +20,7 @@ import org.apache.wicket.WicketTestCase;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.util.value.ValueMap;
+import org.junit.Test;
/**
* Tests the inheritance of models.
@@ -100,4 +101,34 @@ public class InheritedModelTest extends WicketTestCase
tester.startPage(page);
assertEquals("bar", page.label.getDefaultModelObject());
}
+
+
+ /**
+ * Tests if Component#FLAG_INHERITABLE_MODEL reset after model change (WICKET-5655).
+ */
+ @Test
+ public void testResetInheritedModelFlag2()
+ {
+ ValueMap data1 = new ValueMap();
+ data1.put("label", "foo");
+
+ ValueMap data2 = new ValueMap();
+ data2.put("value", "bar");
+
+ InheritedTestPage page = new InheritedTestPage();
+
+ page.setDefaultModel(new CompoundPropertyModel<ValueMap>(data1));
+ tester.startPage(page);
+ assertEquals("foo", page.label.getDefaultModelObject());
+
+ page.label.setDefaultModel(new CompoundPropertyModel<String>(new PropertyModel<String>(
+ data2, "value")));
+ tester.startPage(page);
+ assertEquals("bar", page.label.getDefaultModelObject());
+
+ page.detach();
+
+ tester.startPage(page);
+ assertEquals("bar", page.label.getDefaultModelObject());
+ }
}