[Kss-devel] "Could not adapt" error with event subscribers firing during an ajax call
Godefroid Chapelle
gotcha at bubblenet.be
Sat Nov 10 14:39:31 CET 2007
Balazs Ree wrote:
> On Fri, 09 Nov 2007 07:52:13 +0100, Jeroen Vloothuis wrote:
>> Perhaps we should make handling these subscribers more robust by
>> default?
>
> This is an important question and we already talked about it a bit. We
> can have two basic approaches:
>
> 1. let an exception raised as currently
>
> This has the advantage that we consider the things that are done by the
> event handlers not optional but essential part of the application. If
> they do not happen the application is broken, it is best to signal that
> with an exception so we are forced to fix it
I totally agree this is the way to go.
UI of Ajax application does not work if Ajax actions result in
incoherent screens.
In a component world, the only way (that I know)
to let other UI components to know about changes of state of objects
they display is the subscriber--observer pattern.
Obviouly this implies subscribers need to be robust enough, which is hard.
>
> 2. swallow them generically and maybe log it
>
> This has several problems. First part of the application is silently not
> running correctly altough it seems to run. Second we usually do not
> discover if this happens. Third it is against the "explicit is better
> then implicit" principle.
>
>
> Let me tell a real life example. There are currently two event handlers
> on plone.app.kss trunk, that are broken for whatsoever reason (probably
> another component programmer made a change somewhere else, without caring
> that our tests actually fail as a consequence). I did not want plone
> trunk to break entirely but I also did not have time to fix them yet. So
> I disabled the event handler code and I am logging an ERROR saying that
> the code needs to be fixed each time it is invoked.
>
> Even this way, because I disabled the exceptions, probably none of you
> have noticed that there is a problem at all. So fixing the problem is
> pushed to infinity. But at least I needed to manually disable the events
> which is I believe much better then the option 2. when it would just
> magically happen.
>
>
> However in current case I suggest we really take a deep look of what
> happens, because acquisition + portal_factory problems can be a real pain
> if ignored.
>
--
Godefroid Chapelle (aka __gotcha) http://bubblenet.be
More information about the Kss-devel
mailing list