Author: jdonnerstag
Date: Sat Feb 19 13:47:52 2011
New Revision: 1072328
URL: http://svn.apache.org/viewvc?rev=1072328&view=rev
Log:
fixed: Value exchange in a wicket:message throws an exception (if inside a
border)
Issue: WICKET-3454
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BaseBorder.html
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BaseBorder.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BasePage.html
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BasePage.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.html
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.properties
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePageExpectedResult.html
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/WicketMessageResolverTest.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/WicketMessageResolverTest.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java?rev=1072328&r1=1072327&r2=1072328&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
Sat Feb 19 13:47:52 2011
@@ -344,10 +344,12 @@ public class WicketMessageResolver imple
while (markupStream.hasMore() &&
!markupStream.get().closes(openTag))
{
MarkupElement element =
markupStream.get();
+
// If it a tag like <wicket..> or <span
wicket:id="..." >
if ((element instanceof ComponentTag)
&& !markupStream.atCloseTag())
{
- String id =
((ComponentTag)element).getId();
+ ComponentTag currentTag =
(ComponentTag)element;
+ String id = currentTag.getId();
// Temporarily replace the web
response with a String response
final Response webResponse =
getResponse();
@@ -358,6 +360,18 @@ public class WicketMessageResolver imple
getRequestCycle().setResponse(response);
Component component =
getParent().get(id);
+ if (component == null)
+ {
+ component =
ComponentResolvers.resolve(getParent(), markupStream,
+
currentTag, null);
+
+ // Must not be
a Page and it must be connected to a parent.
+ if
(component.getParent() == null)
+ {
+
component = null;
+ }
+ }
+
if (component != null)
{
component.render();
Modified:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/WicketMessageResolverTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/WicketMessageResolverTest.java?rev=1072328&r1=1072327&r2=1072328&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/WicketMessageResolverTest.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/WicketMessageResolverTest.java
Sat Feb 19 13:47:52 2011
@@ -24,7 +24,6 @@ import org.apache.wicket.WicketTestCase;
*/
public class WicketMessageResolverTest extends WicketTestCase
{
-
/**
* @throws Exception
*/
@@ -76,7 +75,6 @@ public class WicketMessageResolverTest e
assertEquals(text, ex.getMessage().substring(0,
text.length()));
return;
}
-
}
/**
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BaseBorder.html
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BaseBorder.html?rev=1072328&view=auto
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BaseBorder.html
(added)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BaseBorder.html
Sat Feb 19 13:47:52 2011
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<html
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+ <body>
+ <wicket:border>
+ <span>Marker for border start</span>
+ <wicket:body />
+ <span>Marker for border end</span>
+ </wicket:border>
+ </body>
+</html>
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BaseBorder.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BaseBorder.java?rev=1072328&view=auto
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BaseBorder.java
(added)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BaseBorder.java
Sat Feb 19 13:47:52 2011
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.markup.resolver.border;
+
+import org.apache.wicket.markup.html.border.Border;
+
+/**
+ *
+ */
+public class BaseBorder extends Border
+{
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Construct.
+ *
+ * @param id
+ */
+ public BaseBorder(String id)
+ {
+ super(id);
+ }
+}
\ No newline at end of file
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BasePage.html
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BasePage.html?rev=1072328&view=auto
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BasePage.html
(added)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BasePage.html
Sat Feb 19 13:47:52 2011
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+ <head>
+ <title>Title</title>
+ </head>
+ <body>
+ <div wicket:id="myborder" id="page">
+ <wicket:child />
+ </div>
+ </body>
+</html>
\ No newline at end of file
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BasePage.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BasePage.java?rev=1072328&view=auto
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BasePage.java
(added)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/BasePage.java
Sat Feb 19 13:47:52 2011
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.markup.resolver.border;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.border.Border;
+
+/**
+ *
+ */
+public class BasePage extends WebPage
+{
+ private static final long serialVersionUID = 1L;
+
+ private Border border;
+
+ /**
+ * Construct.
+ */
+ public BasePage()
+ {
+ super();
+ }
+
+ /**
+ *
+ * @param child
+ * @return child
+ */
+ public final MarkupContainer add(final Component child)
+ {
+ if (borderMustBeInitialized())
+ {
+ initializeBorder();
+ }
+ addToBorder(child);
+ return this;
+ }
+
+ private boolean borderMustBeInitialized()
+ {
+ return border == null;
+ }
+
+ private void initializeBorder()
+ {
+ border = new BaseBorder("myborder");
+ super.add(border);
+ }
+
+ private void addToBorder(final Component child)
+ {
+ border.addToBorderBody(child);
+ }
+}
\ No newline at end of file
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.html
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.html?rev=1072328&view=auto
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.html
(added)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.html
Sat Feb 19 13:47:52 2011
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<html
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+ <wicket:extend>
+ <div id="pagebody">
+ <p>
+ <wicket:message key="item.pricedisclaimer1">
+ [Disclaimer 1]
+ <span
wicket:id="vat1value">[Vat1]</span>.
+ <span
wicket:id="vat2value">[Vat2]</span>.
+ </wicket:message>
+ <wicket:message
key="item.pricedisclaimer2">[Disclaimer 2]</wicket:message>
+ <a href="#">
+ <wicket:message
key="item.pricedisclaimer3">[Disclaimer 3]</wicket:message>
+ </a>.
+ </p>
+ </div>
+ </wicket:extend>
+</html>
\ No newline at end of file
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.java?rev=1072328&view=auto
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.java
(added)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.java
Sat Feb 19 13:47:52 2011
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.markup.resolver.border;
+
+import org.apache.wicket.markup.html.basic.Label;
+
+/**
+ *
+ */
+public class HomePage extends BasePage
+{
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Construct.
+ */
+ public HomePage()
+ {
+ add(new Label("vat1value", String.valueOf(19)));
+ add(new Label("vat2value", String.valueOf(7)));
+ }
+}
\ No newline at end of file
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.properties
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.properties?rev=1072328&view=auto
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.properties
(added)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePage.properties
Sat Feb 19 13:47:52 2011
@@ -0,0 +1,3 @@
+item.pricedisclaimer1=Alle Preise enthalten die gesetzliche MwSt. von
${vat1value}% bzw. ${vat2value}%.
+item.pricedisclaimer2=Bitte beachten Sie unsere
+item.pricedisclaimer3=Versandkosten
\ No newline at end of file
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePageExpectedResult.html
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePageExpectedResult.html?rev=1072328&view=auto
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePageExpectedResult.html
(added)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/HomePageExpectedResult.html
Sat Feb 19 13:47:52 2011
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+ <head>
+ <title>Title</title>
+ </head>
+ <body>
+ <div wicket:id="myborder" id="page"><wicket:border>
+ <span>Marker for border start</span>
+ <wicket:body>
+ <wicket:child><wicket:extend>
+ <div id="pagebody">
+ <p>
+ <wicket:message
key="item.pricedisclaimer1">Alle Preise enthalten die gesetzliche MwSt. von
<span wicket:id="vat1value">19</span>% bzw. <span
wicket:id="vat2value">7</span>%.</wicket:message>
+ <wicket:message key="item.pricedisclaimer2">Bitte
beachten Sie unsere</wicket:message>
+ <a href="#">
+ <wicket:message
key="item.pricedisclaimer3">Versandkosten</wicket:message>
+ </a>.
+ </p>
+ </div>
+ </wicket:extend></wicket:child>
+ </wicket:body>
+ <span>Marker for border end</span>
+ </wicket:border></div>
+ </body>
+</html>
\ No newline at end of file
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/WicketMessageResolverTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/WicketMessageResolverTest.java?rev=1072328&view=auto
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/WicketMessageResolverTest.java
(added)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/resolver/border/WicketMessageResolverTest.java
Sat Feb 19 13:47:52 2011
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.markup.resolver.border;
+
+import org.apache.wicket.WicketTestCase;
+
+/**
+ *
+ */
+public class WicketMessageResolverTest extends WicketTestCase
+{
+ /**
+ * @throws Exception
+ */
+ public void test_1() throws Exception
+ {
+ executeTest(HomePage.class, "HomePageExpectedResult.html");
+ }
+}