it seems to me that as soon as you change the page the browser dumps the old _javascript_, in my case looks like it also dumps any running ajax requests. i tried both ie and ffox.
i added a self upating counter that keeps updating every 1 sec and a link to go to another page, havent been able to catch the right timing i guess
anyways, i am attaching the patch, let me know if it works for you and we can take it from here
-Igor
On 5/23/06, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
i got up extra early to take care of this, so by the end of the day
-igorOn 5/23/06, Ari Suutari < [EMAIL PROTECTED]> wrote:This is so great !
TIA,
Ari S.
----- Original Message -----
From: "Johan Compagner" < [EMAIL PROTECTED]>
To: < [email protected]>
Sent: Tuesday, May 23, 2006 11:37 AM
Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request
We will fix it in the 1.2 branch.
I am currently a bit full of work for at least 2 days. So i can only look at
it by the end of this week.
johan
On 5/23/06, Ari Suutari <[EMAIL PROTECTED] > wrote:
>
> Hi,
>
> >best thing todo currently is to have that -1 check in the pagemap and
> make
> >your own version of wicket 1.2
>
> We already decided to put my modified version to production and
> if there are no side effects from my change we can keep it for some
> time.
>
> >in trunk (2.0) this is already fixed in the default setting because we
> >refactored the pagemap
> >and have now a different default pagemap and httpsessionstore.
>
> You mean that if I would use 2.0 from trunk the problem would go
> away ? If so, would it be possible to back-port the new pagemap
> to 1.2 branch ? Not as default, but something that I could turn on
> from
> application settings ?
>
> Another point: when 1.2 is released, someone else might also
> hit this problem so it might be necessary to implement some kind
> of fix anyway (at least for us, some pages were almost unusable
> because of this as other pages worked quite ok - it seems that YMMV).
>
> Ari S.
>
> On 5/23/06, Ari Suutari < [EMAIL PROTECTED] > wrote:
> >
> > Hi,
> >
> > It is very important for us to get this fixed, preferably for 1.2.
> > If any wicket committer is willing to help us, we will pay
> > for the work (please contact me directly by e-mail for this).
> >
> > Ari S.
> >
> > ----- Original Message -----
> > From: "Igor Vaynberg" < [EMAIL PROTECTED]>
> > To: < [email protected]>
> > Sent: Monday, May 22, 2006 6:21 PM
> > Subject: Re: [Wicket-user] pagemap problem with late arriving ajax
> request
> >
> >
> > problem is, not every ajax behavior uses version -1. i guess we need to
> > have
> > the ability to tag a request as process-only-if-page-is-active
> >
> > -Igor
> >
> >
> > On 5/22/06, Ari Suutari <[EMAIL PROTECTED] > wrote:
> > >
> > > If I modify the PageMap.java like this:
> > >
> > > final Page get(final int id, int versionNumber)
> > > {
> > > final IPageMapEntry entry =
> > > (IPageMapEntry)session.getAttribute(attributeForId(id));
> > > if (entry != null)
> > > {
> > > if (versionNumber == -1) {
> > > Access a = peekAccess();
> > > if (a.getId() != id)
> > > return null;
> > > }
> > >
> > > So this kludgery piece of the code checks that if request is coming
> from
> > > ajax
> > > (ie. versionNumber == -1) and the topmost page is not the one being
> > > requested
> > > -> return null.
> > >
> > > After adding this it looks like I cannot reproduce the problem any
> more.
> > >
> > > Ari S.
> > >
> > > ----- Original Message -----
> > > From: "Johan Compagner" < [EMAIL PROTECTED]>
> > > To: < [email protected]>
> > > Sent: Monday, May 22, 2006 2:37 PM
> > > Subject: Re: [Wicket-user] pagemap problem with late arriving ajax
> > request
> > >
> > >
> > > So what request comes first?
> > > The ajax request should always do -1 (so latest release)
> > > So if the request from the new page did come first then the ajax
> request
> > > shouild work on that new page.
> > > If the ajax request did come a bit earlier then there shouldn't be a
> > > problem
> > > at all because
> > > the last reqest will be the normal link click for a new page.
> > >
> > > johan
> > >
> > >
> > > On 5/22/06, Ari Suutari < [EMAIL PROTECTED]> wrote:
> > > >
> > > > I cannot figure out any workaround myself.
> UnversionedBehaviorListener
> > > > seems to use -1 as
> > > > page version number, would it make any sense to try to alter PageMap
> > so
> > > > that
> > > > if version is -1 the page stack is not cleared ?
> > > >
> > > > Ari S.
> > > >
> > > > ----- Original Message -----
> > > > From: "Matej Knopp" <[EMAIL PROTECTED]>
> > > > To: < [email protected] >
> > > > Sent: Monday, May 22, 2006 11:44 AM
> > > > Subject: Re: [Wicket-user] pagemap problem with late arriving ajax
> > > request
> > > >
> > > >
> > > > >I guess this is because in 1.2 pagemap behaves like stack. Johan?
> > > > >
> > > > > -Matej
> > > > >
> > > > > Ari Suutari wrote:
> > > > >> Hi,
> > > > >>
> > > > >> I'm having a problem with wicket's ajax stuff where an ajax
> request
> > > > >> fired by previous page hits the web server after user has clicked
> a
> > > > link
> > > > >> which has already transferred him to next page.
> > > > >>
> > > > >> This might be a problem in my application, but I'm seeking for
> > ideas
> > > > >> to solve this.
> > > > >>
> > > > >>> From web server's access log:
> > > > >>
> > > > >> First there are some normal ajax requests arriving from browser:
> > > > >>
> > > > >> 192.168.5.102 - - [22/May/2006:07:46:43 +0000] "GET
> > > > >>
> > > >
> > >
> >
> /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListener&wicket:behaviorId=0&random=
> > >
> > > > 0.35930677427195573
> > > > >> HTTP/1.1" 200 824
> > > > >> 192.168.5.102 - - [22/May/2006:07:46:43 +0000] "GET
> > > > >>
> > > >
> > >
> >
> /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListener&wicket:behaviorId=0&random=
> > >
> > > > 0.11935459751117722
> > > > >> HTTP/1.1" 200 824
> > > > >>
> > > > >> Here, user clicks a link which transfers application to help
> page,
> > it
> > > > is displayed ok.
> > > > >>
> > > > >> 192.168.5.102 - - [22/May/2006:07:46:43 +0000] "GET
> > > >
> /wicket?wicket:interface=:0:uiPanel:topPanel:showHelp:34:ILinkListener
> > > > >> HTTP/1.1" 302 -
> > > > >> 192.168.5.102 - - [22/May/2006:07:46:43 +0000] "GET
> > > > /wicket?wicket:interface=:34:: HTTP/1.1" 200 3191
> > > > >>
> > > > >> Now, for some reason a ajax request arrives from previous page,
> > which
> > >
> > > > causes to pagemap stack to be
> > > > >> popped so the page user's browser is on is removed from page map.
> > > > >>
> > > > >> 192.168.5.102 - - [22/May/2006:07:46:43 +0000] "GET
> > > > >>
> > > >
> > >
> >
> /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListener&wicket:behaviorId=0&random=
> > > > 0.2873453536331084
> > > > >> HTTP/1.1" 200 824
> > > > >>
> > > > >> Now, user presses a link on the page but gets 'page expired'
> > message,
> > > > because the page
> > > > >> is no longer in pagemap.
> > > > >>
> > > > >> 192.168.5.102 - - [22/May/2006:07:46:44 +0000] "GET
> > > > /wicket?wicket:interface=:34:back::ILinkListener HTTP/1.1" 404 651
> > > > >>
> > > > >> Any ideas what I could do to fix this ? The ajax requests are
> fired
> > > > asynchronously by a system which is very
> > > > >> similar to AjaxSelfUpdatingTimerBehaviour stuff.
> > > > >>
> > > > >> Ari S.
> > > > >>
> > > > >>
> > > > >>
> > > > >> -------------------------------------------------------
> > > > >> Using Tomcat but need to do more? Need to support web services,
> > > > security?
> > > > >> Get stuff done quickly with pre-integrated technology to make
> your
> > > job
> > > > easier
> > > > >> Download IBM WebSphere Application Server v.1.0.1 based on Apache
> > > > Geronimo
> > > > >>
> > > >
> > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> > >
> > > > >> _______________________________________________
> > > > >> Wicket-user mailing list
> > > > >> [email protected]
> > > > >> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > > >>
> > > > >
> > > > >
> > > > >
> > > > > -------------------------------------------------------
> > > > > Using Tomcat but need to do more? Need to support web services,
> > > > security?
> > > > > Get stuff done quickly with pre-integrated technology to make your
> > job
> > > > easier
> > > > > Download IBM WebSphere Application Server v.1.0.1 based on Apache
> > > > Geronimo
> > > > >
> > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> > >
> > > > > _______________________________________________
> > > > > Wicket-user mailing list
> > > > > [email protected]
> > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > > >
> > > >
> > > >
> > > >
> > > > -------------------------------------------------------
> > > > Using Tomcat but need to do more? Need to support web services,
> > > security?
> > > > Get stuff done quickly with pre-integrated technology to make your
> job
> > > > easier
> > > > Download IBM WebSphere Application Server v.1.0.1 based on Apache
> > > Geronimo
> > > >
> > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> > > > _______________________________________________
> > > > Wicket-user mailing list
> > > > [email protected]
> > > > https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > >
> > >
> > >
> > >
> > > -------------------------------------------------------
> > > Using Tomcat but need to do more? Need to support web services,
> > security?
> > > Get stuff done quickly with pre-integrated technology to make your job
> > > easier
> > > Download IBM WebSphere Application Server v.1.0.1 based on Apache
> > Geronimo
> > >
> > >
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> > > _______________________________________________
> > > Wicket-user mailing list
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/wicket-user
> > >
> >
> >
> >
> > -------------------------------------------------------
> > Using Tomcat but need to do more? Need to support web services,
> security?
> > Get stuff done quickly with pre-integrated technology to make your job
> > easier
> > Download IBM WebSphere Application Server v.1.0.1 based on Apache
> Geronimo
> > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> > _______________________________________________
> > Wicket-user mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/wicket-user
> >
>
>
>
> -------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Wicket-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user
Index: D:/ws/wicket_1_2/src/java/wicket/ajax/AbstractAjaxTimerBehavior.java
===================================================================
--- D:/ws/wicket_1_2/src/java/wicket/ajax/AbstractAjaxTimerBehavior.java
(revision 5776)
+++ D:/ws/wicket_1_2/src/java/wicket/ajax/AbstractAjaxTimerBehavior.java
(working copy)
@@ -80,7 +80,7 @@
*/
protected final String getJsTimeoutCall(final Duration updateInterval)
{
- return "setTimeout(function() { " + getCallbackScript(false) +
" }, "
+ return "setTimeout(function() { " + getCallbackScript(false,
true) + " }, "
+ updateInterval.getMilliseconds() + ");";
}
Index: D:/ws/wicket_1_2/src/java/wicket/ajax/AbstractDefaultAjaxBehavior.java
===================================================================
--- D:/ws/wicket_1_2/src/java/wicket/ajax/AbstractDefaultAjaxBehavior.java
(revision 5776)
+++ D:/ws/wicket_1_2/src/java/wicket/ajax/AbstractDefaultAjaxBehavior.java
(working copy)
@@ -110,7 +110,7 @@
*/
protected CharSequence getCallbackScript()
{
- return getCallbackScript(true);
+ return getCallbackScript(true, false);
}
/**
@@ -120,11 +120,15 @@
* if true the url will be encoded to execute on the current
page
* version, otherwise url will be encoded to execute on the
* latest page version
+ * @param onlyTargetActivePage
+ * if true the callback to this behavior will be ignore if
the
+ * page is not the last one the user accessed
+ *
*/
- protected CharSequence getCallbackScript(boolean recordPageVersion)
+ protected CharSequence getCallbackScript(boolean recordPageVersion,
boolean onlyTargetActivePage)
{
- return getCallbackScript("wicketAjaxGet('" +
getCallbackUrl(recordPageVersion) + "'", null,
- null);
+ return getCallbackScript("wicketAjaxGet('"
+ + getCallbackUrl(recordPageVersion,
onlyTargetActivePage) + "'", null, null);
}
/**
@@ -281,7 +285,8 @@
throw new IllegalArgumentException("throttleDelay
cannot be null");
}
- return new AppendingStringBuffer("wicketThrottler.throttle(
'").append(throttleId).append("', ").append(
- throttleDelay.getMilliseconds()).append(",
function() { ").append(script).append("});");
+ return new AppendingStringBuffer("wicketThrottler.throttle(
'").append(throttleId).append(
+ "',
").append(throttleDelay.getMilliseconds()).append(", function() { ").append(
+ script).append("});");
}
}
Index: D:/ws/wicket_1_2/src/java/wicket/behavior/AbstractAjaxBehavior.java
===================================================================
--- D:/ws/wicket_1_2/src/java/wicket/behavior/AbstractAjaxBehavior.java
(revision 5776)
+++ D:/ws/wicket_1_2/src/java/wicket/behavior/AbstractAjaxBehavior.java
(working copy)
@@ -1,6 +1,7 @@
/*
- * $Id$
- * $Revision$ $Date$
+ * $Id: AbstractAjaxBehavior.java 5440 2006-04-17 12:07:07 -0700 (Mon, 17 Apr
+ * 2006) jdonnerstag $ $Revision$ $Date: 2006-04-17 12:07:07 -0700 (Mon,
+ * 17 Apr 2006) $
*
*
==============================================================================
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
@@ -92,7 +93,7 @@
*/
public CharSequence getCallbackUrl()
{
- return getCallbackUrl(true);
+ return getCallbackUrl(true, false);
}
/**
@@ -102,10 +103,14 @@
* if true the url will be encoded to execute on the current
page
* version, otherwise url will be encoded to execute on the
* latest page version
+ * @param onlyTargetActivePage
+ * if true the callback to this behavior will be ignore if
the
+ * page is not the last one the user accessed
*
* @return the url that references this handler
*/
- public final CharSequence getCallbackUrl(final boolean
recordPageVersion)
+ public final CharSequence getCallbackUrl(final boolean
recordPageVersion,
+ final boolean onlyTargetActivePage)
{
if (getComponent() == null)
{
@@ -136,11 +141,21 @@
rli = IUnversionedBehaviorListener.INTERFACE;
}
- // TODO Post 1.2: URL encoding strategies are not applied
- // And you can not simply call getResponse().encodeUrl() as the
URL might
+ // TODO Post 1.2: URL encoding strategies are not applied
+ // And you can not simply call getResponse().encodeUrl() as the
URL
+ // might
// already be encoded.
- return new
AppendingStringBuffer(getComponent().urlFor(rli)).append('&').append(
-
WebRequestCodingStrategy.BEHAVIOR_ID_PARAMETER_NAME).append('=').append(index);
+ AppendingStringBuffer url = new
AppendingStringBuffer(getComponent().urlFor(rli)).append(
+
'&').append(WebRequestCodingStrategy.BEHAVIOR_ID_PARAMETER_NAME).append('=')
+ .append(index);
+
+ if (onlyTargetActivePage)
+ {
+
url.append("&").append(WebRequestCodingStrategy.IGNORE_IF_NOT_ACTIVE_PARAMETER_NAME)
+ .append("=true");
+ }
+
+ return url;
}
/**
Index:
D:/ws/wicket_1_2/src/java/wicket/protocol/http/request/WebRequestCodingStrategy.java
===================================================================
---
D:/ws/wicket_1_2/src/java/wicket/protocol/http/request/WebRequestCodingStrategy.java
(revision 5776)
+++
D:/ws/wicket_1_2/src/java/wicket/protocol/http/request/WebRequestCodingStrategy.java
(working copy)
@@ -77,6 +77,14 @@
/** Pagemap parameter constant */
public static final String PAGEMAP = NAME_SPACE + "pageMapName";
+ /**
+ * Parameter name that tells decode to ignore this request if the
+ * page+version encoded in the url is not on top of the stack. The
value of
+ * this parameter is not important, it simply has to be present to
enable
+ * the behavior
+ */
+ public static final String IGNORE_IF_NOT_ACTIVE_PARAMETER_NAME =
NAME_SPACE + "ignoreIfNotActive";
+
/** Comparator implementation that sorts longest strings first */
private static final Comparator lengthComparator = new Comparator()
{
@@ -148,6 +156,10 @@
addBookmarkablePageParameters(request, parameters);
addResourceParameters(request, parameters);
parameters.setBehaviorId(request.getParameter(BEHAVIOR_ID_PARAMETER_NAME));
+ if
(request.getParameter(IGNORE_IF_NOT_ACTIVE_PARAMETER_NAME)!=null) {
+ parameters.setOnlyProcessIfPathActive(true);
+ }
+
Map map = request.getParameterMap();
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext())
@@ -345,7 +357,8 @@
final String[] components =
Strings.split(requestString, Component.PATH_SEPARATOR);
if (components.length != 2)
{
- throw new WicketRuntimeException("Invalid
bookmarkablePage parameter: " + requestString + ", expected:
'pageMapName:pageClassName'");
+ throw new WicketRuntimeException("Invalid
bookmarkablePage parameter: "
+ + requestString + ", expected:
'pageMapName:pageClassName'");
}
// Extract any pagemap name
@@ -756,7 +769,8 @@
String path = request.getServletPath();
if (path != null && !path.equals(""))
{
- if(!buffer.endsWith("/") &&
!path.startsWith("/")) buffer.append("/");
+ if (!buffer.endsWith("/") &&
!path.startsWith("/"))
+ buffer.append("/");
buffer.append(path);
}
}
Index: D:/ws/wicket_1_2/src/java/wicket/request/RequestParameters.java
===================================================================
--- D:/ws/wicket_1_2/src/java/wicket/request/RequestParameters.java
(revision 5776)
+++ D:/ws/wicket_1_2/src/java/wicket/request/RequestParameters.java
(working copy)
@@ -1,6 +1,7 @@
/*
- * $Id$
- * $Revision$ $Date$
+ * $Id: RequestParameters.java 4507 2006-02-16 14:51:20 -0800 (Thu, 16 Feb
2006)
+ * jonathanlocke $ $Revision$ $Date: 2006-02-16 14:51:20 -0800 (Thu, 16
+ * Feb 2006) $
*
*
==============================================================================
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
@@ -53,6 +54,12 @@
/** any version number; 0 for no version. */
private int versionNumber;
+ /**
+ * tells wicket this request should only be processed if the page +
version
+ * specified are pointing to the last page the user accessed
+ */
+ private boolean onlyProcessIfPathActive = false;
+
/** any callable interface name (e.g. [EMAIL PROTECTED]
ILinkListener}). */
private String interfaceName;
@@ -303,6 +310,32 @@
this.behaviorId = behaviorId;
}
+
+ /**
+ * Gets the only-process-if-path-active flag
+ *
+ * @see #onlyProcessIfPathActive
+ *
+ * @return the only-process-if-path-active flag
+ */
+ public boolean isOnlyProcessIfPathActive()
+ {
+ return onlyProcessIfPathActive;
+ }
+
+ /**
+ * Sets the only-process-if-path-active flag
+ *
+ * @param onlyProcessIfPathActive
+ *
+ * @see #onlyProcessIfPathActive
+ *
+ */
+ public void setOnlyProcessIfPathActive(boolean onlyProcessIfPathActive)
+ {
+ this.onlyProcessIfPathActive = onlyProcessIfPathActive;
+ }
+
/**
* @see java.lang.Object#toString()
*/
@@ -330,6 +363,8 @@
{
b.append(" resourceKey=").append(getResourceKey());
}
+ b.append("
onlyProcessIfPathActive=").append(isOnlyProcessIfPathActive());
+
b.append("]");
return b.toString();
}
Index:
D:/ws/wicket_1_2/src/java/wicket/request/compound/DefaultRequestTargetResolverStrategy.java
===================================================================
---
D:/ws/wicket_1_2/src/java/wicket/request/compound/DefaultRequestTargetResolverStrategy.java
(revision 5776)
+++
D:/ws/wicket_1_2/src/java/wicket/request/compound/DefaultRequestTargetResolverStrategy.java
(working copy)
@@ -28,6 +28,7 @@
import wicket.IRedirectListener;
import wicket.IRequestTarget;
import wicket.Page;
+import wicket.PageMap;
import wicket.PageParameters;
import wicket.RequestCycle;
import wicket.RequestListenerInterface;
@@ -33,6 +34,7 @@
import wicket.RequestListenerInterface;
import wicket.Session;
import wicket.WicketRuntimeException;
+import wicket.PageMap.Access;
import wicket.authorization.UnauthorizedActionException;
import wicket.markup.MarkupException;
import wicket.markup.html.INewBrowserWindowListener;
@@ -40,6 +42,7 @@
import wicket.protocol.http.request.WebExternalResourceRequestTarget;
import wicket.request.IRequestCodingStrategy;
import wicket.request.RequestParameters;
+import wicket.request.target.basic.EmptyRequestTarget;
import wicket.request.target.component.BookmarkablePageRequestTarget;
import wicket.request.target.component.ExpiredPageClassRequestTarget;
import wicket.request.target.component.PageRequestTarget;
@@ -89,7 +92,62 @@
final String path = requestParameters.getPath();
if (requestParameters.getComponentPath() != null)
{
- return resolveRenderedPage(requestCycle,
requestParameters);
+ // we need to check if this request has been flagged as
+ // process-only-if-path-is-active and if so make sure
this condition
+ // is met
+
+ // marks whether or not we will be processing this
request
+ boolean processRequest = true;
+
+ if (requestParameters.isOnlyProcessIfPathActive())
+ {
+ // this request has indeed been flagged as
+ // process-only-if-path-is-active
+
+ Session session = Session.get();
+ PageMap pageMap =
session.pageMapForName(requestParameters.getPageMapName(), false);
+ if (pageMap == null)
+ {
+ // requested pagemap no longer exists -
ignore this request
+ processRequest = false;
+ }
+ else
+ {
+ if (pageMap.getAccessStack().size() > 0)
+ {
+ final Access access =
(Access)pageMap.getAccessStack().peek();
+
+ final int pageId =
Integer.parseInt(Strings.firstPathComponent(
+
requestParameters.getComponentPath(), Component.PATH_SEPARATOR));
+
+ if (pageId != access.getId())
+ {
+ // the page is no
longer the active page
+ // - ignore this request
+ processRequest = false;
+ }
+ else
+ {
+ final int version =
requestParameters.getVersionNumber();
+ if (version !=
Page.LATEST_VERSION && version != access.getVersion())
+ {
+ // version is
no longer the active version -
+ // ignore this
request
+ processRequest
= false;
+ }
+ }
+ }
+ }
+ }
+
+ if (processRequest)
+ {
+ return resolveRenderedPage(requestCycle,
requestParameters);
+ }
+ else
+ {
+ return EmptyRequestTarget.getInstance();
+ }
}
// see whether this request points to a bookmarkable page
else if (requestParameters.getBookmarkablePageClass() != null)
