Hi Emm,

On Wed, Feb 18, 2009 at 7:23 AM, Emmanuel Lecharny <elecharny@apache.org> wrote:
In order to implement the clear operation, we will have to inject a
new field into each operationContext : the bypassed interceptors.

We should not need to do this. We expose access to the ChangeLog (interface) from the DirectoryService itself. This allows us to manage the changelog out of band (of ldap operations which go through the interceptor chain).  This is how reverts work today for example.  We just call revert on ChangeLog which we grab from the DirectoryService.
 
As
we don't want he changeLog to be executed when reverting operations,
we have to bypass it.

Hmmm we want to lock out any changes which may be taking place while a revert is in progress.  Implementing this is a lot more involved and something we need to talk more about. 
 
We also may want to bypass some other
interceptors , like the authz or authn (if we have successfully
modified something, then we will successfully do the revert).

Adding a Collection of bypassed interceptors into the operationContext
will allow such a mechanism to work. It should not break the current
code base, as the PartitionNexusProxy handle such bypasses.

The bypass mechanism was never created for handling these kinds of problems. In fact the bypass mechanism is a very dangerous and ugly work around to flaws in the interceptor chain design.

Alex