Program: 87141
Project: 87141
Buggy source:
@Override protected void prepareUserCas20(User user,String userId,String service,JsonObject data,Document doc,List<Element> additionalAttributes){
  user.setUser(data.getString(principalAttributeName));
  try {
    String queryParams=new URI(service).getQuery();
    String[] pairs;
    if (queryParams != null && queryParams.length() > 0 && (pairs=queryParams.split("String_Node_Str")).length > 0) {
      for (      String pair : pairs) {
        String key=pair.substring(0,pair.indexOf('='));
        if ("String_Node_Str".equals(key)) {
          String value=pair.substring(pair.indexOf('=') + 1);
          additionalAttributes.add(createTextElement("String_Node_Str",value,doc));
          for (          Object o : data.getArray("String_Node_Str",new JsonArray()).toList()) {
            @SuppressWarnings("String_Node_Str") Map<String,Object> structure=((Map<String,Object>)o);
            if (value.equals(structure.get("String_Node_Str").toString())) {
              additionalAttributes.add(createTextElement("String_Node_Str",structure.get("String_Node_Str").toString(),doc));
              break;
            }
          }
          break;
        }
      }
    }
switch (data.getString("String_Node_Str")) {
case "String_Node_Str":
      additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
    additionalAttributes.add(createTextElement("String_Node_Str",data.getString("String_Node_Str"),doc));
  addStringArray("String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
addStringArray("String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
addStringArray("String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
break;
case "String_Node_Str":
Element root=createElement("String_Node_Str",doc);
root.appendChild(createTextElement("String_Node_Str","String_Node_Str",doc));
root.appendChild(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(root);
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
addStringArray("String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
addStringArray("String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
addStringArray("String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
addStringArray("String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
break;
case "String_Node_Str":
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
break;
case "String_Node_Str":
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
break;
}
}
 catch (Exception e) {
log.error("String_Node_Str",e);
}
}

Fixed version (ground truth):
@Override protected void prepareUserCas20(User user,String userId,String service,JsonObject data,Document doc,List<Element> additionalAttributes){
  user.setUser(data.getString(principalAttributeName));
  try {
    String queryParams=new URI(service).getQuery();
    String[] pairs;
    if (queryParams != null && queryParams.length() > 0 && (pairs=queryParams.split("String_Node_Str")).length > 0) {
      for (      String pair : pairs) {
        String key=pair.substring(0,pair.indexOf('='));
        if ("String_Node_Str".equals(key)) {
          String value=pair.substring(pair.indexOf('=') + 1);
          additionalAttributes.add(createTextElement("String_Node_Str",value,doc));
          for (          Object o : data.getArray("String_Node_Str",new JsonArray()).toList()) {
            @SuppressWarnings("String_Node_Str") Map<String,Object> structure=((Map<String,Object>)o);
            if (value.equals(structure.get("String_Node_Str").toString())) {
              additionalAttributes.add(createTextElement("String_Node_Str",structure.get("String_Node_Str").toString(),doc));
              break;
            }
          }
          break;
        }
      }
    }
    Element rootProfiles;
switch (data.getString("String_Node_Str")) {
case "String_Node_Str":
      rootProfiles=createElement("String_Node_Str",doc);
    rootProfiles.appendChild(createTextElement("String_Node_Str","String_Node_Str",doc));
  additionalAttributes.add(rootProfiles);
additionalAttributes.add(createTextElement("String_Node_Str",data.getString("String_Node_Str"),doc));
addStringArray("String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
addObjectArrayProp("String_Node_Str","String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
addObjectArrayProp("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
break;
case "String_Node_Str":
rootProfiles=createElement("String_Node_Str",doc);
rootProfiles.appendChild(createTextElement("String_Node_Str","String_Node_Str",doc));
rootProfiles.appendChild(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(rootProfiles);
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
addStringArray("String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
addObjectArrayProp("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
addObjectArrayProp("String_Node_Str","String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
addStringArray("String_Node_Str","String_Node_Str",data,doc,additionalAttributes);
break;
case "String_Node_Str":
rootProfiles=createElement("String_Node_Str",doc);
rootProfiles.appendChild(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(rootProfiles);
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
break;
case "String_Node_Str":
rootProfiles=createElement("String_Node_Str",doc);
rootProfiles.appendChild(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(rootProfiles);
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
additionalAttributes.add(createTextElement("String_Node_Str","String_Node_Str",doc));
break;
}
}
 catch (Exception e) {
log.error("String_Node_Str",e);
}
}