You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2016/05/11 13:32:13 UTC
wicket git commit: WICKET-6162 Reload leads to unexpected
RuntimeException 'Unable to find component with id'
Repository: wicket
Updated Branches:
refs/heads/wicket-7.x 8361b8bee -> 9ff894de0
WICKET-6162 Reload leads to unexpected RuntimeException 'Unable to find
component with id'
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/9ff894de
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/9ff894de
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/9ff894de
Branch: refs/heads/wicket-7.x
Commit: 9ff894de08a85495b09fa343489d9eef1f14b001
Parents: 8361b8b
Author: Andrea Del Bene <ad...@apache.org>
Authored: Wed May 11 15:29:49 2016 +0200
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Wed May 11 15:29:49 2016 +0200
----------------------------------------------------------------------
.../apache/wicket/page/PartialPageUpdate.java | 11 ++++---
.../wicket/page/XmlPartialPageUpdateTest.java | 31 ++++++++++++++++++--
2 files changed, 36 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/9ff894de/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java b/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java
index 9efcafb..2bef5e2 100644
--- a/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java
+++ b/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java
@@ -113,6 +113,8 @@ public abstract class PartialPageUpdate
protected final ResponseBuffer headerBuffer;
protected HtmlHeaderContainer header = null;
+
+ private Component originalHeaderContainer = null;
// whether a header contribution is being rendered
private boolean headerRendering = false;
@@ -123,7 +125,7 @@ public abstract class PartialPageUpdate
* The page which components are being updated.
*/
private final Page page;
-
+
/**
* Constructor.
*
@@ -133,7 +135,8 @@ public abstract class PartialPageUpdate
public PartialPageUpdate(final Page page)
{
this.page = page;
-
+ this.originalHeaderContainer = page.get(HtmlHeaderSectionHandler.HEADER_ID);
+
WebResponse response = (WebResponse) page.getResponse();
bodyBuffer = new ResponseBuffer(response);
headerBuffer = new ResponseBuffer(response);
@@ -172,9 +175,9 @@ public abstract class PartialPageUpdate
writeFooter(response, encoding);
} finally {
- if (header != null) {
+ if (header != null && originalHeaderContainer!= null) {
// restore a normal header
- page.replace(new HtmlHeaderContainer(HtmlHeaderSectionHandler.HEADER_ID));
+ page.replace(originalHeaderContainer);
header = null;
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/9ff894de/wicket-core/src/test/java/org/apache/wicket/page/XmlPartialPageUpdateTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/page/XmlPartialPageUpdateTest.java b/wicket-core/src/test/java/org/apache/wicket/page/XmlPartialPageUpdateTest.java
index 7725f26..3010945 100644
--- a/wicket-core/src/test/java/org/apache/wicket/page/XmlPartialPageUpdateTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/page/XmlPartialPageUpdateTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.wicket.page;
+import org.apache.wicket.Component;
+import org.apache.wicket.markup.parser.filter.HtmlHeaderSectionHandler;
import org.apache.wicket.mock.MockWebResponse;
import org.apache.wicket.util.tester.WicketTestCase;
import org.junit.Test;
@@ -23,13 +25,15 @@ import org.junit.Test;
/**
* Test for {@link XmlPartialPageUpdate}.
*/
-public class XmlPartialPageUpdateTest extends WicketTestCase {
+public class XmlPartialPageUpdateTest extends WicketTestCase
+{
/**
* CData start "]]>" has to be encoded in "]]]]><![CDATA[>".
*/
@Test
- public void encodeCdataEnd() {
+ public void encodeCdataEnd()
+ {
PageForPartialUpdate page = new PageForPartialUpdate();
XmlPartialPageUpdate update = new XmlPartialPageUpdate(page);
@@ -48,4 +52,27 @@ public class XmlPartialPageUpdateTest extends WicketTestCase {
"</head>]]></header-contribution></ajax-response>";
assertEquals(expected, response.getTextResponse().toString());
}
+ /**
+ *
+ * see https://issues.apache.org/jira/browse/WICKET-6162
+ */
+ @Test
+ public void keepTheSameHeaderContainer() throws Exception
+ {
+ PageForPartialUpdate page = new PageForPartialUpdate();
+
+ tester.startPage(page);
+
+ Component originalHeader = page.get(HtmlHeaderSectionHandler.HEADER_ID);
+
+ XmlPartialPageUpdate update = new XmlPartialPageUpdate(page);
+
+ update.add(page.container, page.container.getMarkupId());
+
+ MockWebResponse response = new MockWebResponse();
+
+ update.writeTo(response, "UTF-8");
+
+ assertEquals(originalHeader, page.get(HtmlHeaderSectionHandler.HEADER_ID));
+ }
}