/**
* This method performs all actions mentioned in class description.
*/
public void run() throws Exception {
ActivatableInvocationHandler handler;
ActivationID aid = new FakeActivationID(logger);
handler = new ActivatableInvocationHandler(aid, null);
Object cp = handler.getCurrentProxy();
assertion(cp == null);
aid = new FakeActivationID(logger);
MethodSetProxy fup = new MethodSetProxy(logger);
handler = new ActivatableInvocationHandler(aid, fup);
cp = handler.getCurrentProxy();
assertion(fup == cp);
fup = new MethodSetProxy(logger);
aid = new FakeActivationID(logger);
ActivatableInvocationHandler handler2 = new
ActivatableInvocationHandler(aid, fup);
RemoteMethodSetInterface fakeProxy = (RemoteMethodSetInterface)
Proxy.newProxyInstance(
RemoteMethodSetInterface.class.getClassLoader(),
new Class[] {RemoteMethodSetInterface.class},
handler2);
ActivationID aid2 = new FakeActivationID(logger, fakeProxy, true);
// handler does not have an underlying proxy - activation will
// be performed
handler = new ActivatableInvocationHandler(aid2, null);
RemoteMethodSetInterface fi = (RemoteMethodSetInterface)
Proxy.newProxyInstance(