Program: 146456
Project: 146456
Buggy source:
/** 
 * Makes any request, which require authentication
 * @param method     Method of Trade API
 * @param parameters Additional arguments, which can exist for this method
 * @return Response of type {@link JsonObject}
 */
@Nullable JsonObject makeRequest(@TradeMethod @NonNull String method,@Nullable Map<String,String> parameters){
  if (BuildConfig.DEBUG) {
    Log.d(TAG,"String_Node_Str" + method + (parameters != null ? "String_Node_Str" + parameters.toString() : "String_Node_Str"));
  }
  if (key.length() == 0 || secret.length() == 0) {
    return JSON_PARSER.parse("String_Node_Str" + appContext.getString(R.string.no_key_secret_error) + "String_Node_Str").getAsJsonObject();
  }
  if (parameters == null) {
    parameters=new HashMap<>();
  }
  parameters.put("String_Node_Str",method);
  parameters.put("String_Node_Str","String_Node_Str" + ++nonce);
  String postData="String_Node_Str";
  for (  Map.Entry<String,String> ent : parameters.entrySet()) {
    if (postData.length() > 0) {
      postData+="String_Node_Str";
    }
    postData+=ent.getKey() + "String_Node_Str" + ent.getValue();
  }
  final SecretKeySpec secretKeySpec;
  try {
    secretKeySpec=new SecretKeySpec(secret.getBytes("String_Node_Str"),"String_Node_Str");
  }
 catch (  UnsupportedEncodingException uee) {
    Log.e(TAG,"String_Node_Str",uee);
    return null;
  }
  final Mac mac;
  try {
    mac=Mac.getInstance("String_Node_Str");
  }
 catch (  NoSuchAlgorithmException nsae) {
    Log.e(TAG,"String_Node_Str",nsae);
    return null;
  }
  try {
    mac.init(secretKeySpec);
  }
 catch (  InvalidKeyException ike) {
    Log.e(TAG,"String_Node_Str",ike);
    return null;
  }
  HttpURLConnection connection=null;
  BufferedReader bufferedReader=null;
  DataOutputStream wr=null;
  try {
    connection=(HttpURLConnection)(new URL(hostUrl + "String_Node_Str")).openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("String_Node_Str");
    connection.setRequestProperty("String_Node_Str","String_Node_Str");
    connection.setRequestProperty("String_Node_Str",key);
    connection.setConnectTimeout((int)TimeUnit.SECONDS.toMillis(5));
    connection.setReadTimeout((int)TimeUnit.SECONDS.toMillis(30));
    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 JSON_PARSER.parse(sb.toString()).getAsJsonObject();
    }
  }
 catch (  IOException e) {
    logException(e);
  }
catch (  JsonParseException jpe) {
    logException(jpe);
  }
 finally {
    if (connection != null) {
      connection.disconnect();
    }
    if (bufferedReader != null) {
      try {
        bufferedReader.close();
      }
 catch (      IOException e) {
        logException(e);
      }
    }
    if (wr != null) {
      try {
        wr.close();
      }
 catch (      IOException e) {
        logException(e);
      }
    }
  }
  return null;
}

Fixed version (ground truth):
/** 
 * Makes any request, which require authentication
 * @param method     Method of Trade API
 * @param parameters Additional arguments, which can exist for this method
 * @return Response of type {@link JsonObject}
 */
@Nullable JsonObject makeRequest(@TradeMethod @NonNull String method,@Nullable Map<String,String> parameters){
  if (BuildConfig.DEBUG) {
    Log.d(TAG,"String_Node_Str" + method + (parameters != null ? "String_Node_Str" + parameters.toString() : "String_Node_Str"));
  }
  if (key.length() == 0 || secret.length() == 0) {
    return JSON_PARSER.parse("String_Node_Str" + appContext.getString(R.string.no_key_secret_error) + "String_Node_Str").getAsJsonObject();
  }
  if (parameters == null) {
    parameters=new HashMap<>();
  }
  parameters.put("String_Node_Str",method);
  parameters.put("String_Node_Str","String_Node_Str" + ++nonce);
  String postData="String_Node_Str";
  for (  Map.Entry<String,String> ent : parameters.entrySet()) {
    if (postData.length() > 0) {
      postData+="String_Node_Str";
    }
    postData+=ent.getKey() + "String_Node_Str" + ent.getValue();
  }
  final SecretKeySpec secretKeySpec;
  try {
    secretKeySpec=new SecretKeySpec(secret.getBytes("String_Node_Str"),"String_Node_Str");
  }
 catch (  UnsupportedEncodingException uee) {
    Log.e(TAG,"String_Node_Str",uee);
    return null;
  }
  final Mac mac;
  try {
    mac=Mac.getInstance("String_Node_Str");
  }
 catch (  NoSuchAlgorithmException nsae) {
    Log.e(TAG,"String_Node_Str",nsae);
    return null;
  }
  try {
    mac.init(secretKeySpec);
  }
 catch (  InvalidKeyException ike) {
    Log.e(TAG,"String_Node_Str",ike);
    return null;
  }
  HttpURLConnection connection=null;
  BufferedReader bufferedReader=null;
  DataOutputStream wr=null;
  try {
    connection=(HttpURLConnection)(new URL(hostUrl + "String_Node_Str")).openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("String_Node_Str");
    connection.setRequestProperty("String_Node_Str","String_Node_Str");
    connection.setRequestProperty("String_Node_Str",key);
    connection.setConnectTimeout((int)TimeUnit.SECONDS.toMillis(5));
    connection.setReadTimeout((int)TimeUnit.SECONDS.toMillis(30));
    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,"String_Node_Str"));
      while ((line=bufferedReader.readLine()) != null) {
        sb.append(line);
      }
      return JSON_PARSER.parse(sb.toString()).getAsJsonObject();
    }
  }
 catch (  IOException e) {
    logException(e);
  }
catch (  JsonParseException jpe) {
    logException(jpe);
  }
 finally {
    if (connection != null) {
      connection.disconnect();
    }
    if (bufferedReader != null) {
      try {
        bufferedReader.close();
      }
 catch (      IOException e) {
        logException(e);
      }
    }
    if (wr != null) {
      try {
        wr.close();
      }
 catch (      IOException e) {
        logException(e);
      }
    }
  }
  return null;
}