code: protected static boolean saveAuthentication(URL url, String authenticationToken, boolean authenticationTokenIsPrivate,
        String applicationKey, int timeToLive, String privateKey, Map<String, LinkedList<ChannelPermissions>> permissions, Proxy proxy)
        throws IOException {
      String postBody = String.format("AT=%s&AK=%s&PK=%s&TTL=%s&TP=%s&PVT=%s", authenticationToken, applicationKey, privateKey,
          timeToLive, permissions.size(), (authenticationTokenIsPrivate ? "1" : "0"));
  
      // CAUSE: Inefficient use of keySet iterator instead of entrySet iterator
      for (Map.Entry<String, LinkedList<ChannelPermissions>> channelNamePerms : permissions.entrySet()) {
        LinkedList<ChannelPermissions> channelPermissions = channelNamePerms.getValue();
        // CAUSE: Method concatenates strings using + in a loop
        // TODO: specify a correct capacity
        StringBuilder channelPermissionText = new StringBuilder(16);
        for (ChannelPermissions channelPermission : channelPermissions) {
          channelPermissionText.append(channelPermission.getPermission());
        }
  
        String channelPermission = String.format("&%s=%s", channelNamePerms.getKey(), channelPermissionText);
        postBody = String.format("%s%s", postBody, channelPermission);
      }
  
      return postSaveAuthentication(url, postBody, proxy);
    }
docs: CAUSE: Prefer throwing/catching meaningful exceptions instead of Exception