Author: ehillenius
Date: Thu Jul 19 22:50:08 2007
New Revision: 557875

URL: http://svn.apache.org/viewvc?view=rev&rev=557875
Log:
774

Modified:
    
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java

Modified: 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java?view=diff&rev=557875&r1=557874&r2=557875
==============================================================================
--- 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
 (original)
+++ 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
 Thu Jul 19 22:50:08 2007
@@ -37,6 +37,7 @@
 import org.apache.wicket.protocol.http.IgnoreAjaxRequestException;
 import org.apache.wicket.request.ClientInfo;
 import org.apache.wicket.session.ISessionStore;
+import org.apache.wicket.settings.IRequestCycleSettings;
 import org.apache.wicket.util.lang.Objects;
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.util.time.Duration;
@@ -441,15 +442,24 @@
         */
        public void cleanupFeedbackMessages()
        {
-               // If session scoped, rendered messages got indeed cleaned up, 
mark the
-               // session as dirty
-               if (feedbackMessages.clear(RENDERED_SESSION_SCOPED_MESSAGES) > 
0)
-               {
-                       dirty();
-               }
+               // remove all component feedback messages if we are either 
using one
+               // pass or render to buffer render strategy (in which case we 
can remove
+               // without further delay) or in case the redirect to render 
strategy is
+               // used, when we're doing the render request (isRedirect should 
return
+               // false in that case)
+               if 
(Application.get().getRequestCycleSettings().getRenderStrategy() != 
IRequestCycleSettings.REDIRECT_TO_RENDER ||
+                               (!RequestCycle.get().isRedirect()))
+               {
+                       // If session scoped, rendered messages got indeed 
cleaned up, mark
+                       // the session as dirty
+                       if 
(feedbackMessages.clear(RENDERED_SESSION_SCOPED_MESSAGES) > 0)
+                       {
+                               dirty();
+                       }
 
-               // clean up all component related feedback messages
-               feedbackMessages.clear(MESSAGES_FOR_COMPONENTS);
+                       // clean up all component related feedback messages
+                       feedbackMessages.clear(MESSAGES_FOR_COMPONENTS);
+               }
        }
 
        /**
@@ -700,15 +710,15 @@
                                        entry = 
(PageMapsUsedInRequestEntry)pageMapsUsedInRequest.get(pageMap);
                                        t = entry != null ? entry.thread : null;
 
-                                       if (t != null && t != 
Thread.currentThread()
-                                                       && (startTime + 
timeout.getMilliseconds()) < System.currentTimeMillis())
+                                       if (t != null && t != 
Thread.currentThread() &&
+                                                       (startTime + 
timeout.getMilliseconds()) < System.currentTimeMillis())
                                        {
                                                // if it is still not the right 
thread..
                                                // This either points to long 
running code (a report
                                                // page?) or a deadlock or such
-                                               throw new 
WicketRuntimeException("After " + timeout + " the Pagemap "
-                                                               + pageMapName + 
" is still locked by: " + t
-                                                               + ", giving up 
trying to get the page for path: " + path);
+                                               throw new 
WicketRuntimeException("After " + timeout + " the Pagemap " +
+                                                               pageMapName + " 
is still locked by: " + t +
+                                                               ", giving up 
trying to get the page for path: " + path);
                                        }
                                }
 
@@ -1353,7 +1363,7 @@
                Session.dirtyObjects.set(null);
 
                Map tempMap = new HashMap();
-               
+
                // Go through all dirty entries, replicating any dirty objects
                if (dirtyObjects != null)
                {
@@ -1389,14 +1399,14 @@
                                tempMap.put(attribute, object);
                        }
                }
-               
+
                // in case we have dirty attributes, set them to session
                if (tempMap.isEmpty() == false)
                {
-                       for (Iterator i = tempMap.entrySet().iterator(); 
i.hasNext(); )
+                       for (Iterator i = tempMap.entrySet().iterator(); 
i.hasNext();)
                        {
                                Map.Entry entry = (Map.Entry)i.next();
-                               setAttribute((String) entry.getKey(), 
entry.getValue());
+                               setAttribute((String)entry.getKey(), 
entry.getValue());
                        }
                }
 


Reply via email to