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:25:26 UTC

svn commit: r463303 - in /incubator/wicket/branches/wicket-1.x/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:25:25 2006
New Revision: 463303

URL: http://svn.apache.org/viewvc?view=rev&rev=463303
Log:
Fixed flash message clean up code

Modified:
    incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/Session.java
    incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/feedback/FeedbackMessages.java
    incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/protocol/http/MockWebApplicationTest.java

Modified: incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/Session.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/Session.java?view=diff&rev=463303&r1=463302&r2=463303
==============================================================================
--- incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/Session.java (original)
+++ incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/Session.java Thu Oct 12 09:25:25 2006
@@ -1009,20 +1009,7 @@
 	 */
 	final void cleanupFeedbackMessages()
 	{
-		if (feedbackMessages.size() > 0)
-		{
-			Iterator msgs = feedbackMessages.iterator();
-			while (msgs.hasNext())
-			{
-				final FeedbackMessage msg = (FeedbackMessage)msgs.next();
-				if (msg.isRendered())
-				{
-					msgs.remove();
-					dirty();
-				}
-			}
-			feedbackMessages.trimToSize();
-		}
+		feedbackMessages.clearRendered();
 	}
 
 	/**

Modified: incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/feedback/FeedbackMessages.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/feedback/FeedbackMessages.java?view=diff&rev=463303&r1=463302&r2=463303
==============================================================================
--- incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/feedback/FeedbackMessages.java (original)
+++ incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/feedback/FeedbackMessages.java Thu Oct 12 09:25:25 2006
@@ -99,15 +99,15 @@
 	 */
 	public final void clearRendered()
 	{
-		Iterator msgs = iterator();
-		while (msgs.hasNext())
+		for(int i = messages.size() - 1; i >= 0; i--)
 		{
-			final FeedbackMessage msg = (FeedbackMessage)msgs.next();
+			final FeedbackMessage msg = (FeedbackMessage)messages.get(i);
 			if (msg.isRendered())
 			{
-				msgs.remove();
+				messages.remove(i);
 			}
 		}
+		trimToSize();
 	}
 
 	/**

Modified: incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/protocol/http/MockWebApplicationTest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/protocol/http/MockWebApplicationTest.java?view=diff&rev=463303&r1=463302&r2=463303
==============================================================================
--- incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/protocol/http/MockWebApplicationTest.java (original)
+++ incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/protocol/http/MockWebApplicationTest.java Thu Oct 12 09:25:25 2006
@@ -17,8 +17,12 @@
  */
 package wicket.protocol.http;
 
+import java.util.Iterator;
+
 import junit.framework.Assert;
 import junit.framework.TestCase;
+import wicket.Session;
+import wicket.feedback.FeedbackMessage;
 import wicket.markup.html.link.Link;
 import wicket.util.diff.DiffUtil;
 
@@ -69,6 +73,26 @@
 		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());
+	}
 	/**
 	 * @throws Exception
 	 */