Program: 162337
Project: 162337
Buggy source:
protected LinkedHashMap<String,ZuulRoute> locateRoutes(){
  LinkedHashMap<String,ZuulRoute> routesMap=new LinkedHashMap<String,ZuulRoute>();
  addConfiguredRoutes(routesMap);
  routesMap.putAll(this.staticRoutes);
  if (this.discovery != null) {
    Map<String,ZuulRoute> staticServices=new LinkedHashMap<String,ZuulRoute>();
    for (    ZuulRoute route : routesMap.values()) {
      String serviceId=route.getServiceId();
      if (serviceId == null) {
        serviceId=route.getId();
      }
      if (serviceId != null) {
        staticServices.put(serviceId,route);
      }
    }
    List<String> services=this.discovery.getServices();
    String[] ignored=this.properties.getIgnoredServices().toArray(new String[0]);
    for (    String serviceId : services) {
      String key="String_Node_Str" + serviceId + "String_Node_Str";
      if (staticServices.containsKey(serviceId) && staticServices.get(serviceId).getUrl() == null) {
        ZuulRoute staticRoute=staticServices.get(serviceId);
        staticRoute.updateRoute(key,serviceId);
      }
      if (!PatternMatchUtils.simpleMatch(ignored,serviceId) && !routesMap.containsKey(key)) {
        routesMap.put(key,new ZuulRoute(key,serviceId));
      }
    }
  }
  if (routesMap.get(DEFAULT_ROUTE) != null) {
    ZuulRoute defaultRoute=routesMap.get(DEFAULT_ROUTE);
    routesMap.remove(DEFAULT_ROUTE);
    routesMap.put(DEFAULT_ROUTE,defaultRoute);
  }
  LinkedHashMap<String,ZuulRoute> values=new LinkedHashMap<>();
  for (  Entry<String,ZuulRoute> entry : routesMap.entrySet()) {
    String path=entry.getKey();
    if (!path.startsWith("String_Node_Str")) {
      path="String_Node_Str" + path;
    }
    if (StringUtils.hasText(this.properties.getPrefix())) {
      path=this.properties.getPrefix() + path;
      if (!path.startsWith("String_Node_Str")) {
        path="String_Node_Str" + path;
      }
    }
    values.put(path,entry.getValue());
  }
  return values;
}

Fixed version (ground truth):
protected LinkedHashMap<String,ZuulRoute> locateRoutes(){
  LinkedHashMap<String,ZuulRoute> routesMap=new LinkedHashMap<String,ZuulRoute>();
  addConfiguredRoutes(routesMap);
  routesMap.putAll(this.staticRoutes);
  if (this.discovery != null) {
    Map<String,ZuulRoute> staticServices=new LinkedHashMap<String,ZuulRoute>();
    for (    ZuulRoute route : routesMap.values()) {
      String serviceId=route.getServiceId();
      if (serviceId == null) {
        serviceId=route.getId();
      }
      if (serviceId != null) {
        staticServices.put(serviceId,route);
      }
    }
    List<String> services=this.discovery.getServices();
    String[] ignored=this.properties.getIgnoredServices().toArray(new String[0]);
    for (    String serviceId : services) {
      String key="String_Node_Str" + serviceId + "String_Node_Str";
      if (staticServices.containsKey(serviceId) && staticServices.get(serviceId).getUrl() == null) {
        ZuulRoute staticRoute=staticServices.get(serviceId);
        if (!StringUtils.hasText(staticRoute.getLocation())) {
          staticRoute.setLocation(serviceId);
        }
      }
      if (!PatternMatchUtils.simpleMatch(ignored,serviceId) && !routesMap.containsKey(key)) {
        routesMap.put(key,new ZuulRoute(key,serviceId));
      }
    }
  }
  if (routesMap.get(DEFAULT_ROUTE) != null) {
    ZuulRoute defaultRoute=routesMap.get(DEFAULT_ROUTE);
    routesMap.remove(DEFAULT_ROUTE);
    routesMap.put(DEFAULT_ROUTE,defaultRoute);
  }
  LinkedHashMap<String,ZuulRoute> values=new LinkedHashMap<>();
  for (  Entry<String,ZuulRoute> entry : routesMap.entrySet()) {
    String path=entry.getKey();
    if (!path.startsWith("String_Node_Str")) {
      path="String_Node_Str" + path;
    }
    if (StringUtils.hasText(this.properties.getPrefix())) {
      path=this.properties.getPrefix() + path;
      if (!path.startsWith("String_Node_Str")) {
        path="String_Node_Str" + path;
      }
    }
    values.put(path,entry.getValue());
  }
  return values;
}