myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Robinson" <andrew.rw.robin...@gmail.com>
Subject Re: Lazy loading tree is crashed by fast clicking users
Date Tue, 25 Mar 2008 15:40:22 GMT
making everything synchronized will probably not help as the component
and renderer are not thread safe and they interact with the model at
different times. Just synchronizing methods will not protect the
critical section of the code. You should probably either (1) disable
the client side on form submit to prevent multiple clicks or (2)
synchronize access to the view for a user so that if the view is
posted twice the second has to wait for the first to fully complete
the faces lifecycle or (3) throw an exception using a counter if the
user does not wait for the first and force them to reload the page,
losing all of their state for being such a naughty user. A combination
of all 3 may be helpful.

-Andrew

On Tue, Mar 25, 2008 at 7:11 AM, Martin Schlierf <M.Schlierf@cadenas.de> wrote:
> The code for the lazy loading method is very complicated in my app.
>  I use java code to call an application that gets the nodes through a VB
>  interface from an Application written in C++.
>
>  I think the problem is not the lazy loading itself but the treewalker.next()
>  or the HTMLTreeRenderer
>
>  Anyway, thanks for your help, I just want to know if there are people here
>  that have seen errors like that with their implementations.
>
>  The problem is that if users are clicking very fast, without waiting util
>  one node has opened, the renderer hangs (not my lazy loading).
>
>  So it looks for me that in the treewalker, there are some variables
>  manipulated by other threads or something, but I made everything
>
> synchronized.
>
>  -----Ursprüngliche Nachricht-----
>  Von: Andrew Robinson [mailto:andrew.rw.robinson@gmail.com]
>  Gesendet: Dienstag, 25. März 2008 14:01
>
>
> An: MyFaces Discussion
>  Betreff: Re: Lazy loading tree is crashed by fast clicking users
>
>  That didn't clarify anything at all. Please show us code, we are not
>  mind readers :)
>
>
>  On 3/25/08, Martin Schlierf <M.Schlierf@cadenas.de> wrote:
>  > Hello, I wrote my own tree nodes.
>  > In the getChildren() method I load the child nodes from the file system.
>  > The methods for loading the child nodes are all synchronized...
>  >
>  > -----Ursprüngliche Nachricht-----
>  > Von: Andrew Robinson [mailto:andrew.rw.robinson@gmail.com]
>  > Gesendet: Donnerstag, 20. März 2008 16:27
>  > An: MyFaces Discussion
>  > Betreff: Re: Lazy loading tree is crashed by fast clicking users
>  >
>  > How are you lazy loading the tree2. There is no built in support for
>  > it, so your problem is completely dependent on your implementation of
>  > it.
>  >
>  > On Thu, Mar 20, 2008 at 6:00 AM, Martin Schlierf <M.Schlierf@cadenas.de>
>  > wrote:
>  > >
>  > >
>  > >
>  > >
>  > > Hi,
>  > >
>  > > I'm facing problems with a lazy loading Tree2.
>  > >
>  > > My nodes load data from the file system to get its children in the tree.
>  > > This takes some seconds to load.
>  > >
>  > >
>  > >
>  > > For example the user gets the root node which has 5 child nodes.
>  > >
>  > > If the user clicks on all 5 plus signs to open the nodes the renderer
>  > never
>  > > finishes. If the user just clicks one node and waits it is no problem.
>  > >
>  > >
>  > >
>  > > It may be that my implementation of the nodes has error but I cannot
>  find
>  > > them.
>  > >
>  > >
>  > >
>  > > Has anyone seen such problems with a own lazy loading node tree
>  structure?
>  > >
>  > >
>  > >
>  > > Thanks, Martin
>  > >
>  > >
>  >
>  >
>
>

Mime
View raw message