Author: mgrigorov
Date: Sat Jul 24 17:35:53 2010
New Revision: 978908
URL: http://svn.apache.org/viewvc?rev=978908&view=rev
Log:
WICKET-2961 Adding a component in Component#onInitialize() leads to
StackOverflowError
Add a unit test and a fix.
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=978908&r1=978907&r2=978908&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Sat Jul
24 17:35:53 2010
@@ -967,8 +967,8 @@ public abstract class Component implemen
{
if (!getFlag(FLAG_INITIALIZED))
{
- onInitialize();
setFlag(FLAG_INITIALIZED, true);
+ onInitialize();
}
}
Modified:
wicket/trunk/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java?rev=978908&r1=978907&r2=978908&view=diff
==============================================================================
---
wicket/trunk/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java
(original)
+++
wicket/trunk/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java
Sat Jul 24 17:35:53 2010
@@ -19,6 +19,7 @@ package org.apache.wicket;
import org.apache.wicket.markup.IMarkupResourceStreamProvider;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.util.resource.IResourceStream;
import org.apache.wicket.util.resource.StringResourceStream;
import org.apache.wicket.util.tester.WicketTester;
@@ -121,6 +122,8 @@ public class ComponentInitializationTest
protected void onInitialize()
{
count++;
+ add(new Label("addedComponent",
+ "Testing addition of a component to show
StackOverflowError"));
}
public int getCount()
@@ -131,7 +134,8 @@ public class ComponentInitializationTest
public IResourceStream getMarkupResourceStream(MarkupContainer
container,
Class<?> containerClass)
{
- return new StringResourceStream("<html></html>");
+ return new StringResourceStream(
+ "<html><body><span
wicket:id=\"addedComponent\"></span></body></html>");
}
}