You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2012/01/07 10:24:47 UTC
git commit: WICKET-4323 StringResourceModels doesn't seem to detach
properly
Updated Branches:
refs/heads/master 061a478a0 -> e24874daa
WICKET-4323
StringResourceModels doesn't seem to detach properly
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e24874da
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e24874da
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e24874da
Branch: refs/heads/master
Commit: e24874daacb9a862e884365947dc5e14f2e537dd
Parents: 061a478
Author: martin-g <mg...@apache.org>
Authored: Sat Jan 7 11:24:37 2012 +0200
Committer: martin-g <mg...@apache.org>
Committed: Sat Jan 7 11:24:37 2012 +0200
----------------------------------------------------------------------
.../apache/wicket/model/StringResourceModel.java | 11 +++++
.../wicket/model/StringResourceModelTest.java | 34 +++++++++++++++
2 files changed, 45 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/e24874da/wicket-core/src/main/java/org/apache/wicket/model/StringResourceModel.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/model/StringResourceModel.java b/wicket-core/src/main/java/org/apache/wicket/model/StringResourceModel.java
index fe74c2f..573a162 100644
--- a/wicket-core/src/main/java/org/apache/wicket/model/StringResourceModel.java
+++ b/wicket-core/src/main/java/org/apache/wicket/model/StringResourceModel.java
@@ -233,6 +233,15 @@ public class StringResourceModel extends LoadableDetachableModel<String>
}
@Override
+ protected void onDetach()
+ {
+ if (StringResourceModel.this.component == null)
+ {
+ StringResourceModel.this.onDetach();
+ }
+ }
+
+ @Override
protected String load()
{
if (StringResourceModel.this.component != null)
@@ -582,6 +591,8 @@ public class StringResourceModel extends LoadableDetachableModel<String>
@Override
protected final void onDetach()
{
+ super.onDetach();
+
// detach any model
if (model != null)
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/e24874da/wicket-core/src/test/java/org/apache/wicket/model/StringResourceModelTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/model/StringResourceModelTest.java b/wicket-core/src/test/java/org/apache/wicket/model/StringResourceModelTest.java
index 5ca9dd7..15e9dd7 100644
--- a/wicket-core/src/test/java/org/apache/wicket/model/StringResourceModelTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/model/StringResourceModelTest.java
@@ -214,6 +214,40 @@ public class StringResourceModelTest extends WicketTestCase
}
/**
+ * https://issues.apache.org/jira/browse/WICKET-4323
+ */
+ @Test
+ public void detachSubstituteModelFromAssignmentWrapper()
+ {
+ IModel<WeatherStation> nullOnDetachModel = new Model<WeatherStation>()
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void detach()
+ {
+ setObject(null);
+ }
+ };
+
+ nullOnDetachModel.setObject(ws);
+ Label label1 = new Label("resourceModelWithComponent", new StringResourceModel(
+ "wrappedOnAssignment.text", page, nullOnDetachModel));
+ page.add(label1);
+ label1.getDefaultModelObject();
+ label1.detach();
+ Assert.assertNull(nullOnDetachModel.getObject());
+
+ nullOnDetachModel.setObject(ws);
+ Label label2 = new Label("resourceModelWithoutComponent", new StringResourceModel(
+ "wrappedOnAssignment.text", nullOnDetachModel));
+ page.add(label2);
+ label2.getDefaultModelObject();
+ label2.detach();
+ Assert.assertNull(nullOnDetachModel.getObject());
+ }
+
+ /**
* Inner class used for testing.
*/
public static class WeatherStation implements Serializable