public BugzillaRestConfiguration getRepositoryConfiguration(TaskRepository repository)
     throws CoreException {
   if (clientCache.getIfPresent(new RepositoryKey(repository)) == null) {
     getClient(repository);
   }
   try {
     Optional<BugzillaRestConfiguration> configurationOptional =
         configurationCache.get(new RepositoryKey(repository));
     return configurationOptional.isPresent() ? configurationOptional.get() : null;
   } catch (UncheckedExecutionException e) {
     throw new CoreException(
         new Status(IStatus.ERROR, BugzillaRestCore.ID_PLUGIN, e.getMessage(), e));
   } catch (ExecutionException e) {
     throw new CoreException(
         new Status(IStatus.ERROR, BugzillaRestCore.ID_PLUGIN, e.getMessage(), e));
   }
 }