Author: mgrigorov
Date: Mon Sep 12 14:20:22 2011
New Revision: 1169759
URL: http://svn.apache.org/viewvc?rev=1169759&view=rev
Log:
WICKET-4016 MarkupContainer.toString(true) fails with MarkupNotFoundException
if the call is made in the component constructor
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java?rev=1169759&r1=1169758&r2=1169759&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java
(original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java Mon
Sep 12 14:20:22 2011
@@ -3207,23 +3207,22 @@ public abstract class Component
{
try
{
+ final StringBuilder buffer = new StringBuilder();
+ buffer.append("[Component id = ").append(getId());
+
if (detailed)
{
final Page page = findPage();
if (page == null)
{
- return new StringBuilder("[Component id
= ").append(getId())
- .append(", page = <No Page>,
path = ")
+ buffer.append(", page = <No Page>, path
= ")
.append(getPath())
.append('.')
-
.append(Classes.simpleName(getClass()))
- .append(']')
- .toString();
+
.append(Classes.simpleName(getClass()));
}
else
{
- return new StringBuilder("[Component id
= ").append(getId())
- .append(", page = ")
+ buffer.append(", page = ")
.append(getPage().getClass().getName())
.append(", path = ")
.append(getPath())
@@ -3232,15 +3231,18 @@ public abstract class Component
.append(", isVisible = ")
.append((determineVisibility()))
.append(", isVersioned = ")
- .append(isVersioned())
- .append(']')
- .toString();
+ .append(isVersioned());
+ }
+
+ if (markup != null)
+ {
+ buffer.append(", markup = ").append(new
MarkupStream(getMarkup()).toString());
}
}
- else
- {
- return "[Component id = " + getId() + ']';
- }
+
+ buffer.append(']');
+
+ return buffer.toString();
}
catch (Exception e)
{
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java?rev=1169759&r1=1169758&r2=1169759&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
Mon Sep 12 14:20:22 2011
@@ -860,32 +860,26 @@ public abstract class MarkupContainer ex
public String toString(final boolean detailed)
{
final StringBuilder buffer = new StringBuilder();
-
buffer.append("[").append(this.getClass().getSimpleName()).append(" ");
+
buffer.append('[').append(this.getClass().getSimpleName()).append(' ');
buffer.append(super.toString(detailed));
- if (detailed)
+ if (detailed && children_size() != 0)
{
- if (getMarkup() != null)
- {
- buffer.append(", markup = ").append(new
MarkupStream(getMarkup()).toString());
- }
- if (children_size() != 0)
- {
- buffer.append(", children = ");
+ buffer.append(", children = ");
- // Loop through child components
- final int size = children_size();
- for (int i = 0; i < size; i++)
+ // Loop through child components
+ final int size = children_size();
+ for (int i = 0; i < size; i++)
+ {
+ // Get next child
+ final Component child = children_get(i);
+ if (i != 0)
{
- // Get next child
- final Component child = children_get(i);
- if (i != 0)
- {
- buffer.append(' ');
- }
- buffer.append(child.toString());
+ buffer.append(' ');
}
+ buffer.append(child.toString());
}
+
}
buffer.append(']');
return buffer.toString();
Modified:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java?rev=1169759&r1=1169758&r2=1169759&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
Mon Sep 12 14:20:22 2011
@@ -129,6 +129,24 @@ public class MarkupContainerTest extends
assertEquals(1, page.afterRenderCalls);
}
+ /**
+ * https://issues.apache.org/jira/browse/WICKET-4016
+ */
+ @Test
+ public void callToStringFromConstructor()
+ {
+ ToStringComponent page = new ToStringComponent();
+ }
+
+ private static class ToStringComponent extends WebMarkupContainer
+ {
+ private ToStringComponent()
+ {
+ super("id");
+ toString(true);
+ }
+ }
+
private static class AfterRenderJustOncePage extends WebPage
implements
IMarkupResourceStreamProvider