Program: 91758
Project: 91758
Buggy source:
@Override public List<IDockerImage> listImages() throws DockerException {
  final List<IDockerImage> tempImages=new ArrayList<>();
synchronized (imageLock) {
    List<Image> rawImages=new ArrayList<>();
    try {
synchronized (clientLock) {
        if (client == null)         return tempImages;
        rawImages=client.listImages(DockerClient.ListImagesParam.allImages());
      }
    }
 catch (    DockerTimeoutException e) {
      if (isOpen()) {
        Activator.log(new Status(IStatus.WARNING,Activator.PLUGIN_ID,Messages.Docker_Connection_Timeout,e));
        close();
      }
    }
catch (    com.spotify.docker.client.DockerRequestException e) {
      throw new DockerException(e.message());
    }
catch (    com.spotify.docker.client.DockerException|InterruptedException e) {
      if (isOpen() && e.getCause() != null && e.getCause().getCause() != null && e.getCause().getCause() instanceof ProcessingException) {
        close();
      }
 else {
        throw new DockerException(e.getMessage());
      }
    }
    final Set<String> imageParentIds=new HashSet<>();
    for (    Image rawImage : rawImages) {
      imageParentIds.add(rawImage.parentId());
    }
    for (    Image rawImage : rawImages) {
      final boolean taggedImage=!(rawImage.repoTags() != null && rawImage.repoTags().size() == 1 && rawImage.repoTags().contains("String_Node_Str"));
      final boolean intermediateImage=!taggedImage && imageParentIds.contains(rawImage.id());
      final boolean danglingImage=!taggedImage && !intermediateImage;
      final List<String> repoTags=rawImage.repoTags() != null ? new ArrayList<>(rawImage.repoTags()) : Arrays.asList("String_Node_Str");
      Collections.sort(repoTags);
      final String repo=DockerImage.extractRepo(repoTags.get(0));
      final List<String> tags=Arrays.asList(DockerImage.extractTag(repoTags.get(0)));
      tempImages.add(new DockerImage(this,repoTags,repo,tags,rawImage.id(),rawImage.parentId(),rawImage.created(),rawImage.size(),rawImage.virtualSize(),intermediateImage,danglingImage));
    }
    images=tempImages;
  }
  notifyImageListeners(tempImages);
  return tempImages;
}

Fixed version (ground truth):
@Override public List<IDockerImage> listImages() throws DockerException {
  final List<IDockerImage> tempImages=new ArrayList<>();
synchronized (imageLock) {
    List<Image> rawImages=new ArrayList<>();
    try {
synchronized (clientLock) {
        if (client == null)         return tempImages;
        rawImages=client.listImages(DockerClient.ListImagesParam.allImages());
      }
    }
 catch (    DockerTimeoutException e) {
      if (isOpen()) {
        Activator.log(new Status(IStatus.WARNING,Activator.PLUGIN_ID,Messages.Docker_Connection_Timeout,e));
        close();
      }
    }
catch (    com.spotify.docker.client.DockerRequestException e) {
      throw new DockerException(e.message());
    }
catch (    com.spotify.docker.client.DockerException|InterruptedException e) {
      if (isOpen() && e.getCause() != null && e.getCause().getCause() != null && e.getCause().getCause() instanceof ProcessingException) {
        close();
      }
 else {
        throw new DockerException(e.getMessage());
      }
    }
    final Set<String> imageParentIds=new HashSet<>();
    for (    Image rawImage : rawImages) {
      imageParentIds.add(rawImage.parentId());
    }
    for (    Image rawImage : rawImages) {
      final List<String> repoTags=rawImage.repoTags() != null && rawImage.repoTags().size() > 0 ? new ArrayList<>(rawImage.repoTags()) : Arrays.asList("String_Node_Str");
      Collections.sort(repoTags);
      final boolean taggedImage=!(repoTags != null && repoTags.size() == 1 && repoTags.contains("String_Node_Str"));
      final boolean intermediateImage=!taggedImage && imageParentIds.contains(rawImage.id());
      final boolean danglingImage=!taggedImage && !intermediateImage;
      final String repo=DockerImage.extractRepo(repoTags.get(0));
      final List<String> tags=Arrays.asList(DockerImage.extractTag(repoTags.get(0)));
      tempImages.add(new DockerImage(this,repoTags,repo,tags,rawImage.id(),rawImage.parentId(),rawImage.created(),rawImage.size(),rawImage.virtualSize(),intermediateImage,danglingImage));
    }
    images=tempImages;
  }
  notifyImageListeners(tempImages);
  return tempImages;
}