Author: ivaynberg
Date: Tue Jul 21 17:35:25 2009
New Revision: 796399

URL: http://svn.apache.org/viewvc?rev=796399&view=rev
Log:
wicket-2384 another precaution to cleaning up feedback messages
Issue: WICKET-2384

Modified:
    
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/feedback/FeedbackMessage.java
    
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/feedback/FeedbackMessages.java

Modified: 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/feedback/FeedbackMessage.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/feedback/FeedbackMessage.java?rev=796399&r1=796398&r2=796399&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/feedback/FeedbackMessage.java
 (original)
+++ 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/feedback/FeedbackMessage.java
 Tue Jul 21 17:35:25 2009
@@ -22,6 +22,7 @@
 
 import org.apache.wicket.Component;
 import org.apache.wicket.IClusterable;
+import org.apache.wicket.model.IDetachable;
 
 
 /**
@@ -30,7 +31,7 @@
  * @author Eelco Hillenius
  * @author Jonathan Locke
  */
-public class FeedbackMessage implements IClusterable
+public class FeedbackMessage implements IClusterable, IDetachable
 {
        private static final long serialVersionUID = 1L;
 
@@ -79,7 +80,7 @@
        private final Serializable message;
 
        /** The reporting component. */
-       private final Component reporter;
+       private Component reporter;
 
        /** Whether or not this message has been rendered */
        private boolean rendered = false;
@@ -95,8 +96,8 @@
         *            The level of the message
         */
        public FeedbackMessage(final Component reporter, final Serializable 
message, final int level)
-       {                                                               
-               if(message == null)
+       {
+               if (message == null)
                        throw new IllegalArgumentException("Parameter message 
can't not be null.");
 
                this.reporter = reporter;
@@ -243,7 +244,15 @@
        public String toString()
        {
                return "[FeedbackMessage message = \"" + getMessage() + "\", 
reporter = " +
-                               ((getReporter() == null) ? "null" : 
getReporter().getId()) + ", level = " +
-                               getLevelAsString() + "]";
+                       ((getReporter() == null) ? "null" : 
getReporter().getId()) + ", level = " +
+                       getLevelAsString() + "]";
+       }
+
+       /**
+        * @see org.apache.wicket.model.IDetachable#detach()
+        */
+       public void detach()
+       {
+               reporter = null;
        }
 }

Modified: 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/feedback/FeedbackMessages.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/feedback/FeedbackMessages.java?rev=796399&r1=796398&r2=796399&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/feedback/FeedbackMessages.java
 (original)
+++ 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/feedback/FeedbackMessages.java
 Tue Jul 21 17:35:25 2009
@@ -96,11 +96,17 @@
                }
 
                List toDelete = messages(filter);
-               int count = toDelete.size();
+
+               Iterator it = toDelete.iterator();
+               while (it.hasNext())
+               {
+                       ((FeedbackMessage)it.next()).detach();
+               }
+
                messages.removeAll(toDelete);
 
                trimToSize();
-               return count;
+               return toDelete.size();
        }
 
        /**


Reply via email to