Program: 59348
Project: 59348
Buggy source:
public void startContainer(String id,Map<String,Object> containerConfiguration){
  StartContainerCmd startContainerCmd=this.dockerClient.startContainerCmd(id);
  if (containerConfiguration.containsKey(BINDS)) {
    List<String> binds=asListOfString(containerConfiguration,BINDS);
    startContainerCmd.withBinds(toBinds(binds));
  }
  if (containerConfiguration.containsKey(LINKS)) {
    startContainerCmd.withLinks(toLinks(asListOfString(containerConfiguration,LINKS)));
  }
  if (containerConfiguration.containsKey(PORT_BINDINGS)) {
    List<Map<String,Object>> portBindings=asListOfMap(containerConfiguration,PORT_BINDINGS);
    Ports ports=new Ports();
    for (    Map<String,Object> map : portBindings) {
      if (map.containsKey(EXPOSED_PORT) && map.containsKey(PORT)) {
        String exposedPort=asString(map,EXPOSED_PORT);
        int port=asInt(map,PORT);
        ports.bind(ExposedPort.parse(exposedPort),toBinding(Integer.toString(port)));
      }
    }
    startContainerCmd.withPortBindings(ports);
  }
  if (containerConfiguration.containsKey(PRIVILEGED)) {
    startContainerCmd.withPrivileged(asBoolean(containerConfiguration,PRIVILEGED));
  }
  if (containerConfiguration.containsKey(PUBLISH_ALL_PORTS)) {
    startContainerCmd.withPublishAllPorts(asBoolean(containerConfiguration,PUBLISH_ALL_PORTS));
  }
  if (containerConfiguration.containsKey(NETWORK_MODE)) {
    startContainerCmd.withNetworkMode(asString(containerConfiguration,NETWORK_MODE));
  }
  if (containerConfiguration.containsKey(DNS_SEARCH)) {
    List<String> dnsSearch=asListOfString(containerConfiguration,DNS_SEARCH);
    startContainerCmd.withDnsSearch(dnsSearch.toArray(new String[dnsSearch.size()]));
  }
  if (containerConfiguration.containsKey(DEVICES)) {
    List<Map<String,Object>> devices=asListOfMap(containerConfiguration,DEVICES);
    startContainerCmd.withDevices(toDevices(devices));
  }
  if (containerConfiguration.containsKey(RESTART_POLICY)) {
    Map<String,Object> restart=asMap(containerConfiguration,RESTART_POLICY);
    startContainerCmd.withRestartPolicy(toRestatPolicy(restart));
  }
  if (containerConfiguration.containsKey(CAP_ADD)) {
    List<String> capAdds=asListOfString(containerConfiguration,CAP_ADD);
    startContainerCmd.withCapAdd(capAdds.toArray(new String[capAdds.size()]));
  }
  if (containerConfiguration.containsKey(CAP_DROP)) {
    List<String> capDrop=asListOfString(containerConfiguration,CAP_DROP);
    startContainerCmd.withCapDrop(capDrop.toArray(new String[capDrop.size()]));
  }
  startContainerCmd.exec();
}

Fixed version (ground truth):
public void startContainer(String id,Map<String,Object> containerConfiguration){
  StartContainerCmd startContainerCmd=this.dockerClient.startContainerCmd(id);
  if (containerConfiguration.containsKey(BINDS)) {
    List<String> binds=asListOfString(containerConfiguration,BINDS);
    startContainerCmd.withBinds(toBinds(binds));
  }
  if (containerConfiguration.containsKey(LINKS)) {
    startContainerCmd.withLinks(toLinks(asListOfString(containerConfiguration,LINKS)));
  }
  if (containerConfiguration.containsKey(PORT_BINDINGS)) {
    List<String> portBindings=asListOfString(containerConfiguration,PORT_BINDINGS);
    Ports ports=assignPorts(portBindings);
    startContainerCmd.withPortBindings(ports);
  }
  if (containerConfiguration.containsKey(PRIVILEGED)) {
    startContainerCmd.withPrivileged(asBoolean(containerConfiguration,PRIVILEGED));
  }
  if (containerConfiguration.containsKey(PUBLISH_ALL_PORTS)) {
    startContainerCmd.withPublishAllPorts(asBoolean(containerConfiguration,PUBLISH_ALL_PORTS));
  }
  if (containerConfiguration.containsKey(NETWORK_MODE)) {
    startContainerCmd.withNetworkMode(asString(containerConfiguration,NETWORK_MODE));
  }
  if (containerConfiguration.containsKey(DNS_SEARCH)) {
    List<String> dnsSearch=asListOfString(containerConfiguration,DNS_SEARCH);
    startContainerCmd.withDnsSearch(dnsSearch.toArray(new String[dnsSearch.size()]));
  }
  if (containerConfiguration.containsKey(DEVICES)) {
    List<Map<String,Object>> devices=asListOfMap(containerConfiguration,DEVICES);
    startContainerCmd.withDevices(toDevices(devices));
  }
  if (containerConfiguration.containsKey(RESTART_POLICY)) {
    Map<String,Object> restart=asMap(containerConfiguration,RESTART_POLICY);
    startContainerCmd.withRestartPolicy(toRestatPolicy(restart));
  }
  if (containerConfiguration.containsKey(CAP_ADD)) {
    List<String> capAdds=asListOfString(containerConfiguration,CAP_ADD);
    startContainerCmd.withCapAdd(capAdds.toArray(new String[capAdds.size()]));
  }
  if (containerConfiguration.containsKey(CAP_DROP)) {
    List<String> capDrop=asListOfString(containerConfiguration,CAP_DROP);
    startContainerCmd.withCapDrop(capDrop.toArray(new String[capDrop.size()]));
  }
  startContainerCmd.exec();
}