Author: knopp
Date: Sun Feb 10 17:03:11 2008
New Revision: 620367

URL: http://svn.apache.org/viewvc?rev=620367&view=rev
Log:
More rigid stateless check before generating a stateless url for component

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

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java?rev=620367&r1=620366&r2=620367&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java 
(original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java 
Sun Feb 10 17:03:11 2008
@@ -154,7 +154,7 @@
  * their way with continueToOriginalDestination(). These methods could also be 
useful in
  * "interstitial" advertising or other kinds of "intercepts".
  * <p>
- * 
+ *
  * @author Jonathan Locke
  * @author Eelco Hillenius
  * @author Igor Vaynberg (ivaynberg)
@@ -190,7 +190,7 @@
 
        /**
         * Gets request cycle for calling thread.
-        * 
+        *
         * @return Request cycle for calling thread
         */
        public static RequestCycle get()
@@ -203,7 +203,7 @@
         * as the request cycle is set to current for you in the constructor. 
However, if you have a <a
         * href="http://issues.apache.org/jira/browse/WICKET-366";>very special 
need</a> to set it to
         * something else, you can expose this method.
-        * 
+        *
         * @param cycle
         *            The request cycle to set current
         */
@@ -268,7 +268,7 @@
 
        /**
         * Constructor. This instance will be set as the current one for this 
thread.
-        * 
+        *
         * @param application
         *            The application
         * @param request
@@ -291,7 +291,7 @@
 
        /**
         * Gets the application object.
-        * 
+        *
         * @return Application interface
         */
        public final Application getApplication()
@@ -303,7 +303,7 @@
         * Gets the new agent info object for this session. This method calls
         * [EMAIL PROTECTED] Session#getClientInfo()}, which may or may not 
cache the client info object and
         * typically calls [EMAIL PROTECTED] #newClientInfo()} when no client 
info object was cached.
-        * 
+        *
         * @return the agent info object based on this request
         */
        public final ClientInfo getClientInfo()
@@ -315,7 +315,7 @@
         * Get the original response the request was create with. Access may be 
necessary with the
         * response has temporarily being replaced but your components requires 
access to lets say the
         * cookie methods of a WebResponse.
-        * 
+        *
         * @return The original response object.
         */
        public final Response getOriginalResponse()
@@ -326,7 +326,7 @@
        /**
         * Any set page parameters. Typically only available when a request to 
a bookmarkable page with
         * a [EMAIL PROTECTED] Page#Page(PageParameters)} constructor was made.
-        * 
+        *
         * @return the page parameters or null
         */
        public final PageParameters getPageParameters()
@@ -336,14 +336,14 @@
 
        /**
         * Gets the processor for delegated request cycle handling.
-        * 
+        *
         * @return the processor for delegated request cycle handling
         */
        public abstract IRequestCycleProcessor getProcessor();
 
        /**
         * Gets whether the page for this request should be redirected.
-        * 
+        *
         * @return whether the page for this request should be redirected
         * @deprecated Use [EMAIL PROTECTED] #isRedirect()} instead
         */
@@ -354,7 +354,7 @@
 
        /**
         * Gets the request.
-        * 
+        *
         * @return Request object
         */
        public final Request getRequest()
@@ -364,7 +364,7 @@
 
        /**
         * Gets the current request target. May be null.
-        * 
+        *
         * @return the current request target, null if none was set yet.
         */
        public final IRequestTarget getRequestTarget()
@@ -374,7 +374,7 @@
 
        /**
         * Gets the response.
-        * 
+        *
         * @return Response object
         */
        public final Response getResponse()
@@ -385,7 +385,7 @@
        /**
         * Gets the page that is to be rendered for this request in case the 
last set request target is
         * of type [EMAIL PROTECTED] PageRequestTarget}.
-        * 
+        *
         * @return the page or null
         */
        public final Page getResponsePage()
@@ -405,7 +405,7 @@
        /**
         * Gets the page class that is to be instantiated and rendered for this 
request in case the last
         * set request target is of type [EMAIL PROTECTED] 
BookmarkablePageRequestTarget}.
-        * 
+        *
         * @return the page class or null
         */
        public final Class getResponsePageClass()
@@ -420,7 +420,7 @@
 
        /**
         * Gets the session.
-        * 
+        *
         * @return Session object
         */
        public final Session getSession()
@@ -442,7 +442,7 @@
 
        /**
         * Gets whether the page for this request should be redirected.
-        * 
+        *
         * @return whether the page for this request should be redirected
         */
        public boolean isRedirect()
@@ -454,7 +454,7 @@
         * Template method that is called when a runtime exception is thrown, 
just before the actual
         * handling of the runtime exception. This is called by
         * [EMAIL PROTECTED] 
AbstractRequestCycleProcessor#respond(RuntimeException, RequestCycle)}.
-        * 
+        *
         * @param page
         *            Any page context where the exception was thrown
         * @param e
@@ -471,7 +471,7 @@
         * <p>
         * Redirects browser to the given page. Don't use this method directly, 
but use
         * [EMAIL PROTECTED] #setResponsePage(Page)} instead.
-        * 
+        *
         * @param page
         *            The page to redirect to
         */
@@ -501,7 +501,7 @@
         * <p>
         * NOTE: This method is typically only used for testing purposes.
         * </p>
-        * 
+        *
         * @param component
         *            to be re-rendered
         */
@@ -521,7 +521,7 @@
         * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
         * <p>
         * Responds to a request with the request target.
-        * 
+        *
         * @param target
         *            request target
         */
@@ -541,7 +541,7 @@
 
        /**
         * Permit clients like testers to examine feedback messages after 
processing.
-        * 
+        *
         * @param automaticallyClearFeedbackMessages
         *            True to automatically detach request cycle at end of 
processing
         */
@@ -554,7 +554,7 @@
 
        /**
         * Sets whether the page for this request should be redirected.
-        * 
+        *
         * @param redirect
         *            True if the page for this request cycle should be 
redirected to rather than
         *            directly rendered.
@@ -575,7 +575,7 @@
 
        /**
         * Sets the request target as the current.
-        * 
+        *
         * @param requestTarget
         *            the request target to set as current
         */
@@ -616,7 +616,7 @@
 
        /**
         * Sets response.
-        * 
+        *
         * @param response
         *            The response
         * @return the original response
@@ -630,7 +630,7 @@
 
        /**
         * Attempts to return name of current page map
-        * 
+        *
         * @return
         */
        private String getCurrentPageMap()
@@ -654,7 +654,7 @@
        /**
         * Convenience method that sets page class as the response. This will 
generate a redirect to the
         * page with a bookmarkable url
-        * 
+        *
         * @param pageClass
         *            The page class to render as a response
         */
@@ -665,7 +665,7 @@
 
        /**
         * Sets the page class with optionally the page parameters as the 
render target of this request.
-        * 
+        *
         * @param pageClass
         *            The page class to render as a response
         * @param pageParameters
@@ -679,7 +679,7 @@
        /**
         * Sets the page class with optionally the page parameters and page map 
name as the render
         * target of this request.
-        * 
+        *
         * @param pageClass
         *            The page class to render as a response
         * @param pageParameters
@@ -697,7 +697,7 @@
 
        /**
         * Sets the page as the render target of this request.
-        * 
+        *
         * @param page
         *            The page to render as a response
         */
@@ -738,7 +738,7 @@
        /**
         * Returns an encoded URL that references the given request target and 
clears the
         * urlForNewWindowEncoding flag.
-        * 
+        *
         * @param requestTarget
         *            the request target to reference
         * @return a URL that references the given request target
@@ -754,7 +754,7 @@
         * Returns a bookmarkable URL that references a given page class using 
a given set of page
         * parameters. Since the URL which is returned contains all information 
necessary to instantiate
         * and render the page, it can be stored in a user's browser as a 
stable bookmark.
-        * 
+        *
         * @param pageClass
         *            Class of page
         * @param parameters
@@ -771,7 +771,7 @@
         * URL is requested from the server at a later time, the interface on 
the behavior will be
         * called. A URL returned by this method will not be stable across 
sessions and cannot be
         * bookmarked by a user.
-        * 
+        *
         * @param component
         *            The component to reference
         * @param behaviour
@@ -812,7 +812,7 @@
         * Returns a URL that references a given interface on a component. When 
the URL is requested
         * from the server at a later time, the interface will be called. A URL 
returned by this method
         * will not be stable across sessions and cannot be bookmarked by a 
user.
-        * 
+        *
         * @param component
         *            The component to reference
         * @param listener
@@ -828,7 +828,7 @@
                final Page page = component.getPage();
                final IRequestTarget target;
                if (listener != IRedirectListener.INTERFACE && 
component.isStateless() &&
-                       page.isBookmarkable())
+                       page.isBookmarkable() && page.getStatelessHint())
                {
                        PageParameters pageParameters = 
page.getPageParameters();
                        if (pageParameters == null)
@@ -893,7 +893,7 @@
 
        /**
         * Url encodes value using UTF-8
-        * 
+        *
         * @param value
         *            value to encode
         * @return encoded value
@@ -907,7 +907,7 @@
         * Returns a URL that references a given interface on a component. When 
the URL is requested
         * from the server at a later time, the interface will be called. A URL 
returned by this method
         * will not be stable across sessions and cannot be bookmarked by a 
user.
-        * 
+        *
         * @param component
         *            The component to reference
         * @param listener
@@ -924,7 +924,7 @@
         * Returns a bookmarkable URL that references a given page class using 
a given set of page
         * parameters. Since the URL which is returned contains all information 
necessary to instantiate
         * and render the page, it can be stored in a user's browser as a 
stable bookmark.
-        * 
+        *
         * @param pageMap
         *            Pagemap to use. If null is passed the default page map 
will be used
         * @param pageClass
@@ -943,7 +943,7 @@
 
        /**
         * Returns a URL that references the given request target.
-        * 
+        *
         * @param requestTarget
         *            the request target to reference
         * @return a URL that references the given request target
@@ -957,7 +957,7 @@
         * Returns a URL that references the given page. It also [EMAIL 
PROTECTED] Session#touch(Page) touches} the
         * page in the session so that it is put in the front of the page 
stack. Use this method only if
         * you plan to use it the next request.
-        * 
+        *
         * @param page
         *            The page
         * @return The url pointing to the provided page
@@ -971,7 +971,7 @@
 
        /**
         * Returns a URL that references a shared resource through the provided 
resource reference.
-        * 
+        *
         * @param resourceReference
         *            The resource reference where a url must be generated for.
         * @return The url for the shared resource
@@ -983,7 +983,7 @@
 
        /**
         * Returns a URL that references a shared resource through the provided 
resource reference.
-        * 
+        *
         * @param resourceReference
         *            The resource reference where a url must be generated for.
         * @param parameters
@@ -1183,7 +1183,7 @@
 
        /**
         * Safe version of [EMAIL PROTECTED] #getProcessor()} that throws an 
exception when the processor is null.
-        * 
+        *
         * @return the request processor
         */
        private final IRequestCycleProcessor safeGetRequestProcessor()
@@ -1373,7 +1373,7 @@
        /**
         * Possibly set the page parameters. Only set when the request is 
resolving and the parameters
         * are passed into a page.
-        * 
+        *
         * @param parameters
         *            the parameters to set
         */
@@ -1390,7 +1390,7 @@
         * will result in displaying a user facing error page. Clients can 
override this method in case
         * they want to customize logging. NOT called for
         * [EMAIL PROTECTED] PageExpiredException page expired exceptions}.
-        * 
+        *
         * @param e
         *            the runtime exception
         */
@@ -1404,7 +1404,7 @@
         * by the session and the returned object will be cached in the session 
after that call; we can
         * expect the client to stay the same for the whole session, and 
implementations of
         * [EMAIL PROTECTED] #newClientInfo()} might be relatively expensive.
-        * 
+        *
         * @return the agent info object based on this request
         */
        protected abstract ClientInfo newClientInfo();
@@ -1432,7 +1432,7 @@
         * Sets the metadata for this request cycle 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 [EMAIL PROTECTED] 
MetaDataKey}.
-        * 
+        *
         * @param key
         *            The singleton key for the metadata
         * @param object
@@ -1447,7 +1447,7 @@
 
        /**
         * Gets metadata for this request cycle using the given key.
-        * 
+        *
         * @param key
         *            The key for the data
         * @return The metadata or null if no metadata was found for the given 
key


Reply via email to