Program: 146492
Project: 146492
Buggy source:
/** 
 * Makes any request, which require authentication
 * @param method    Method of Trade API
 * @param arguments Additional arguments, which can exist for this method
 * @return Response of type JSONObject
 * @throws JSONException
 */
@Nullable public JSONObject makeRequest(@NotNull String method,Map<String,String> arguments) throws JSONException {
  if (key.length() == 0 || secret.length() == 0) {
    return new JSONObject("String_Node_Str");
  }
  if (arguments == null) {
    arguments=new HashMap<>();
  }
  arguments.put("String_Node_Str",method);
  arguments.put("String_Node_Str","String_Node_Str" + ++nonce);
  String postData="String_Node_Str";
  for (Iterator<Map.Entry<String,String>> it=arguments.entrySet().iterator(); it.hasNext(); ) {
    Map.Entry<String,String> ent=it.next();
    if (postData.length() > 0) {
      postData+="String_Node_Str";
    }
    postData+=ent.getKey() + "String_Node_Str" + ent.getValue();
  }
  try {
    _key=new SecretKeySpec(secret.getBytes("String_Node_Str"),"String_Node_Str");
  }
 catch (  UnsupportedEncodingException uee) {
    System.err.println("String_Node_Str" + uee.toString());
    return null;
  }
  try {
    mac=Mac.getInstance("String_Node_Str");
  }
 catch (  NoSuchAlgorithmException nsae) {
    System.err.println("String_Node_Str" + nsae.toString());
    return null;
  }
  try {
    mac.init(_key);
  }
 catch (  InvalidKeyException ike) {
    System.err.println("String_Node_Str" + ike.toString());
    return null;
  }
  HttpURLConnection connection=null;
  BufferedReader bufferedReader=null;
  try {
    connection=(HttpURLConnection)(new URL(TRADE_API_URL)).openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("String_Node_Str");
    connection.setRequestProperty("String_Node_Str","String_Node_Str");
    connection.setRequestProperty("String_Node_Str",key);
    byte[] array=mac.doFinal(postData.getBytes("String_Node_Str"));
    connection.setRequestProperty("String_Node_Str",byteArrayToHexString(array));
    DataOutputStream wr=new DataOutputStream(connection.getOutputStream());
    wr.writeBytes(postData);
    wr.flush();
    wr.close();
    InputStream response=connection.getInputStream();
    StringBuilder sb=new StringBuilder();
    if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
      String line;
      bufferedReader=new BufferedReader(new InputStreamReader(response));
      while ((line=bufferedReader.readLine()) != null) {
        sb.append(line);
      }
      return new JSONObject(sb.toString());
    }
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
 finally {
    if (connection != null) {
      connection.disconnect();
    }
    if (bufferedReader != null) {
      try {
        bufferedReader.close();
      }
 catch (      IOException e) {
        e.printStackTrace();
      }
    }
  }
  return null;
}

Fixed version (ground truth):
/** 
 * Makes any request, which require authentication
 * @param method    Method of Trade API
 * @param arguments Additional arguments, which can exist for this method
 * @return Response of type JSONObject
 * @throws JSONException
 */
@Nullable public JSONObject makeRequest(@NotNull String method,Map<String,String> arguments) throws JSONException {
  if (key.length() == 0 || secret.length() == 0) {
    return new JSONObject("String_Node_Str");
  }
  if (arguments == null) {
    arguments=new HashMap<>();
  }
  arguments.put("String_Node_Str",method);
  arguments.put("String_Node_Str","String_Node_Str" + ++nonce);
  String postData="String_Node_Str";
  for (Iterator<Map.Entry<String,String>> it=arguments.entrySet().iterator(); it.hasNext(); ) {
    Map.Entry<String,String> ent=it.next();
    if (postData.length() > 0) {
      postData+="String_Node_Str";
    }
    postData+=ent.getKey() + "String_Node_Str" + ent.getValue();
  }
  try {
    _key=new SecretKeySpec(secret.getBytes("String_Node_Str"),"String_Node_Str");
  }
 catch (  UnsupportedEncodingException uee) {
    System.err.println("String_Node_Str" + uee.toString());
    return null;
  }
  try {
    mac=Mac.getInstance("String_Node_Str");
  }
 catch (  NoSuchAlgorithmException nsae) {
    System.err.println("String_Node_Str" + nsae.toString());
    return null;
  }
  try {
    mac.init(_key);
  }
 catch (  InvalidKeyException ike) {
    System.err.println("String_Node_Str" + ike.toString());
    return null;
  }
  HttpURLConnection connection=null;
  BufferedReader bufferedReader=null;
  DataOutputStream wr=null;
  try {
    connection=(HttpURLConnection)(new URL(TRADE_API_URL)).openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("String_Node_Str");
    connection.setRequestProperty("String_Node_Str","String_Node_Str");
    connection.setRequestProperty("String_Node_Str",key);
    byte[] array=mac.doFinal(postData.getBytes("String_Node_Str"));
    connection.setRequestProperty("String_Node_Str",byteArrayToHexString(array));
    wr=new DataOutputStream(connection.getOutputStream());
    wr.writeBytes(postData);
    wr.flush();
    InputStream response=connection.getInputStream();
    StringBuilder sb=new StringBuilder();
    if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
      String line;
      bufferedReader=new BufferedReader(new InputStreamReader(response));
      while ((line=bufferedReader.readLine()) != null) {
        sb.append(line);
      }
      return new JSONObject(sb.toString());
    }
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
 finally {
    if (connection != null) {
      connection.disconnect();
    }
    if (bufferedReader != null) {
      try {
        bufferedReader.close();
      }
 catch (      IOException e) {
        e.printStackTrace();
      }
    }
    if (wr != null) {
      try {
        wr.close();
      }
 catch (      IOException e) {
        e.printStackTrace();
      }
    }
  }
  return null;
}