You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2007/09/12 11:52:52 UTC
svn commit: r574871 - in
/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket: PageMap.java
Session.java protocol/http/pagestore/PageWindowManager.java
Author: knopp
Date: Wed Sep 12 02:52:52 2007
New Revision: 574871
URL: http://svn.apache.org/viewvc?rev=574871&view=rev
Log:
WICKET-942
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/PageWindowManager.java
Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java?rev=574871&r1=574870&r2=574871&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java Wed Sep 12 02:52:52 2007
@@ -52,9 +52,9 @@
private static final long serialVersionUID = 1L;
/**
- * Gets a page map for a page map name, automatically creating the page map
- * if it does not exist. If you do not want the pagemap to be automatically
- * created, you can call Session.pageMapForName(pageMapName, false).
+ * Gets a page map for a page map name, automatically creating the page map if it does not
+ * exist. If you do not want the pagemap to be automatically created, you can call
+ * Session.pageMapForName(pageMapName, false).
*
* @param pageMapName
* The name of the page map to get
@@ -114,8 +114,7 @@
}
/**
- * Redirects to any intercept page previously specified by a call to
- * redirectToInterceptPage.
+ * Redirects to any intercept page previously specified by a call to redirectToInterceptPage.
*
* @return True if an original destination was redirected to
* @see PageMap#redirectToInterceptPage(Page)
@@ -214,11 +213,10 @@
public abstract void put(final Page page);
/**
- * Redirects browser to an intermediate page such as a sign-in page. The
- * current request's URL is saved exactly as it was requested for future use
- * by continueToOriginalDestination(); Only use this method when you plan to
- * continue to the current URL at some later time; otherwise just use
- * setResponsePage or, when you are in a constructor, redirectTo.
+ * Redirects browser to an intermediate page such as a sign-in page. The current request's URL
+ * is saved exactly as it was requested for future use by continueToOriginalDestination(); Only
+ * use this method when you plan to continue to the current URL at some later time; otherwise
+ * just use setResponsePage or, when you are in a constructor, redirectTo.
*
* @param pageClazz
* The page clazz to temporarily redirect to
@@ -231,11 +229,10 @@
}
/**
- * Redirects browser to an intermediate page such as a sign-in page. The
- * current request's URL is saved exactly as it was requested for future use
- * by continueToOriginalDestination(); Only use this method when you plan to
- * continue to the current URL at some later time; otherwise just use
- * setResponsePage or, when you are in a constructor, redirectTo.
+ * Redirects browser to an intermediate page such as a sign-in page. The current request's URL
+ * is saved exactly as it was requested for future use by continueToOriginalDestination(); Only
+ * use this method when you plan to continue to the current URL at some later time; otherwise
+ * just use setResponsePage or, when you are in a constructor, redirectTo.
*
* @param page
* The page to temporarily redirect to
@@ -285,6 +282,9 @@
{
// Remove the pagemap entry from session
removeEntry(page.getPageMapEntry());
+
+ // Make sure it doesn't get added again at the end of the request cycle
+ Session.get().untouch(page);
}
/**
@@ -348,10 +348,9 @@
private MetaDataEntry[] metaData;
/**
- * Sets the metadata for this PageMap using the given key. If the metadata
- * object is not of the correct type for the metadata key, an
- * IllegalArgumentException will be thrown. For information on creating
- * MetaDataKeys, see {@link MetaDataKey}.
+ * Sets the metadata for this PageMap using the given key. If the metadata object is not of the
+ * correct type for the metadata key, an IllegalArgumentException will be thrown. For
+ * information on creating MetaDataKeys, see {@link MetaDataKey}.
*
* @param key
* The singleton key for the metadata
Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java?rev=574871&r1=574870&r2=574871&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java Wed Sep 12 02:52:52 2007
@@ -1097,6 +1097,22 @@
}
/**
+ * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
+ * <p>
+ * This method will remove a page that was previously added via touch()
+ *
+ * @param page
+ */
+ public final void untouch(Page page)
+ {
+ List lst = (List)touchedPages.get();
+ if (lst != null)
+ {
+ lst.remove(page);
+ }
+ }
+
+ /**
* @param visitor
* The visitor to call at each Page in this PageMap.
*/
Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/PageWindowManager.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/PageWindowManager.java?rev=574871&r1=574870&r2=574871&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/PageWindowManager.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/PageWindowManager.java Wed Sep 12 02:52:52 2007
@@ -25,9 +25,9 @@
/**
* Manages positions and size of serialized pages in the pagemap file.
* <p>
- * The pages are stored inside the file in a cyclic way. Newer pages are placed
- * after older ones, until the maximum file size is reached. After that, the
- * next page is stored in the beginning of the file.
+ * The pages are stored inside the file in a cyclic way. Newer pages are placed after older ones,
+ * until the maximum file size is reached. After that, the next page is stored in the beginning of
+ * the file.
*
* @author Matej Knopp
*/
@@ -197,8 +197,8 @@
private int indexPointer = -1;
/**
- * Increments the {@link #indexPointer}. If the maximum file size has ben
- * reeched, the {@link #indexPointer} is set to 0.
+ * Increments the {@link #indexPointer}. If the maximum file size has ben reeched, the
+ * {@link #indexPointer} is set to 0.
*
* @return
*/
@@ -216,9 +216,8 @@
}
/**
- * Returns the offset in file of the window on given index. The offset is
- * counted by getting the previous page offset and adding the previous page
- * size to it.
+ * Returns the offset in file of the window on given index. The offset is counted by getting the
+ * previous page offset and adding the previous page size to it.
*
* @param index
* @return
@@ -237,9 +236,8 @@
}
/**
- * Splits the window with given index to two windows. First of those will
- * have size specified by the argument, the other one will fill up the rest
- * of the original window.
+ * Splits the window with given index to two windows. First of those will have size specified by
+ * the argument, the other one will fill up the rest of the original window.
*
* @param index
* @param size
@@ -271,8 +269,8 @@
}
/**
- * Merges the window with given index with the next window. The resulting
- * window will have size of the two windows summed together.
+ * Merges the window with given index with the next window. The resulting window will have size
+ * of the two windows summed together.
*
* @param index
*/
@@ -290,11 +288,10 @@
}
/**
- * Adjusts the window on given index to the specified size. If the new size
- * is smaller than the window size, the window will be splitted. Otherwise
- * the window will be merged with as many subsequent window as necessary. In
- * case the window is last window in the file, the size will be adjusted
- * without splitting or merging.
+ * Adjusts the window on given index to the specified size. If the new size is smaller than the
+ * window size, the window will be splitted. Otherwise the window will be merged with as many
+ * subsequent window as necessary. In case the window is last window in the file, the size will
+ * be adjusted without splitting or merging.
*
* @param index
* @param size
@@ -338,9 +335,9 @@
}
/**
- * Allocates window on given index with to size. If the index is pointing to
- * existing window, the window size will be adjusted. Otherwise a new window
- * with appropriated size will be created.
+ * Allocates window on given index with to size. If the index is pointing to existing window,
+ * the window size will be adjusted. Otherwise a new window with appropriated size will be
+ * created.
*
* @param index
* @param size
@@ -420,8 +417,7 @@
}
/**
- * @return offset in the pagemap file where the serialized page data
- * starts
+ * @return offset in the pagemap file where the serialized page data starts
*/
public int getFilePartOffset()
{
@@ -539,10 +535,17 @@
}
List indices = (List)idToWindowIndices.get(pageId);
- for (Iterator i = indices.iterator(); i.hasNext();)
+ if (indices != null)
{
- PageWindowInternal window = (PageWindowInternal)i.next();
- removePage(window.pageId, window.versionNumber, window.ajaxVersionNumber);
+ for (Iterator i = indices.iterator(); i.hasNext();)
+ {
+ int index = ((Integer)i.next()).intValue();
+ PageWindowInternal window = (PageWindowInternal)windows.get(index);
+ if (window.pageId == pageId)
+ {
+ removePage(window.pageId, window.versionNumber, window.ajaxVersionNumber);
+ }
+ }
}
}
@@ -588,8 +591,8 @@
* Creates a new PageWindowManager.
*
* @param maxSize
- * maximum page size. After this size is exceeded, the pages will
- * be saved starting at the beginning of file
+ * maximum page size. After this size is exceeded, the pages will be saved starting
+ * at the beginning of file
*/
public PageWindowManager(int maxSize)
{