public Cancellable open(final String serviceType, final Result<Channel> result, final OptionMap optionMap) { LocalChannel channel = new LocalChannel(executor, context); try { final OpenListener openListener = context.getServiceOpenListener(serviceType); if (openListener == null) { throw new ServiceNotFoundException("Unable to find service type '" + serviceType + "'"); } context.getConnectionProviderContext().getExecutor().execute(SpiUtils.getServiceOpenTask(channel.getOtherSide(), openListener)); } catch (ServiceNotFoundException e) { result.setException(e); return nullCancellable(); } result.setResult(channel); return nullCancellable(); }