Leo Sutic wrote:
>
> interface StatefulComponent {
> public void login (); // never throws any exception, ever.
> public void doOperation (); // never throws any exception, ever.
> public void logout (); // never throws any exception, ever.
> }
>
> Client.java:
>
> StatefulComponent comp = (StatefulComponent)
> manager.lookup(StatefulComponent.ROLE);
> try {
> comp.login ();
> // (1)
> comp.doOperation ();
> comp.logout ();
> } finally {
> manager.release (comp);
> }
>
> If a block reload of the implementation of StatefulComponent
> occurs at (1), the comp proxy will be invalidated while in
> use, and the operation will fail.
>
> This is contrary to Avalon semantics, where a component
> reference, once obtained, remains valid until it is released.
>
> Of course there are ways to code around this (or ignore it)
> in the vast majority of cases.
>
How does the working code look like?
Carsten