Re: FlushSession never called on AjaxFormComponentUpdatingBehavior

2022-06-28 Thread Sven Meier

+1

Sven

On 28.06.22 18:54, Andrea Del Bene wrote:

I think we have enough work done for  9.11.0, so you shouldn't have to wait
too much to get it

On Tue, Jun 28, 2022 at 5:00 PM Wayne W  wrote:


Hi Sven,

So far so good. It seems to have fixed all issues.

Will there be a release for this anytime soon do you think?

Thanks

On Wed, Jun 22, 2022 at 8:45 PM Sven Meier  wrote:


Hi Wayne,

I pushed a fix to Wicket 9.x and 10.x.

Would be great if you could give this a test, your test application
works fine now.

Many thanks
Sven


On 20.06.22 18:19, Wayne W wrote:

Hello Sven,

Many thanks for looking into this. It's greatly appreciated that you
understand what is happening here.

Out of interest I just had a look at the RedissionSession setAttribute

and

it's just calling

org.apache.catalina.session.StandardSession.setAttribute(

name, value, notify)  and all the unBound calls are done in there. So
perhaps this is an issue with different versions of Tomcat?

FYI RedissionSession:

 *public* *void* setAttribute(String name, Object value, *boolean*

notify)

{

  *super*.setAttribute(name, value, notify);



  *if* (value == *null*) {

  *return*;

  }

  *if* (updateMode == UpdateMode.*DEFAULT* && map != *null*) {

  fastPut(name, value);

  }

  *if* (readMode == ReadMode.*REDIS*) {

  loadedAttributes.put(name, value);

  updatedAttributes.put(name, value);

  }

  *if* (updateMode == UpdateMode.*AFTER_REQUEST*) {

  removedAttributes.remove(name);

  }

  }

Either way looking forward to the fix.

On Sun, Jun 19, 2022 at 10:09 PM Sven Meier  wrote:


Hi again,

I found the cause of this bug:

RedissonSession exposes a behavior we've seen before, which seems not

to

be a problem with the default Tomcat session implementation:
When an attribute is set on the session, the previously set attribute

is

removed first - this leads to #valueUnbound() being called, signalling
PersistentPageStore to drop all store pages.

I'll perpare a fix tomorrow.

Thanks for your report.
Sven


On 18.06.22 15:24, Sven Meier wrote:

Hi,

I've stripped all pageManager related settings from your application.

Now the bug only appears with Tomcat's RedissonSessionManager,

without

it the detailPages open as expected.

I'm no expert in Redis, so I don't know what is going wrong there.

Can

you confirm my observation so far?

Regards
Sven


On 13.06.22 12:30, Wayne W wrote:

Hi Sven,

Ok here is a quickstart demonstrating the issue.


https://customerservices.glasscubes.com/share/s/1usch8t0hpjc4s5l3219he7s8f

To reproduce, open localhost:8080 and you will now also see a list

of

4

links. If you right click each link and open in a new window, you
will see
that only the first tab will render correctly. The other tabs just
refresh
the page.

If you change the wicket version to say 9.4.0 and do the same you
will see
that each page opens correctly in a new tab, and clicking on the

link

in

the page outputs "this" to the console correctly.

Let me know your thoughts
I will of course try and understand whats happening.


On Thu, Jun 9, 2022 at 8:45 AM Sven Meier  wrote:


Hi Wayne,

no idea on my side.

Please compare without InSessionPageStore and with different max

pages.

If the problem persists, please provide a quickstart.

Thanks
Sven


On 08.06.22 18:51, Wayne W wrote:

Hi Sven,

I'm having a new issue with this wicket version - I've yet had

time

to

dig

deep and try and make a quickstart to replicate it. However I
thought I
would describe it first to see if it rings any bells in your head!

In our app we have a file explorer like page that lists a bunch of
files.
Clicking one of these opens a popup over the page to see the
details. We
used to be able to open each of these files in a new browser tab.

However,

now when the new tabs are opened, the details load ok, but when

the

user
clicks on the wicket link to close the popup we are getting
componentsnotfound in the page.

Something about opening new browser tabs is messing up the session

and

loosing the components. I presume this is something to do with
InSessionPageStore. Opening a single new tab is fine, it when

there

are
more than 2 in total. I tried increasing the maxPages to 20 for
InSessionPageStore
but it made no difference.

Any idea?

On Wed, Jun 8, 2022 at 10:43 AM Sven Meier 

wrote:

Thanks Wayne!

The fix will be part of the next 9.x release.

Best regards
Sven


On 07.06.22 12:22, Wayne W wrote:

Hi Sven,

I can confirm your fix is working .

I suppose it will be a while before this reaches an official
release?
Thanks for your help - really appreciated.

Wayne

On Sun, May 29, 2022 at 10:47 PM Sven Meier 

wrote:

Hi Wayne,

the Eclipse .project still has 9.1.1 on the classpath:

  
path="M2_REPO/org/apache/wicket/wicket-core/9.9.1/wicket-core-9.9.1.jar"

Re: FlushSession never called on AjaxFormComponentUpdatingBehavior

2022-06-28 Thread Andrea Del Bene
I think we have enough work done for  9.11.0, so you shouldn't have to wait
too much to get it

On Tue, Jun 28, 2022 at 5:00 PM Wayne W  wrote:

> Hi Sven,
>
> So far so good. It seems to have fixed all issues.
>
> Will there be a release for this anytime soon do you think?
>
> Thanks
>
> On Wed, Jun 22, 2022 at 8:45 PM Sven Meier  wrote:
>
> > Hi Wayne,
> >
> > I pushed a fix to Wicket 9.x and 10.x.
> >
> > Would be great if you could give this a test, your test application
> > works fine now.
> >
> > Many thanks
> > Sven
> >
> >
> > On 20.06.22 18:19, Wayne W wrote:
> > > Hello Sven,
> > >
> > > Many thanks for looking into this. It's greatly appreciated that you
> > > understand what is happening here.
> > >
> > > Out of interest I just had a look at the RedissionSession setAttribute
> > and
> > > it's just calling
> > org.apache.catalina.session.StandardSession.setAttribute(
> > > name, value, notify)  and all the unBound calls are done in there. So
> > > perhaps this is an issue with different versions of Tomcat?
> > >
> > > FYI RedissionSession:
> > >
> > > *public* *void* setAttribute(String name, Object value, *boolean*
> > notify)
> > > {
> > >
> > >  *super*.setAttribute(name, value, notify);
> > >
> > >
> > >
> > >  *if* (value == *null*) {
> > >
> > >  *return*;
> > >
> > >  }
> > >
> > >  *if* (updateMode == UpdateMode.*DEFAULT* && map != *null*) {
> > >
> > >  fastPut(name, value);
> > >
> > >  }
> > >
> > >  *if* (readMode == ReadMode.*REDIS*) {
> > >
> > >  loadedAttributes.put(name, value);
> > >
> > >  updatedAttributes.put(name, value);
> > >
> > >  }
> > >
> > >  *if* (updateMode == UpdateMode.*AFTER_REQUEST*) {
> > >
> > >  removedAttributes.remove(name);
> > >
> > >  }
> > >
> > >  }
> > >
> > > Either way looking forward to the fix.
> > >
> > > On Sun, Jun 19, 2022 at 10:09 PM Sven Meier  wrote:
> > >
> > >> Hi again,
> > >>
> > >> I found the cause of this bug:
> > >>
> > >> RedissonSession exposes a behavior we've seen before, which seems not
> to
> > >> be a problem with the default Tomcat session implementation:
> > >> When an attribute is set on the session, the previously set attribute
> is
> > >> removed first - this leads to #valueUnbound() being called, signalling
> > >> PersistentPageStore to drop all store pages.
> > >>
> > >> I'll perpare a fix tomorrow.
> > >>
> > >> Thanks for your report.
> > >> Sven
> > >>
> > >>
> > >> On 18.06.22 15:24, Sven Meier wrote:
> > >>> Hi,
> > >>>
> > >>> I've stripped all pageManager related settings from your application.
> > >>>
> > >>> Now the bug only appears with Tomcat's RedissonSessionManager,
> without
> > >>> it the detailPages open as expected.
> > >>>
> > >>> I'm no expert in Redis, so I don't know what is going wrong there.
> Can
> > >>> you confirm my observation so far?
> > >>>
> > >>> Regards
> > >>> Sven
> > >>>
> > >>>
> > >>> On 13.06.22 12:30, Wayne W wrote:
> >  Hi Sven,
> > 
> >  Ok here is a quickstart demonstrating the issue.
> > 
> > >>
> >
> https://customerservices.glasscubes.com/share/s/1usch8t0hpjc4s5l3219he7s8f
> > 
> >  To reproduce, open localhost:8080 and you will now also see a list
> of
> > 4
> >  links. If you right click each link and open in a new window, you
> >  will see
> >  that only the first tab will render correctly. The other tabs just
> >  refresh
> >  the page.
> > 
> >  If you change the wicket version to say 9.4.0 and do the same you
> >  will see
> >  that each page opens correctly in a new tab, and clicking on the
> link
> > in
> >  the page outputs "this" to the console correctly.
> > 
> >  Let me know your thoughts
> >  I will of course try and understand whats happening.
> > 
> > 
> >  On Thu, Jun 9, 2022 at 8:45 AM Sven Meier  wrote:
> > 
> > > Hi Wayne,
> > >
> > > no idea on my side.
> > >
> > > Please compare without InSessionPageStore and with different max
> > pages.
> > >
> > > If the problem persists, please provide a quickstart.
> > >
> > > Thanks
> > > Sven
> > >
> > >
> > > On 08.06.22 18:51, Wayne W wrote:
> > >> Hi Sven,
> > >>
> > >> I'm having a new issue with this wicket version - I've yet had
> time
> > to
> > > dig
> > >> deep and try and make a quickstart to replicate it. However I
> > >> thought I
> > >> would describe it first to see if it rings any bells in your head!
> > >>
> > >> In our app we have a file explorer like page that lists a bunch of
> > >> files.
> > >> Clicking one of these opens a popup over the page to see the
> > >> details. We
> > >> used to be able to open each of these files in a new browser tab.
> > > However,
> > >> now when the new tabs are opened, the details load ok, but when
> the
> > >> user
> 

Re: FlushSession never called on AjaxFormComponentUpdatingBehavior

2022-06-28 Thread Wayne W
Hi Sven,

So far so good. It seems to have fixed all issues.

Will there be a release for this anytime soon do you think?

Thanks

On Wed, Jun 22, 2022 at 8:45 PM Sven Meier  wrote:

> Hi Wayne,
>
> I pushed a fix to Wicket 9.x and 10.x.
>
> Would be great if you could give this a test, your test application
> works fine now.
>
> Many thanks
> Sven
>
>
> On 20.06.22 18:19, Wayne W wrote:
> > Hello Sven,
> >
> > Many thanks for looking into this. It's greatly appreciated that you
> > understand what is happening here.
> >
> > Out of interest I just had a look at the RedissionSession setAttribute
> and
> > it's just calling
> org.apache.catalina.session.StandardSession.setAttribute(
> > name, value, notify)  and all the unBound calls are done in there. So
> > perhaps this is an issue with different versions of Tomcat?
> >
> > FYI RedissionSession:
> >
> > *public* *void* setAttribute(String name, Object value, *boolean*
> notify)
> > {
> >
> >  *super*.setAttribute(name, value, notify);
> >
> >
> >
> >  *if* (value == *null*) {
> >
> >  *return*;
> >
> >  }
> >
> >  *if* (updateMode == UpdateMode.*DEFAULT* && map != *null*) {
> >
> >  fastPut(name, value);
> >
> >  }
> >
> >  *if* (readMode == ReadMode.*REDIS*) {
> >
> >  loadedAttributes.put(name, value);
> >
> >  updatedAttributes.put(name, value);
> >
> >  }
> >
> >  *if* (updateMode == UpdateMode.*AFTER_REQUEST*) {
> >
> >  removedAttributes.remove(name);
> >
> >  }
> >
> >  }
> >
> > Either way looking forward to the fix.
> >
> > On Sun, Jun 19, 2022 at 10:09 PM Sven Meier  wrote:
> >
> >> Hi again,
> >>
> >> I found the cause of this bug:
> >>
> >> RedissonSession exposes a behavior we've seen before, which seems not to
> >> be a problem with the default Tomcat session implementation:
> >> When an attribute is set on the session, the previously set attribute is
> >> removed first - this leads to #valueUnbound() being called, signalling
> >> PersistentPageStore to drop all store pages.
> >>
> >> I'll perpare a fix tomorrow.
> >>
> >> Thanks for your report.
> >> Sven
> >>
> >>
> >> On 18.06.22 15:24, Sven Meier wrote:
> >>> Hi,
> >>>
> >>> I've stripped all pageManager related settings from your application.
> >>>
> >>> Now the bug only appears with Tomcat's RedissonSessionManager, without
> >>> it the detailPages open as expected.
> >>>
> >>> I'm no expert in Redis, so I don't know what is going wrong there. Can
> >>> you confirm my observation so far?
> >>>
> >>> Regards
> >>> Sven
> >>>
> >>>
> >>> On 13.06.22 12:30, Wayne W wrote:
>  Hi Sven,
> 
>  Ok here is a quickstart demonstrating the issue.
> 
> >>
> https://customerservices.glasscubes.com/share/s/1usch8t0hpjc4s5l3219he7s8f
> 
>  To reproduce, open localhost:8080 and you will now also see a list of
> 4
>  links. If you right click each link and open in a new window, you
>  will see
>  that only the first tab will render correctly. The other tabs just
>  refresh
>  the page.
> 
>  If you change the wicket version to say 9.4.0 and do the same you
>  will see
>  that each page opens correctly in a new tab, and clicking on the link
> in
>  the page outputs "this" to the console correctly.
> 
>  Let me know your thoughts
>  I will of course try and understand whats happening.
> 
> 
>  On Thu, Jun 9, 2022 at 8:45 AM Sven Meier  wrote:
> 
> > Hi Wayne,
> >
> > no idea on my side.
> >
> > Please compare without InSessionPageStore and with different max
> pages.
> >
> > If the problem persists, please provide a quickstart.
> >
> > Thanks
> > Sven
> >
> >
> > On 08.06.22 18:51, Wayne W wrote:
> >> Hi Sven,
> >>
> >> I'm having a new issue with this wicket version - I've yet had time
> to
> > dig
> >> deep and try and make a quickstart to replicate it. However I
> >> thought I
> >> would describe it first to see if it rings any bells in your head!
> >>
> >> In our app we have a file explorer like page that lists a bunch of
> >> files.
> >> Clicking one of these opens a popup over the page to see the
> >> details. We
> >> used to be able to open each of these files in a new browser tab.
> > However,
> >> now when the new tabs are opened, the details load ok, but when the
> >> user
> >> clicks on the wicket link to close the popup we are getting
> >> componentsnotfound in the page.
> >>
> >> Something about opening new browser tabs is messing up the session
> and
> >> loosing the components. I presume this is something to do with
> >> InSessionPageStore. Opening a single new tab is fine, it when there
> >> are
> >> more than 2 in total. I tried increasing the maxPages to 20 for
> >> InSessionPageStore
> >> but it made no