Program: 35430
Project: 35430
Buggy source:
public void processWay(ReaderWay way){
  _wayType=0;
  boolean hasHighway=way.hasTag("String_Node_Str");
  boolean isFerryRoute=isFerryRoute(way);
  java.util.Iterator<Entry<String,Object>> it=way.getProperties();
  while (it.hasNext()) {
    Map.Entry<String,Object> pairs=it.next();
    String key=pairs.getKey();
    String value=pairs.getValue().toString();
    if (hasHighway || isFerryRoute) {
      if (key.equals("String_Node_Str")) {
        if (value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
          _wayType|=AvoidFeatureFlags.Highways;
        }
 else         if (value.equals("String_Node_Str")) {
          _wayType|=AvoidFeatureFlags.Steps;
        }
 else         if ("String_Node_Str".equals(value)) {
          String tracktype=way.getTag("String_Node_Str");
          if (tracktype != null && (tracktype.equals("String_Node_Str") || tracktype.equals("String_Node_Str") || tracktype.equals("String_Node_Str")|| tracktype.equals("String_Node_Str")|| tracktype.equals("String_Node_Str"))) {
            _wayType|=AvoidFeatureFlags.Tracks;
          }
        }
      }
 else       if (key.equals("String_Node_Str") && value.equals("String_Node_Str"))       _wayType|=AvoidFeatureFlags.Tollways;
 else       if (key.equals("String_Node_Str") && isFerryRoute)       _wayType|=AvoidFeatureFlags.Ferries;
 else       if (key.equals("String_Node_Str") && value.equals("String_Node_Str"))       _wayType|=AvoidFeatureFlags.Tunnels;
 else       if (key.equals("String_Node_Str") && value.equals("String_Node_Str"))       _wayType|=AvoidFeatureFlags.Bridges;
 else       if (("String_Node_Str".equals(key) && value.equals("String_Node_Str")))       _wayType|=AvoidFeatureFlags.Fords;
 else       if (key.equals("String_Node_Str")) {
        if (value.equals("String_Node_Str") || value.equals("String_Node_Str") || value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")) {
          _wayType|=AvoidFeatureFlags.PavedRoads;
        }
        if (value.equals("String_Node_Str") || value.equals("String_Node_Str") || value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")) {
          _wayType|=AvoidFeatureFlags.UnpavedRoads;
        }
      }
    }
  }
}

Fixed version (ground truth):
public void processWay(ReaderWay way){
  _wayType=0;
  boolean hasHighway=way.hasTag("String_Node_Str");
  boolean isFerryRoute=isFerryRoute(way);
  java.util.Iterator<Entry<String,Object>> it=way.getProperties();
  while (it.hasNext()) {
    Map.Entry<String,Object> pairs=it.next();
    String key=pairs.getKey();
    String value=pairs.getValue().toString();
    if (hasHighway || isFerryRoute) {
      if (key.equals("String_Node_Str")) {
        if (value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
          _wayType|=AvoidFeatureFlags.Highways;
        }
 else         if (value.equals("String_Node_Str")) {
          _wayType|=AvoidFeatureFlags.Steps;
        }
 else         if ("String_Node_Str".equals(value)) {
          String tracktype=way.getTag("String_Node_Str");
          if (tracktype == null || (tracktype.equals("String_Node_Str") || tracktype.equals("String_Node_Str") || tracktype.equals("String_Node_Str")|| tracktype.equals("String_Node_Str")|| tracktype.equals("String_Node_Str"))) {
            _wayType|=AvoidFeatureFlags.Tracks;
          }
        }
      }
 else       if (key.equals("String_Node_Str") && value.equals("String_Node_Str"))       _wayType|=AvoidFeatureFlags.Tollways;
 else       if (key.equals("String_Node_Str") && isFerryRoute)       _wayType|=AvoidFeatureFlags.Ferries;
 else       if (key.equals("String_Node_Str") && value.equals("String_Node_Str"))       _wayType|=AvoidFeatureFlags.Tunnels;
 else       if (key.equals("String_Node_Str") && value.equals("String_Node_Str"))       _wayType|=AvoidFeatureFlags.Bridges;
 else       if (("String_Node_Str".equals(key) && value.equals("String_Node_Str")))       _wayType|=AvoidFeatureFlags.Fords;
 else       if (key.equals("String_Node_Str")) {
        if (value.equals("String_Node_Str") || value.equals("String_Node_Str") || value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")) {
          _wayType|=AvoidFeatureFlags.PavedRoads;
        }
        if (value.equals("String_Node_Str") || value.equals("String_Node_Str") || value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")|| value.equals("String_Node_Str")) {
          _wayType|=AvoidFeatureFlags.UnpavedRoads;
        }
      }
    }
  }
}