You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by eh...@apache.org on 2007/04/11 21:27:09 UTC

svn commit: r527625 - in /incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket: ./ request/target/component/ request/target/component/listener/ util/tester/

Author: ehillenius
Date: Wed Apr 11 12:27:07 2007
New Revision: 527625

URL: http://svn.apache.org/viewvc?view=rev&rev=527625
Log:
fixes:
cleanup code in updateSession should always be executed
got rid of useless 'updateSession' member of RequestCycle; let Session figure out whether it needs updating
clean up feedback messages at the end of a request
don't clean up feedback messages for unit tests (another instance where someone decided it is a good idea to write unit tests that depend on internal Wicket handling). we may have to fix those tests instead at some point

Modified:
    incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
    incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
    incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java
    incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/PageRequestTarget.java
    incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/listener/AbstractListenerInterfaceRequestTarget.java
    incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java

Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java?view=diff&rev=527625&r1=527624&r2=527625
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java Wed Apr 11 12:27:07 2007
@@ -247,9 +247,6 @@
 	/** the time that this request cycle object was created. */
 	private final long startTime = System.currentTimeMillis();
 
-	/** True if the session should be updated (for clusterf purposes). */
-	private boolean updateSession;
-
 	/** The application object. */
 	protected final Application application;
 
@@ -432,9 +429,9 @@
 	/**
 	 * Template method that is called when a runtime exception is thrown, just
 	 * before the actual handling of the runtime exception. This is called by
-	 * {@link org.apache.wicket.request.compound.DefaultExceptionResponseStrategy}, hence
-	 * if that strategy is replaced by another one, there is no guarantee this
-	 * method is called.
+	 * {@link org.apache.wicket.request.compound.DefaultExceptionResponseStrategy},
+	 * hence if that strategy is replaced by another one, there is no guarantee
+	 * this method is called.
 	 * 
 	 * @param page
 	 *            Any page context where the exception was thrown
@@ -637,17 +634,6 @@
 	}
 
 	/**
-	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT.
-	 * 
-	 * @param updateCluster
-	 *            The updateCluster to set.
-	 */
-	public void setUpdateSession(boolean updateCluster)
-	{
-		this.updateSession = updateCluster;
-	}
-
-	/**
 	 * @see java.lang.Object#toString()
 	 */
 	public String toString()
@@ -859,28 +845,30 @@
 			}
 		}
 
-		// remove any rendered feedback messages from the session
+		// remove any rendered and otherwise obsolute feedback messages from the
+		// session
 		try
 		{
 			session.cleanupRenderedFeedbackMessages();
+			Page page = getResponsePage();
+			if (page != null)
+			{
+				session.cleanupFeedbackMessages(page);
+			}
 		}
 		catch (RuntimeException re)
 		{
 			log.error("there was an error cleaning up the feedback messages", re);
 		}
 
-		if (updateSession)
+		// At the end of our response, let the session do some book keeping
+		try
 		{
-			// At the end of our response, we need to set any session
-			// attributes that might be required to update the cluster
-			try
-			{
-				session.update();
-			}
-			catch (RuntimeException re)
-			{
-				log.error("there was an error updating the session " + session + ".", re);
-			}
+			session.update();
+		}
+		catch (RuntimeException re)
+		{
+			log.error("there was an error updating the session " + session + ".", re);
 		}
 
 		try

Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java?view=diff&rev=527625&r1=527624&r2=527625
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java Wed Apr 11 12:27:07 2007
@@ -354,7 +354,6 @@
 					temporarySessionAttributes = null;
 				}
 
-				RequestCycle.get().setUpdateSession(true);
 			}
 		}
 		else
@@ -1162,7 +1161,8 @@
 	}
 
 	/**
-	 * Updates the session, e.g. for replication purposes.
+	 * Updates the session at the end of a request, e.g. for replication
+	 * purposes.
 	 */
 	protected void update()
 	{
@@ -1309,14 +1309,18 @@
 		Session.touchedPages.set(null);
 		if (touchedPages != null && touchedPages.size() > 0)
 		{
-			log.warn("There where still touched pages in the request detach phase, session update wasn't called: " + touchedPages);
+			log
+					.warn("There where still touched pages in the request detach phase, session update wasn't called: "
+							+ touchedPages);
 		}
 
 		List dirtyObjects = (List)Session.dirtyObjects.get();
 		Session.dirtyObjects.set(null);
 		if (dirtyObjects != null && dirtyObjects.size() > 0)
 		{
-			log.warn("There where still dirty objects in the request detach phase, session update wasn't called: " + dirtyObjects);
+			log
+					.warn("There where still dirty objects in the request detach phase, session update wasn't called: "
+							+ dirtyObjects);
 		}
 
 		if (pageMapsUsedInRequest != null)

Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java?view=diff&rev=527625&r1=527624&r2=527625
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java Wed Apr 11 12:27:07 2007
@@ -200,7 +200,6 @@
 	{
 		if (!requestCycle.getRedirect())
 		{
-			requestCycle.setUpdateSession(true);
 			page = getPage(requestCycle);
 		}
 	}

Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/PageRequestTarget.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/PageRequestTarget.java?view=diff&rev=527625&r1=527624&r2=527625
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/PageRequestTarget.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/PageRequestTarget.java Wed Apr 11 12:27:07 2007
@@ -60,8 +60,6 @@
 		}
 		else
 		{
-			requestCycle.setUpdateSession(true);
-
 			// Let page render itself
 			page.renderPage();
 		}

Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/listener/AbstractListenerInterfaceRequestTarget.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/listener/AbstractListenerInterfaceRequestTarget.java?view=diff&rev=527625&r1=527624&r2=527625
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/listener/AbstractListenerInterfaceRequestTarget.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/listener/AbstractListenerInterfaceRequestTarget.java Wed Apr 11 12:27:07 2007
@@ -21,7 +21,6 @@
 import org.apache.wicket.Page;
 import org.apache.wicket.RequestCycle;
 import org.apache.wicket.RequestListenerInterface;
-import org.apache.wicket.Session;
 import org.apache.wicket.request.RequestParameters;
 import org.apache.wicket.request.target.IEventProcessor;
 import org.apache.wicket.request.target.component.PageRequestTarget;
@@ -185,13 +184,6 @@
 	 */
 	protected void onProcessEvents(final RequestCycle requestCycle)
 	{
-		// Assume cluster needs to be updated now, unless listener
-		// invocation changes this
-		requestCycle.setUpdateSession(true);
-
-		// Clear all feedback messages if it isn't a redirect
-		Session.get().cleanupFeedbackMessages(getPage());
-
 		getPage().startComponentRender(getTarget());
 
 		final Application application = requestCycle.getApplication();

Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java?view=diff&rev=527625&r1=527624&r2=527625
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java Wed Apr 11 12:27:07 2007
@@ -29,6 +29,10 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.wicket.Component;
+import org.apache.wicket.Page;
+import org.apache.wicket.Request;
+import org.apache.wicket.Response;
+import org.apache.wicket.Session;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.feedback.FeedbackMessage;
 import org.apache.wicket.markup.html.basic.Label;
@@ -37,6 +41,7 @@
 import org.apache.wicket.protocol.http.UnitTestSettings;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.protocol.http.WebResponse;
+import org.apache.wicket.protocol.http.WebSession;
 import org.apache.wicket.util.diff.DiffUtil;
 
 
@@ -163,6 +168,20 @@
 		protected WebResponse newWebResponse(final HttpServletResponse servletResponse)
 		{
 			return new WebResponse(servletResponse);
+		}
+
+		public Session newSession(Request request, Response response)
+		{
+			return new WebSession(this, request)
+			{
+				private static final long serialVersionUID = 1L;
+
+				public void cleanupFeedbackMessages(Page page)
+				{
+					// don't clean up so that we'll have them available for
+					// testing
+				}
+			};
 		}
 	}