Program: 158210
Project: 158210
Buggy source:
private List<TokenData> getTokensData() throws IOException {
  if (tokensData == null) {
synchronized (tokensDataSync) {
      if (tokensData == null) {
        tokensData=new ArrayList<TokenData>();
        InputStream inputStream=null;
        try {
          inputStream=this.getClass().getResourceAsStream("String_Node_Str");
          List<TokenData> fileTokensData=parseTokensData(inputStream);
          tokensData.addAll(fileTokensData);
        }
 catch (        Exception exception) {
          logger.warn("String_Node_Str",exception);
        }
 finally {
          if (inputStream != null) {
            try {
              inputStream.close();
            }
 catch (            Exception e) {
              logger.error("String_Node_Str",e);
            }
          }
        }
        try {
          URL url=new URL("String_Node_Str");
          inputStream=url.openStream();
          List<TokenData> siteTokensData=parseTokensData(inputStream);
          List<TokenData> newTokensData=new ArrayList<TokenData>();
          for (          TokenData siteData : siteTokensData) {
            boolean isNew=true;
            for (            TokenData fileData : tokensData) {
              if (siteData.getName().equalsIgnoreCase(fileData.getName()) && siteData.getNumber().equalsIgnoreCase(fileData.getNumber()) && siteData.getExpansionSetCode().equalsIgnoreCase(fileData.getExpansionSetCode())) {
                isNew=false;
                break;
              }
            }
            if (isNew) {
              newTokensData.add(siteData);
            }
          }
          tokensData.addAll(newTokensData);
        }
 catch (        Exception exception) {
          logger.warn("String_Node_Str",exception);
        }
 finally {
          if (inputStream != null) {
            try {
              inputStream.close();
            }
 catch (            Exception e) {
              logger.error("String_Node_Str",e);
            }
          }
        }
      }
    }
  }
  return tokensData;
}

Fixed version (ground truth):
private List<TokenData> getTokensData() throws IOException {
synchronized (tokensDataSync) {
    if (tokensData == null) {
      tokensData=new ArrayList<>();
      InputStream inputStream=null;
      try {
        inputStream=this.getClass().getResourceAsStream("String_Node_Str");
        List<TokenData> fileTokensData=parseTokensData(inputStream);
        tokensData.addAll(fileTokensData);
      }
 catch (      Exception exception) {
        logger.warn("String_Node_Str",exception);
      }
 finally {
        if (inputStream != null) {
          try {
            inputStream.close();
          }
 catch (          Exception e) {
            logger.error("String_Node_Str",e);
          }
        }
      }
      try {
        URL url=new URL("String_Node_Str");
        inputStream=url.openStream();
        List<TokenData> siteTokensData=parseTokensData(inputStream);
        List<TokenData> newTokensData=new ArrayList<>();
        for (        TokenData siteData : siteTokensData) {
          boolean isNew=true;
          for (          TokenData fileData : tokensData) {
            if (siteData.getName().equalsIgnoreCase(fileData.getName()) && siteData.getNumber().equalsIgnoreCase(fileData.getNumber()) && siteData.getExpansionSetCode().equalsIgnoreCase(fileData.getExpansionSetCode())) {
              isNew=false;
              break;
            }
          }
          if (isNew) {
            newTokensData.add(siteData);
          }
        }
        tokensData.addAll(newTokensData);
      }
 catch (      Exception exception) {
        logger.warn("String_Node_Str",exception);
      }
 finally {
        if (inputStream != null) {
          try {
            inputStream.close();
          }
 catch (          Exception e) {
            logger.error("String_Node_Str",e);
          }
        }
      }
    }
  }
  return tokensData;
}