Program: 68930
Project: 68930
Buggy source:
@SuppressWarnings("String_Node_Str") public HttpResponse(org.apache.http.HttpResponse response,Class<T> responseClass){
  HttpEntity responseEntity=response.getEntity();
  Header[] allHeaders=response.getAllHeaders();
  for (  Header header : allHeaders) {
    String headerName=header.getName().toLowerCase();
    List<String> list=headers.get(headerName);
    if (list == null)     list=new ArrayList<String>();
    list.add(header.getValue());
    headers.put(headerName,list);
  }
  this.code=response.getStatusLine().getStatusCode();
  String charset="String_Node_Str";
  Header contentType=responseEntity.getContentType();
  if (contentType != null) {
    String responseCharset=ResponseUtils.getCharsetFromContentType(contentType.getValue());
    if (responseCharset != null && !responseCharset.trim().equals("String_Node_Str")) {
      charset=responseCharset;
    }
  }
  if (responseEntity != null) {
    try {
      byte[] rawBody;
      try {
        InputStream responseInputStream=responseEntity.getContent();
        if (ResponseUtils.isGzipped(responseEntity.getContentEncoding())) {
          responseInputStream=new GZIPInputStream(responseEntity.getContent());
        }
        rawBody=ResponseUtils.getBytes(responseInputStream);
      }
 catch (      IOException e2) {
        throw new RuntimeException(e2);
      }
      InputStream inputStream=new ByteArrayInputStream(rawBody);
      this.rawBody=inputStream;
      if (JsonNode.class.equals(responseClass)) {
        String jsonString=new String(rawBody,charset).trim();
        this.body=(T)new JsonNode(jsonString);
      }
 else       if (String.class.equals(responseClass)) {
        this.body=(T)new String(rawBody,charset);
      }
 else       if (InputStream.class.equals(responseClass)) {
        this.body=(T)this.rawBody;
      }
 else {
        throw new Exception("String_Node_Str");
      }
    }
 catch (    Exception e) {
      throw new RuntimeException(e);
    }
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public HttpResponse(org.apache.http.HttpResponse response,Class<T> responseClass){
  HttpEntity responseEntity=response.getEntity();
  Header[] allHeaders=response.getAllHeaders();
  for (  Header header : allHeaders) {
    String headerName=header.getName().toLowerCase();
    List<String> list=headers.get(headerName);
    if (list == null)     list=new ArrayList<String>();
    list.add(header.getValue());
    headers.put(headerName,list);
  }
  this.code=response.getStatusLine().getStatusCode();
  if (responseEntity != null) {
    String charset="String_Node_Str";
    Header contentType=responseEntity.getContentType();
    if (contentType != null) {
      String responseCharset=ResponseUtils.getCharsetFromContentType(contentType.getValue());
      if (responseCharset != null && !responseCharset.trim().equals("String_Node_Str")) {
        charset=responseCharset;
      }
    }
    try {
      byte[] rawBody;
      try {
        InputStream responseInputStream=responseEntity.getContent();
        if (ResponseUtils.isGzipped(responseEntity.getContentEncoding())) {
          responseInputStream=new GZIPInputStream(responseEntity.getContent());
        }
        rawBody=ResponseUtils.getBytes(responseInputStream);
      }
 catch (      IOException e2) {
        throw new RuntimeException(e2);
      }
      InputStream inputStream=new ByteArrayInputStream(rawBody);
      this.rawBody=inputStream;
      if (JsonNode.class.equals(responseClass)) {
        String jsonString=new String(rawBody,charset).trim();
        this.body=(T)new JsonNode(jsonString);
      }
 else       if (String.class.equals(responseClass)) {
        this.body=(T)new String(rawBody,charset);
      }
 else       if (InputStream.class.equals(responseClass)) {
        this.body=(T)this.rawBody;
      }
 else {
        throw new Exception("String_Node_Str");
      }
    }
 catch (    Exception e) {
      throw new RuntimeException(e);
    }
  }
}