You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by da...@apache.org on 2006/10/12 18:36:32 UTC
svn commit: r463311 - in /incubator/wicket/trunk/wicket/src:
main/java/wicket/Session.java main/java/wicket/feedback/FeedbackMessages.java
test/java/wicket/protocol/http/MockWebApplicationTest.java
Author: dashorst
Date: Thu Oct 12 09:36:29 2006
New Revision: 463311
URL: http://svn.apache.org/viewvc?view=rev&rev=463311
Log:
Fixed flash message clean up
Modified:
incubator/wicket/trunk/wicket/src/main/java/wicket/Session.java
incubator/wicket/trunk/wicket/src/main/java/wicket/feedback/FeedbackMessages.java
incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/MockWebApplicationTest.java
Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/Session.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/Session.java?view=diff&rev=463311&r1=463310&r2=463311
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/Session.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/Session.java Thu Oct 12 09:36:29 2006
@@ -1056,19 +1056,12 @@
*/
final void cleanupFeedbackMessages()
{
- if (feedbackMessages.size() > 0)
+ int size = feedbackMessages.size();
+ feedbackMessages.clearRendered();
+ // mark the session as dirty when the feedback messages have been altered.
+ if(size != feedbackMessages.size())
{
- Iterator msgs = feedbackMessages.iterator();
- while (msgs.hasNext())
- {
- final FeedbackMessage msg = (FeedbackMessage)msgs.next();
- if (msg.isRendered())
- {
- msgs.remove();
- dirty();
- }
- }
- feedbackMessages.trimToSize();
+ dirty();
}
}
Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/feedback/FeedbackMessages.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/feedback/FeedbackMessages.java?view=diff&rev=463311&r1=463310&r2=463311
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/feedback/FeedbackMessages.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/feedback/FeedbackMessages.java Thu Oct 12 09:36:29 2006
@@ -96,15 +96,15 @@
*/
public final void clearRendered()
{
- Iterator<FeedbackMessage> msgs = iterator();
- while (msgs.hasNext())
+ for(int i = messages.size() - 1; i >= 0; i--)
{
- final FeedbackMessage msg = msgs.next();
+ final FeedbackMessage msg = (FeedbackMessage)messages.get(i);
if (msg.isRendered())
{
- msgs.remove();
+ messages.remove(i);
}
}
+ trimToSize();
}
/**
Modified: incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/MockWebApplicationTest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/MockWebApplicationTest.java?view=diff&rev=463311&r1=463310&r2=463311
==============================================================================
--- incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/MockWebApplicationTest.java (original)
+++ incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/MockWebApplicationTest.java Thu Oct 12 09:36:29 2006
@@ -18,10 +18,13 @@
*/
package wicket.protocol.http;
+import java.util.Iterator;
import junit.framework.Assert;
import junit.framework.TestCase;
import wicket.markup.html.link.Link;
import wicket.util.diff.DiffUtil;
+import wicket.Session;
+import wicket.feedback.FeedbackMessage;
/**
* Simple application that demonstrates the mock http application code (and
@@ -69,6 +72,27 @@
// Inspect the page & model
MockPage p = (MockPage)application.getLastRenderedPage();
Assert.assertEquals("Link should have been clicked 0 times", 0, p.getLinkClickCount());
+ }
+
+ /**
+ * Tests the clean up of flash messages put into the session when they are rendered.
+ */
+ public void testSessionFeedbackMessagesCleanUp()
+ {
+ application.setupRequestAndResponse();
+ application.processRequestCycle();
+ Session session = Session.get();
+ session.info("Message");
+ session.info("Not rendered");
+ Iterator iterator = session.getFeedbackMessages().iterator();
+ FeedbackMessage message = (FeedbackMessage)iterator.next();
+ message.markRendered();
+ session.getFeedbackMessages().clearRendered();
+ assertEquals(1, session.getFeedbackMessages().size());
+ message = (FeedbackMessage)iterator.next();
+ message.markRendered();
+ session.getFeedbackMessages().clearRendered();
+ assertEquals(0, session.getFeedbackMessages().size());
}
/**