Program: 118007
Project: 118007
Buggy source:
public List<Problem> checkProblems(ExternalMapperData externalData){
  problems.clear();
  if (externalData != null && mapperManager.isCheckSyntaxEnabled()) {
    List<ExternalMapperTable> extInputTables=new ArrayList<ExternalMapperTable>(externalData.getInputTables());
    List<ExternalMapperTable> extVarTables=new ArrayList<ExternalMapperTable>(externalData.getVarsTables());
    List<ExternalMapperTable> extOutputTables=new ArrayList<ExternalMapperTable>(externalData.getOutputTables());
    ICodeProblemsChecker codeChecker=LanguageProvider.getCurrentLanguage().getCodeChecker();
    ILanguage currentLanguage=LanguageProvider.getCurrentLanguage();
    if (currentLanguage.getCodeLanguage() == ECodeLanguage.JAVA) {
      codeChecker.checkProblems(null);
    }
    checkExpressionSyntaxProblems(extInputTables,codeChecker);
    checkExpressionSyntaxProblems(extVarTables,codeChecker);
    checkExpressionSyntaxProblems(extOutputTables,codeChecker);
    List<? extends IConnection> incomingConnections=new ArrayList<IConnection>(this.mapperManager.getAbstractMapComponent().getIncomingConnections());
    ExternalDataConverter converter=new ExternalDataConverter(mapperManager);
    MapperMain mapperMain=((MapperComponent)mapperManager.getAbstractMapComponent()).getMapperMain();
    ArrayList<IOConnection> inputsIOConnections=mapperMain.createIOConnections(incomingConnections);
    ArrayList<InputTable> inputTables=converter.prepareInputTables(inputsIOConnections,externalData);
    checkKeysProblems(inputTables);
    checkOutputTablesProblems(extOutputTables);
    checkLookupTablesUnusedProblems(inputTables);
  }
  return getProblems();
}

Fixed version (ground truth):
public List<Problem> checkProblems(ExternalMapperData externalData){
  problems.clear();
  if (externalData != null) {
    checkLookupTablesKeyProblems(externalData);
    ICodeProblemsChecker codeChecker=LanguageProvider.getCurrentLanguage().getCodeChecker();
    if (mapperManager.isCheckSyntaxEnabled()) {
      List<ExternalMapperTable> extInputTables=new ArrayList<ExternalMapperTable>(externalData.getInputTables());
      List<ExternalMapperTable> extVarTables=new ArrayList<ExternalMapperTable>(externalData.getVarsTables());
      List<ExternalMapperTable> extOutputTables=new ArrayList<ExternalMapperTable>(externalData.getOutputTables());
      checkExpressionSyntaxProblems(extInputTables,codeChecker);
      checkExpressionSyntaxProblems(extVarTables,codeChecker);
      checkExpressionSyntaxProblems(extOutputTables,codeChecker);
      List<? extends IConnection> incomingConnections=new ArrayList<IConnection>(this.mapperManager.getAbstractMapComponent().getIncomingConnections());
      ExternalDataConverter converter=new ExternalDataConverter(mapperManager);
      MapperMain mapperMain=((MapperComponent)mapperManager.getAbstractMapComponent()).getMapperMain();
      ArrayList<IOConnection> inputsIOConnections=mapperMain.createIOConnections(incomingConnections);
      ArrayList<InputTable> inputTables=converter.prepareInputTables(inputsIOConnections,externalData);
      checkKeysProblems(inputTables);
      checkOutputTablesProblems(extOutputTables);
    }
  }
  return getProblems();
}