Program: 72334
Project: 72334
Buggy source:
@SuppressWarnings("String_Node_Str") @Override public void run(){
  Map<String,Object> urlSpec=(Map<String,Object>)_options.get("String_Node_Str");
  HttpClient client=null;
  boolean useProxy=false;
  Object proxyHostObject=_options.get("String_Node_Str");
  Object proxyPortObject=_options.get("String_Node_Str");
  if (proxyHostObject != null && proxyPortObject != null) {
    useProxy=true;
    String proxyHostSpec=proxyHostObject.toString().trim();
    int proxyPortSpec=(int)proxyPortObject;
    client=_vertx.createHttpClient(new HttpClientOptions().setKeepAlive((boolean)_options.get("String_Node_Str")).setConnectTimeout((Integer)_options.get("String_Node_Str")).setSsl(urlSpec.get("String_Node_Str").toString().equalsIgnoreCase("String_Node_Str")).setProxyOptions(new ProxyOptions().setType(ProxyType.HTTP).setHost(proxyHostSpec).setPort(proxyPortSpec)));
  }
 else {
    client=_vertx.createHttpClient(new HttpClientOptions().setDefaultHost((String)urlSpec.get("String_Node_Str")).setDefaultPort((int)urlSpec.get("String_Node_Str")).setKeepAlive((boolean)_options.get("String_Node_Str")).setConnectTimeout((Integer)_options.get("String_Node_Str")).setSsl(urlSpec.get("String_Node_Str").toString().equalsIgnoreCase("String_Node_Str")));
  }
  String query="String_Node_Str";
  Object queryObject=urlSpec.get("String_Node_Str");
  if (queryObject != null) {
    String querySpec=queryObject.toString().trim();
    if (!querySpec.equals("String_Node_Str") && !querySpec.startsWith("String_Node_Str")) {
      query="String_Node_Str" + querySpec;
    }
  }
  String uri=urlSpec.get("String_Node_Str") + query;
  Object complete=_options.get("String_Node_Str");
  boolean outputCompleteResponseOnly=true;
  if (complete instanceof Boolean && !(Boolean)complete) {
    outputCompleteResponseOnly=false;
  }
  HttpMethod httpMethod=HttpMethod.valueOf(((String)_options.get("String_Node_Str")).trim().toUpperCase());
  HttpClientRequest request=null;
  if (useProxy) {
    request=client.requestAbs(httpMethod,(String)urlSpec.get("String_Node_Str") + "String_Node_Str" + (String)urlSpec.get("String_Node_Str")+ uri,new HttpClientResponseHandler(_requestObj,client,outputCompleteResponseOnly,_requestNumber));
  }
 else {
    request=client.request(httpMethod,uri,new HttpClientResponseHandler(_requestObj,client,outputCompleteResponseOnly,_requestNumber));
  }
  request.setTimeout((Integer)_options.get("String_Node_Str"));
  request.exceptionHandler(new HttpClientExceptionHandler(_requestObj,client,_requestNumber));
  Map<String,Object> headers=(Map<String,Object>)_options.get("String_Node_Str");
  boolean isImage=false;
  String imageType="String_Node_Str";
  if (!headers.isEmpty()) {
    for (    Entry<String,Object> entry : headers.entrySet()) {
      String key=entry.getKey();
      Object value=entry.getValue();
      if (key.equalsIgnoreCase("String_Node_Str") && ((String)value).startsWith("String_Node_Str")) {
        isImage=true;
        imageType=((String)value).substring(6);
        if (!imageType.equalsIgnoreCase("String_Node_Str") && !imageType.equalsIgnoreCase("String_Node_Str") && !imageType.equalsIgnoreCase("String_Node_Str")&& !imageType.equalsIgnoreCase("String_Node_Str")) {
          _error(_requestObj,"String_Node_Str" + imageType + "String_Node_Str"+ "String_Node_Str");
          imageType="String_Node_Str";
        }
      }
      if (value instanceof String) {
        request.putHeader((String)key,(String)value);
      }
 else       if (value instanceof Integer) {
        request.putHeader((String)key,((Integer)value).toString());
      }
 else       if (value instanceof Iterable) {
        request.putHeader((String)key,(Iterable<String>)value);
      }
    }
  }
  if (isImage) {
    AWTImageToken token=(AWTImageToken)_options.get("String_Node_Str");
    Image image=token.getValue();
    BufferedImage bufferedImage;
    if (image instanceof BufferedImage) {
      bufferedImage=(BufferedImage)image;
    }
 else {
      bufferedImage=new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_ARGB);
      Graphics2D bGr=bufferedImage.createGraphics();
      bGr.drawImage(image,0,0,null);
      bGr.dispose();
    }
    final ByteArrayOutputStream os=new ByteArrayOutputStream();
    try {
      ImageIO.write(bufferedImage,imageType,os);
      os.close();
      byte[] bytes=os.toByteArray();
      request.sendHead();
      request.setChunked(true);
      for (int i=0; i < bytes.length; i=i + 4000) {
        request.write(Buffer.buffer(Base64.getEncoder().encodeToString(Arrays.copyOfRange(bytes,i,i + 4000))));
      }
    }
 catch (    final IOException ioe) {
      String message="String_Node_Str";
      _error(_requestObj,message);
    }
  }
 else {
    Object bodyObject=_options.get("String_Node_Str");
    if (bodyObject != null) {
      String body=bodyObject.toString();
      if (body != null) {
        request.putHeader("String_Node_Str",Integer.toString(body.length()));
        request.write(body);
      }
    }
  }
  request.end();
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") @Override public void run(){
  Map<String,Object> urlSpec=(Map<String,Object>)_options.get("String_Node_Str");
  HttpClient client=null;
  boolean useProxy=false;
  Object proxyHostObject=_options.get("String_Node_Str");
  Object proxyPortObject=_options.get("String_Node_Str");
  if (proxyHostObject != null && proxyPortObject != null) {
    useProxy=true;
    String proxyHostSpec=proxyHostObject.toString().trim();
    int proxyPortSpec=(int)proxyPortObject;
    client=_vertx.createHttpClient(new HttpClientOptions().setKeepAlive((boolean)_options.get("String_Node_Str")).setConnectTimeout((Integer)_options.get("String_Node_Str")).setSsl(urlSpec.get("String_Node_Str").toString().equalsIgnoreCase("String_Node_Str")).setProxyOptions(new ProxyOptions().setType(ProxyType.HTTP).setHost(proxyHostSpec).setPort(proxyPortSpec)));
  }
 else {
    client=_vertx.createHttpClient(new HttpClientOptions().setDefaultHost((String)urlSpec.get("String_Node_Str")).setDefaultPort((int)urlSpec.get("String_Node_Str")).setKeepAlive((boolean)_options.get("String_Node_Str")).setConnectTimeout((Integer)_options.get("String_Node_Str")).setSsl(urlSpec.get("String_Node_Str").toString().equalsIgnoreCase("String_Node_Str")));
  }
  String query="String_Node_Str";
  Object queryObject=urlSpec.get("String_Node_Str");
  if (queryObject != null) {
    String querySpec=queryObject.toString().trim();
    if (!querySpec.equals("String_Node_Str") && !querySpec.startsWith("String_Node_Str")) {
      query="String_Node_Str" + querySpec;
    }
  }
  String uri=urlSpec.get("String_Node_Str") + query;
  Object complete=_options.get("String_Node_Str");
  boolean outputCompleteResponseOnly=true;
  if (complete instanceof Boolean && !(Boolean)complete) {
    outputCompleteResponseOnly=false;
  }
  HttpMethod httpMethod=HttpMethod.valueOf(((String)_options.get("String_Node_Str")).trim().toUpperCase());
  HttpClientRequest request=null;
  if (useProxy) {
    request=client.requestAbs(httpMethod,(String)urlSpec.get("String_Node_Str") + "String_Node_Str" + (String)urlSpec.get("String_Node_Str")+ uri,new HttpClientResponseHandler(_requestObj,client,outputCompleteResponseOnly,_requestNumber));
  }
 else {
    request=client.request(httpMethod,uri,new HttpClientResponseHandler(_requestObj,client,outputCompleteResponseOnly,_requestNumber));
  }
  request.setTimeout((Integer)_options.get("String_Node_Str"));
  request.exceptionHandler(new HttpClientExceptionHandler(_requestObj,client,_requestNumber));
  Map<String,Object> headers=(Map<String,Object>)_options.get("String_Node_Str");
  boolean isImage=false;
  String imageType="String_Node_Str";
  if (!headers.isEmpty()) {
    for (    Entry<String,Object> entry : headers.entrySet()) {
      String key=entry.getKey();
      Object value=entry.getValue();
      if (key.equalsIgnoreCase("String_Node_Str") && ((String)value).startsWith("String_Node_Str")) {
        isImage=true;
        imageType=((String)value).substring(6);
        if (!imageType.equalsIgnoreCase("String_Node_Str") && !imageType.equalsIgnoreCase("String_Node_Str") && !imageType.equalsIgnoreCase("String_Node_Str")&& !imageType.equalsIgnoreCase("String_Node_Str")) {
          _error(_requestObj,"String_Node_Str" + imageType + "String_Node_Str"+ "String_Node_Str");
          imageType="String_Node_Str";
        }
      }
      if (value instanceof String) {
        request.putHeader((String)key,(String)value);
      }
 else       if (value instanceof Integer) {
        request.putHeader((String)key,((Integer)value).toString());
      }
 else       if (value instanceof Iterable) {
        request.putHeader((String)key,(Iterable<String>)value);
      }
    }
  }
  if (isImage) {
    AWTImageToken token=(AWTImageToken)_options.get("String_Node_Str");
    Image image=token.getValue();
    BufferedImage bufferedImage;
    if (image instanceof BufferedImage) {
      bufferedImage=(BufferedImage)image;
    }
 else {
      bufferedImage=new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_ARGB);
      Graphics2D bGr=bufferedImage.createGraphics();
      bGr.drawImage(image,0,0,null);
      bGr.dispose();
    }
    final ByteArrayOutputStream os=new ByteArrayOutputStream();
    try {
      ImageIO.write(bufferedImage,imageType,os);
      os.close();
      byte[] bytes=os.toByteArray();
      request.sendHead();
      request.setChunked(true);
      String encoded=Base64.getEncoder().encodeToString(bytes);
      for (int i=0; i < encoded.length(); i=i + 4000) {
        int end=i + 4000 < encoded.length() ? i + 4000 : encoded.length();
        request.write(Buffer.buffer(encoded.substring(i,end)));
      }
    }
 catch (    final IOException ioe) {
      String message="String_Node_Str";
      _error(_requestObj,message);
    }
  }
 else {
    Object bodyObject=_options.get("String_Node_Str");
    if (bodyObject != null) {
      String body=bodyObject.toString();
      if (body != null) {
        request.putHeader("String_Node_Str",Integer.toString(body.length()));
        request.write(body);
      }
    }
  }
  request.end();
}