public void customResultAvailable(final IExternalAccess exta) { if(manualremove) platforms.remove(exta); Starter.createProxy(agent.getExternalAccess(), exta).addResultListener(new ExceptionDelegationResultListener<IComponentIdentifier, IExternalAccess>(ret) { public void customResultAvailable(IComponentIdentifier result) { // inverse proxy from remote to local. Starter.createProxy(exta, agent.getExternalAccess()) .addResultListener(new ExceptionDelegationResultListener<IComponentIdentifier, IExternalAccess>(ret) { public void customResultAvailable(IComponentIdentifier result) { ret.setResult(exta); } }); } }); } });