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 2014/12/08 23:06:25 UTC
wicket git commit: WICKET-5777 Reload of page leads to
WicketRuntimeException
Repository: wicket
Updated Branches:
refs/heads/master b6259e5f3 -> 4c931bd97
WICKET-5777 Reload of page leads to WicketRuntimeException
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/4c931bd9
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/4c931bd9
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/4c931bd9
Branch: refs/heads/master
Commit: 4c931bd975a16acd8c05572a5d81e636c390bb93
Parents: b6259e5
Author: Andrea Del Bene <ad...@apache.org>
Authored: Mon Dec 8 23:05:49 2014 +0100
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Mon Dec 8 23:05:49 2014 +0100
----------------------------------------------------------------------
.../markup/resolver/HtmlHeaderResolver.java | 37 +++++++++++++++++---
1 file changed, 32 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/4c931bd9/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
index a915a75..408d9d7 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
@@ -94,20 +94,29 @@ public class HtmlHeaderResolver implements IComponentResolver
// It is <wicket:head>. Because they do not provide any
// additional functionality they are merely a means of surrounding relevant
// markup. Thus we simply create a WebMarkupContainer to handle
- // the tag.
- WebMarkupContainer wicketHeadContainer = new WicketHeadContainer();
-
+ // the tag (class WicketHeadContainer).
+
if (header == null)
{
// Create a special header component which will gather
// additional input the <head> from 'contributors'.
header = newHtmlHeaderContainer(HtmlHeaderSectionHandler.HEADER_ID +
page.getAutoIndex(), tag);
- header.add(wicketHeadContainer);
+ header.add(new WicketHeadContainer());
return header;
}
- header.add(wicketHeadContainer);
+ WicketHeadContainer wicketHeadContainer =
+ header.visitChildren(new FindWicketHeadContainer());
+
+ //We just need one WicketHeadContainer, no matter how
+ //many <wicket:head> we have.
+ if (wicketHeadContainer == null)
+ {
+ wicketHeadContainer = new WicketHeadContainer();
+ header.add(wicketHeadContainer);
+ }
+
return wicketHeadContainer;
}
else if (container instanceof HtmlHeaderContainer)
@@ -183,4 +192,22 @@ public class HtmlHeaderResolver implements IComponentResolver
setRenderBodyOnly(true);
}
}
+
+ /**
+ * Visitor to find children of type {@link WicketHeadContainer}}
+ */
+ private static class FindWicketHeadContainer implements
+ IVisitor<Component, WicketHeadContainer>
+ {
+ @Override
+ public void component(Component component, IVisit<WicketHeadContainer> visit)
+ {
+ if(component instanceof WicketHeadContainer)
+ {
+ WicketHeadContainer reult = (WicketHeadContainer)component;
+ visit.stop(reult);
+ }
+ }
+
+ }
}
Re: wicket git commit: WICKET-5777 Reload of page leads to WicketRuntimeException
Posted by Martin Grigorov <mg...@apache.org>.
On Mon, Dec 8, 2014 at 11:06 PM, <ad...@apache.org> wrote:
> Repository: wicket
> Updated Branches:
> refs/heads/master b6259e5f3 -> 4c931bd97
>
>
> WICKET-5777 Reload of page leads to WicketRuntimeException
>
> Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
> Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/4c931bd9
> Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/4c931bd9
> Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/4c931bd9
>
> Branch: refs/heads/master
> Commit: 4c931bd975a16acd8c05572a5d81e636c390bb93
> Parents: b6259e5
> Author: Andrea Del Bene <ad...@apache.org>
> Authored: Mon Dec 8 23:05:49 2014 +0100
> Committer: Andrea Del Bene <ad...@apache.org>
> Committed: Mon Dec 8 23:05:49 2014 +0100
>
> ----------------------------------------------------------------------
> .../markup/resolver/HtmlHeaderResolver.java | 37 +++++++++++++++++---
> 1 file changed, 32 insertions(+), 5 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/4c931bd9/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
> b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
> index a915a75..408d9d7 100644
> ---
> a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
> +++
> b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
> @@ -94,20 +94,29 @@ public class HtmlHeaderResolver implements
> IComponentResolver
> // It is <wicket:head>. Because they do
> not provide any
> // additional functionality they are
> merely a means of surrounding relevant
> // markup. Thus we simply create a
> WebMarkupContainer to handle
> - // the tag.
> - WebMarkupContainer wicketHeadContainer =
> new WicketHeadContainer();
> -
> + // the tag (class WicketHeadContainer).
> +
> if (header == null)
> {
> // Create a special header
> component which will gather
> // additional input the <head>
> from 'contributors'.
> header =
> newHtmlHeaderContainer(HtmlHeaderSectionHandler.HEADER_ID +
> page.getAutoIndex(), tag);
> - header.add(wicketHeadContainer);
> + header.add(new
> WicketHeadContainer());
> return header;
> }
>
> - header.add(wicketHeadContainer);
> + WicketHeadContainer wicketHeadContainer =
> + header.visitChildren(new
> FindWicketHeadContainer());
> +
> + //We just need one WicketHeadContainer, no
> matter how
> + //many <wicket:head> we have.
> + if (wicketHeadContainer == null)
> + {
> + wicketHeadContainer = new
> WicketHeadContainer();
> + header.add(wicketHeadContainer);
> + }
> +
> return wicketHeadContainer;
> }
> else if (container instanceof HtmlHeaderContainer)
> @@ -183,4 +192,22 @@ public class HtmlHeaderResolver implements
> IComponentResolver
> setRenderBodyOnly(true);
> }
> }
> +
> + /**
> + * Visitor to find children of type {@link WicketHeadContainer}}
> + */
> + private static class FindWicketHeadContainer implements
> + IVisitor<Component, WicketHeadContainer>
> + {
> + @Override
> + public void component(Component component,
> IVisit<WicketHeadContainer> visit)
> + {
> + if(component instanceof WicketHeadContainer)
>
Wicket style uses a space after 'if' and before '('
> + {
> + WicketHeadContainer reult =
> (WicketHeadContainer)component;
>
s/reult/result/
> + visit.stop(reult);
> + }
> + }
> +
> + }
> }
>
>