Thank you martin.

let me upgrade to wicket 7.x. it may resolve.

On Mon, Sep 12, 2016 at 11:33 AM, Martin Grigorov <mgrigo...@apache.org>
wrote:

> On Mon, Sep 12, 2016 at 5:26 PM, durairaj t <durairaj....@gmail.com>
> wrote:
>
> > Hi Martin,
> >
> > DefaultPageStore#storePage(SerializedPage page) is holding only 40 pages
> > in
> > cache and removes others. It seems pageSotre appending every new versions
> > and deleting old one. Like, cache.remove(0).
> >
>
> You seem to use pretty old version of Wicket.
> This store has been disabled 2.5 years ago (https://issues.apache.
> org/jira/browse/WICKET-5554).
>
> In YourApplication#init() do: getStoreSettings.setInmemoryCacheSize(0);
>
>
> >
> > I'm keeping my page in session and trying to fetch from session . But
> > wicket looking into the PageStore not in the session.
> >
> > why it is not checking in session?
> >
> > Can I directly store a page by calling the
> > DefaultPageStore#storePage(SerializedPage page) in a page to refresh the
> > page version in pageStore?
> >
> > Ex: DefaultPageStore#storePage(this)
> >
> >
> > Following code works for me, but I don't know whether this is the right
> > solution for the issue.
> >
> > IDataStore dataStore=new HttpSessionDataStore(pageManagerContext,new
> > PageNumberEvictionStrategy(500));
> >
> > Any Help?
> >
> >
> > On Thu, Sep 8, 2016 at 3:12 PM, Martin Grigorov <mgrigo...@apache.org>
> > wrote:
> >
> > > Hi,
> > >
> > >
> > > On Thu, Sep 8, 2016 at 8:38 PM, durairaj t <durairaj....@gmail.com>
> > wrote:
> > >
> > > > I have added the below code in my WebApp.java to keep the pages in
> > > session
> > > > alive. Is it correct? Any help?
> > > >
> > > > setPageManagerProvider(new DefaultPageManagerProvider(this)
> > > >   {
> > > >       protected IDataStore newDataStore()
> > > >       {
> > > >       //new HttpSessionDataStore(getPageManagerContext(), new
> > > > MemorySizeEvictionStrategy (null ) )
> > >
> > >
> > > According to the code "MemorySizeEvictionStrategy(null)" should throw
> > > IllegalArgumentException. The size (maxBytes) could not be null!
> > >
> > >
> > > > ;
> > > >           return  new HttpSessionDataStore(getPageManagerContext(),
> > new
> > > > PageNumberEvictionStrategy(1000000000));
> > > >
> > >
> > > This is very big number!
> > > You could easily run your web server out of memory!
> > > Consider more sane value!
> > >
> > >
> > > The reasons for PageExpiredException are listed in its javadoc.
> > > I'd bet the first one is the real reason - the page has never been
> stored
> > > due to some problem, e.g. NotSerializableException.
> > > Put a breakpoint
> > > at org.apache.wicket.pageStore.memory.HttpSessionDataStore#storeData()
> > and
> > > make sure the page is being stored.
> > > Ajax requests *override* existing entries in the page store. So the
> store
> > > size doesn't change much.
> > >
> > >
> > > >       }
> > > >   });
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > On Thu, Sep 8, 2016 at 9:20 AM, durairaj t <durairaj....@gmail.com>
> > > wrote:
> > > >
> > > > > Hi Martin,
> > > > >
> > > > > I got the exact error  message while debugging in eclipse;
> > > > >
> > > > > *Error*:  " org.apache.wicket.protocol.http.PageExpiredException:
> > Page
> > > > > with id '3' has expired."
> > > > >
> > > > >
> > > > > I tried following code snippet in the page constructor. It seems
> the
> > > > > following code updating the page until I'm moving out from the
> > current
> > > > > (search modal window) page.
> > > > >
> > > > > *Solun 1:*
> > > > >
> > > > > moduleForm.add(new AjaxSelfUpdatingTimerBehavior(
> > Duration.seconds(1)){
> > > > >  //one second
> > > > >
> > > > > private static final long serialVersionUID = 1L;
> > > > > @Override
> > > > > protected void onPostProcessTarget(AjaxRequestTarget target) {
> > > > > // TODO Auto-generated method stub
> > > > > super.onPostProcessTarget(target);
> > > > > System.out.println(" i'm alive....");
> > > > > }
> > > > > });
> > > > >
> > > > > *Solun 2:*
> > > > > moduleForm.add(new AbstractAjaxTimerBehavior(Duration.seconds(1))
> {
> > > > >  //one second
> > > > > protected void onTimer(final AjaxRequestTarget target) {
> > > > > System.out.println(" i'm alive....");
> > > > > }
> > > > > });
> > > > >
> > > > >
> > > > > How to extend the page life time?
> > > > >
> > > > >
> > > > > On Wed, Aug 31, 2016 at 3:29 PM, durairaj t <
> durairaj....@gmail.com>
> > > > > wrote:
> > > > >
> > > > >> Thank you martin! Let me try this.
> > > > >>
> > > > >>
> > > > >>
> > > > >>
> > > > >> On Wed, Aug 31, 2016 at 2:27 PM, Martin Grigorov <
> > > mgrigo...@apache.org>
> > > > >> wrote:
> > > > >>
> > > > >>> Hi,
> > > > >>>
> > > > >>> Put a breakpoint at RequestCycle#setResponsePage(Class,
> > > > PageParameters)
> > > > >>> and
> > > > >>> see who and why is calling it. This will tell you the reason.
> > > > >>> If this doesn't help then put breakpoints in
> > > > >>> RestartReponseAtInterceptPageException constructors.
> > > > >>>
> > > > >>> Martin Grigorov
> > > > >>> Wicket Training and Consulting
> > > > >>> https://twitter.com/mtgrigorov
> > > > >>>
> > > > >>> On Wed, Aug 31, 2016 at 5:06 PM, durairaj t <
> > durairaj....@gmail.com>
> > > > >>> wrote:
> > > > >>>
> > > > >>> > I got the same issue in Wicket 1.5, so I migrated it to 6.23,
> but
> > > > >>> still it
> > > > >>> > is happening.
> > > > >>> >
> > > > >>> > Moreover, I used "*Session.get().replaceSession()**;*" just to
> > > > >>> reproduce
> > > > >>> > the issue. it will not be in the actual application code.
> > > > >>> >
> > > > >>> > and I just used "* WebSession.get().clear(); *,
> > > > >>> *Session.get().clear(); , *
> > > > >>> > *WebSession.get().**replaceSession()*" to reproduce the issue.
> > > they
> > > > >>> are
> > > > >>> > also loading login page as it is happening in the application.
> > > > >>> >
> > > > >>> > I don't know the exact code or component or reason for this
> > issue.
> > > > >>> >
> > > > >>> >
> > > > >>> > On Wed, Aug 31, 2016 at 10:51 AM, Francois Meillet <
> > > > >>> > francois.meil...@gmail.com> wrote:
> > > > >>> >
> > > > >>> > > Javadoc from Session # replaceSession() says : Call() upon
> > login
> > > to
> > > > >>> > > protect against session fixation.
> > > > >>> > >
> > > > >>> > > Until Wicket version 6.21 the destroy method did not set the
> > > > session
> > > > >>> id
> > > > >>> > to
> > > > >>> > > null.
> > > > >>> > > In 6.23, Session # destroy() set session#id to null, this is
> > why
> > > > >>> Login
> > > > >>> > > Page is loaded.
> > > > >>> > >
> > > > >>> > > Hope this helps
> > > > >>> > >
> > > > >>> > > François
> > > > >>> > >
> > > > >>> > >
> > > > >>> > >
> > > > >>> > > > Le 31 août 2016 à 16:21, durairaj t <
> durairaj....@gmail.com>
> > a
> > > > >>> écrit :
> > > > >>> > > >
> > > > >>> > > > Thank you for your quick response.
> > > > >>> > > >
> > > > >>> > > > *Session:* 30 minutes.
> > > > >>> > > >
> > > > >>> > > > *Html Header:*
> > > > >>> > > >
> > > > >>> > > > <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
> > Transitional//EN"
> > > "
> > > > >>> > > > http://www.w3.org/TR/html4/loose.dtd";>
> > > > >>> > > > <html xmlns:wicket="http://wicket.apache.org";>
> > > > >>> > > >
> > > > >>> > > > <head>
> > > > >>> > > >    <link rel="SHORTCUT ICON" href="images/favicon.ico"
> > > > >>> type="image/ico"
> > > > >>> > > />
> > > > >>> > > >
> > > > >>> > > >    <meta http-equiv="Page-Enter"
> > content="blendTrans(Duration=
> > > > 0)">
> > > > >>> > > >    <meta http-equiv="Page-Exit"
> content="blendTrans(Duration=
> > > > 0)">
> > > > >>> > > >
> > > > >>> > > >    <title>
> > > > >>> > > >        <wicket:message key="appname" /> -
> > > > >>> > > >        <div wicket:id="titlelable"> </div> -
> > > > >>> > > >        <wicket:message key="pagename" />
> > > > >>> > > >    </title>
> > > > >>> > > >    <link rel="stylesheet" type="text/css"
> > > > href="theme/Master.css">
> > > > >>> > > >    <link rel="stylesheet" type="text/css"
> > > > >>> > href="theme/pageBlocking.css">
> > > > >>> > > >    <link type="text/css" rel="stylesheet"
> > > > >>> > href="Calendar/css/jscal2.css"
> > > > >>> > > />
> > > > >>> > > >    <link type="text/css" rel="stylesheet"
> > > > >>> > > > href="Calendar/css/border-radius.css" />
> > > > >>> > > >    <link id="skin-steel" title="Gold" type="text/css"
> > > > >>> rel="stylesheet"
> > > > >>> > > > href="Calendar/css/steel/steel.css" />
> > > > >>> > > >    <script src="Calendar/js/jscal2.js"></script>
> > > > >>> > > >    <script src="Calendar/js/lang/en.js"></script>
> > > > >>> > > >
> > > > >>> > > >    <script type="text/javascript"
> > > > >>> > > > src="javascripts/pageBlocking.js"></script>
> > > > >>> > > >    <script type="text/javascript"
> > > > >>> > > > src="javascripts/aim-hrs-autocomplete.js"></script>
> > > > >>> > > >    <script type="text/javascript"
> > > src="javascripts/aim_util.js">
> > > > >>> > > </script>
> > > > >>> > > >    <script type="text/javascript"
> > > src="javascripts/mvl.js"></scr
> > > > >>> ipt>
> > > > >>> > > >    <script type="text/javascript"
> > > src="javascripts/masks.js"></s
> > > > >>> cript>
> > > > >>> > > >    <script type="text/javascript"
> > > src="javascripts/yetii.js"></s
> > > > >>> cript>
> > > > >>> > > >    <script language="JavaScript"
> > > > >>> > > > src="jspspellcheck/spellcheck-caller.js"></script>
> > > > >>> > > >
> > > > >>> > > >
> > > > >>> > > >
> > > > >>> > > >    <script language="javascript" type="text/javascript">
> > > > >>> > > >        //credit: http://psacake.com/web/js.asp
> > > > >>> > > >        function imposeMaxLength(Object, evt, MaxLen) {
> > > > >>> > > >            var e = window.event ? event.keyCode : evt.which
> > > > >>> > > >            if (e == 8 || e == 46 || (e >= 37 && e <= 40))
> > > return
> > > > >>> true;
> > > > >>> > > > //bs, del, arrows
> > > > >>> > > >            return (Object.value.length <= MaxLen);
> > > > >>> > > >        }
> > > > >>> > > >    </script>
> > > > >>> > > >
> > > > >>> > > >    <!--
> > > > >>> > > > <style type="text/css">
> > > > >>> > > > input:focus,textarea:focus {
> > > > >>> > > > background-color: lightyellow;
> > > > >>> > > > }
> > > > >>> > > > </style>
> > > > >>> > > > -->
> > > > >>> > > >
> > > > >>> > > >    <style>
> > > > >>> > > >        div.wicket-aa {
> > > > >>> > > >            font-family: sans-serif;
> > > > >>> > > >            font-size: 12px;
> > > > >>> > > >            background-color: white;
> > > > >>> > > >            border-width: 2px;
> > > > >>> > > >            border-color: gray;
> > > > >>> > > >            border-style: solid;
> > > > >>> > > >            padding: 2px;
> > > > >>> > > >            margin: 1px 0 0 0;
> > > > >>> > > >            text-align: left;
> > > > >>> > > >            width: 120px;
> > > > >>> > > >        }
> > > > >>> > > >
> > > > >>> > > >        div.wicket-aa ul {
> > > > >>> > > >            list-style: none;
> > > > >>> > > >            padding: 2px;
> > > > >>> > > >            margin: 0;
> > > > >>> > > >            width: 100px;
> > > > >>> > > >        }
> > > > >>> > > >
> > > > >>> > > >        div.wicket-aa ul li.selected {
> > > > >>> > > >            background-color: #DEEFF7;
> > > > >>> > > >            padding: 2px;
> > > > >>> > > >            margin: 0;
> > > > >>> > > >            width: 100px;
> > > > >>> > > >        }
> > > > >>> > > >
> > > > >>> > > >        div.imxt-vista tr.imxt-grid-row:hover td.imxt-cell,
> > > > >>> > > >        div.imxt-vista tr.imxt-grid-row:hover td.imxt-sorted
> > {}
> > > > >>> > > >    </style>
> > > > >>> > > >
> > > > >>> > > >
> > > > >>> > > > </head>
> > > > >>> > > >
> > > > >>> > > >
> > > > >>> > > > *Java Code:*
> > > > >>> > > >
> > > > >>> > > >
> > > > >>> > > >
> > > > >>> > > > String timeout= "1750000";
> > > > >>> > > > if(AppSession.getObjAimShell() != null &&
> > > > >>> > > > AppSession.getObjAimShell().getTimeoutLimit() !=null)
> > > > >>> > > > timeout = "" + ((AppSession.getObjAimShell().
> > getTimeoutLimit()
> > > *
> > > > >>> > > 0.9)*1000);
> > > > >>> > > > final Model<String> sessionTimeoutInterval = new
> > > > >>> > Model<String>(timeout);
> > > > >>> > > > HiddenField sessionTimeoutIntervalField = new
> > > > >>> > > > HiddenField("sessionTimeoutInterval",
> > sessionTimeoutInterval)
> > > ;
> > > > >>> > > > sessionTimeoutIntervalField.setOutputMarkupId(true);
> > > > >>> > > > sessionTimeoutIntervalField.setMarkupId("
> > > > sessionTimeoutInterval");
> > > > >>> > > > add(sessionTimeoutIntervalField);
> > > > >>> > > >
> > > > >>> > > >
> > > > >>> > > > *Java Script:*
> > > > >>> > > > var sessionPingTime = 1750000;
> > > > >>> > > > var sessionTimerId = null;
> > > > >>> > > >
> > > > >>> > > > function resetSessionTimer() {
> > > > >>> > > > try{
> > > > >>> > > > if(document.getElementById('sessionTimeoutInterval')) {
> > > > >>> > > > sessionPingTime = document.getElementById('sessi
> > > > >>> onTimeoutInterval').
> > > > >>> > > value;
> > > > >>> > > > }
> > > > >>> > > > if(parent) {
> > > > >>> > > > parent.clearTimeout(parent.sessionTimerId);
> > > > >>> > > > parent.sessionTimerId = null;
> > > > >>> > > > parent.sessionTimerId = parent.setTimeout("
> > > > windowCloseSignOff();",
> > > > >>> > > > sessionPingTime);
> > > > >>> > > > }else {
> > > > >>> > > > clearTimeout(parent.sessionTimerId);
> > > > >>> > > > sessionTimerId = null;
> > > > >>> > > > sessionTimerId = setTimeout("windowCloseSignOff();",
> > > > >>> sessionPingTime);
> > > > >>> > > > }
> > > > >>> > > > }catch(c){showScriptError(c, 'resetSessionTimer');}
> > > > >>> > > > }
> > > > >>> > > >
> > > > >>> > > >
> > > > >>> > > > On Wed, Aug 31, 2016 at 10:05 AM, Francois Meillet <
> > > > >>> > > > francois.meil...@gmail.com> wrote:
> > > > >>> > > >
> > > > >>> > > >> Hi,
> > > > >>> > > >>
> > > > >>> > > >> What is the session-timeout ?
> > > > >>> > > >> Can you show the html page header ? and any java code that
> > > > modify
> > > > >>> it.
> > > > >>> > > >>
> > > > >>> > > >> François
> > > > >>> > > >>
> > > > >>> > > >>
> > > > >>> > > >>
> > > > >>> > > >>> Le 31 août 2016 à 15:49, durairaj t <
> > durairaj....@gmail.com>
> > > a
> > > > >>> > écrit :
> > > > >>> > > >>>
> > > > >>> > > >>> I'm migrating to wicket 6.23, createPage()  is working as
> > > > >>> expected in
> > > > >>> > > >> many
> > > > >>> > > >>> modules, but not in the below scenario.
> > > > >>> > > >>>
> > > > >>> > > >>>
> > > > >>> > > >>> There is a search modal window in the application, which
> is
> > > > used
> > > > >>> to
> > > > >>> > > >> search
> > > > >>> > > >>> data and keep the entire Page in session to retrieve the
> > data
> > > > >>> back
> > > > >>> > from
> > > > >>> > > >> the
> > > > >>> > > >>> session (for the Back button functionality).
> > > > >>> > > >>>
> > > > >>> > > >>> *Issue:*
> > > > >>> > > >>>
> > > > >>> > > >>> The search window is just working for 10 to 15 minutes as
> > > > >>> expected
> > > > >>> > and
> > > > >>> > > >> then
> > > > >>> > > >>> loading Login Page suddenly.
> > > > >>> > > >>>
> > > > >>> > > >>> In debug: (I verified the below in the eclipse debugging
> > > mode)
> > > > >>> > > >>>
> > > > >>> > > >>> 1. Returning page from session
> > > > >>> > > >>> 2. Page from session is *NOT *null.
> > > > >>> > > >>> 3. Session ID is *NOT *modified anywhere in the
> > application.
> > > > >>> > > >>> 4. It is just happening only in the search window until
> I'm
> > > > >>> clearing
> > > > >>> > > the
> > > > >>> > > >>> Search Page object (SrcPage) . But application is not
> > asking
> > > me
> > > > >>> to
> > > > >>> > > >> re-login
> > > > >>> > > >>> once it happened.
> > > > >>> > > >>>
> > > > >>> > > >>> *Code snippet:*
> > > > >>> > > >>>
> > > > >>> > > >>>             public Page createPage() {
> > > > >>> > > >>> return AppSession.getObjAppShell().getSrcPage();
> > > > >>> > > >>> });
> > > > >>> > > >>>
> > > > >>> > > >>>
> > > > >>> > > >>> *Reproducing Issue:*
> > > > >>> > > >>>
> > > > >>> > > >>> I can reproduce the issue by replacing the session in the
> > > > >>> > createPage()
> > > > >>> > > >>> block, but I'm not sure whether the problem is session or
> > > > >>> something
> > > > >>> > > else.
> > > > >>> > > >>>
> > > > >>> > > >>> Example;
> > > > >>> > > >>>
> > > > >>> > > >>> public Page createPage() {
> > > > >>> > > >>> Session.get().replaceSession();// used to reproduce the
> > > issue.
> > > > >>> > > >>>                                       return
> > > > >>> > > >>> AppSession.getObjAppShell().getSrcPage();
> > > > >>> > > >>> });
> > > > >>> > > >>>
> > > > >>> > > >>>
> > > > >>> > > >>> *Any help?*
> > > > >>> > > >>>
> > > > >>> > > >>>
> > > > >>> > > >>>
> > > > >>> > > >>>
> > > > >>> > > >>> Thank you.
> > > > >>> > > >>
> > > > >>> > > >>
> > > > >>> > > >> ------------------------------
> > ------------------------------
> > > > >>> ---------
> > > > >>> > > >> To unsubscribe, e-mail: users-unsubscribe@wicket.
> apache.org
> > > > >>> > > >> For additional commands, e-mail:
> > users-h...@wicket.apache.org
> > > > >>> > > >>
> > > > >>> > > >>
> > > > >>> > >
> > > > >>> > >
> > > > >>> > > ------------------------------------------------------------
> > > > >>> ---------
> > > > >>> > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > > > >>> > > For additional commands, e-mail:
> users-h...@wicket.apache.org
> > > > >>> > >
> > > > >>> > >
> > > > >>> >
> > > > >>>
> > > > >>
> > > > >>
> > > > >
> > > >
> > >
> >
>

Reply via email to