nus-yam/ex-repair huggingface dataset:
Program: 107718
Project: 107718
Buggy source:
/** 
 * Log all violations.
 * @param list The results from CodeNarc
 * @return Number of found violations
 */
private int logViolations(final Results list,final File base){
  int count=0;
  for (  final Object child : list.getChildren()) {
    final Results result=(Results)child;
    if (!result.isFile()) {
      count+=this.logViolations(result,base);
      continue;
    }
    for (    final Object vltn : result.getViolations()) {
      final Violation violation=(Violation)vltn;
      ++count;
      Logger.error(this,"String_Node_Str",base.getPath(),File.separator,result.getPath(),violation.getLineNumber(),violation.getMessage(),violation.getRule().getName());
    }
  }
  return count;
}

Fixed version (ground truth):
/** 
 * Log all violations.
 * @param list The results from CodeNarc
 * @param base Base directory.
 * @return Number of found violations
 */
private int logViolations(final Results list,final File base){
  int count=0;
  for (  final Object child : list.getChildren()) {
    final Results result=(Results)child;
    if (!result.isFile()) {
      count+=this.logViolations(result,base);
      continue;
    }
    for (    final Object vltn : result.getViolations()) {
      final Violation violation=(Violation)vltn;
      ++count;
      Logger.error(this,"String_Node_Str",base.getPath(),File.separator,result.getPath(),violation.getLineNumber(),violation.getMessage(),violation.getRule().getName());
    }
  }
  return count;
}
Program: 107719
Project: 107719
Buggy source:
@Override public boolean exclude(final String check,final String name){
  final String line=String.format("String_Node_Str",check,name);
  boolean exclude=false;
  for (  final String expr : this.exc) {
    if (line.matches(expr)) {
      exclude=true;
      break;
    }
  }
  return exclude;
}

Fixed version (ground truth):
@Override public boolean exclude(final String check,final String name){
  final String line=String.format("String_Node_Str",check,FilenameUtils.normalize(name));
  boolean exclude=false;
  for (  final String expr : this.exc) {
    if (line.matches(expr)) {
      exclude=true;
      break;
    }
  }
  return exclude;
}
Program: 107720
Project: 107720
Buggy source:
/** 
 * Start findbugs and return its output.
 * @param env Environment
 * @return Output of findbugs
 */
private String findbugs(final Environment env){
  final List<String> args=new LinkedList<String>();
  args.add("String_Node_Str");
  args.addAll(this.options(env));
  args.add(Wrap.class.getName());
  args.add(env.basedir().getPath());
  args.add(env.outdir().getPath());
  args.add(StringUtils.join(env.classpath(),"String_Node_Str"));
  final String command=StringUtils.join(args,"String_Node_Str");
  Logger.debug(this,"String_Node_Str",command);
  final ProcessBuilder builder=new ProcessBuilder(args);
  String report;
  try {
    final Process process=builder.start();
    if (process.waitFor() != 0) {
      Logger.warn(this,"String_Node_Str",command,IOUtils.toString(process.getErrorStream()));
    }
    report=IOUtils.toString(process.getInputStream());
  }
 catch (  IOException ex) {
    throw new IllegalStateException(ex);
  }
catch (  InterruptedException ex) {
    Thread.currentThread().interrupt();
    throw new IllegalStateException(ex);
  }
  Logger.debug(this,"String_Node_Str",report);
  return report;
}

Fixed version (ground truth):
/** 
 * Start findbugs and return its output.
 * @param env Environment
 * @return Output of findbugs
 */
private String findbugs(final Environment env){
  final List<String> args=new LinkedList<String>();
  args.add("String_Node_Str");
  args.addAll(this.options(env));
  args.add(Wrap.class.getName());
  args.add(env.basedir().getPath());
  args.add(env.outdir().getPath());
  args.add(StringUtils.join(env.classpath(),"String_Node_Str").replace("String_Node_Str","String_Node_Str"));
  final String command=StringUtils.join(args,"String_Node_Str");
  Logger.debug(this,"String_Node_Str",command);
  final ProcessBuilder builder=new ProcessBuilder(args);
  String report;
  try {
    final Process process=builder.start();
    if (process.waitFor() != 0) {
      Logger.warn(this,"String_Node_Str",command,IOUtils.toString(process.getErrorStream()));
    }
    report=IOUtils.toString(process.getInputStream());
  }
 catch (  IOException ex) {
    throw new IllegalStateException(ex);
  }
catch (  InterruptedException ex) {
    Thread.currentThread().interrupt();
    throw new IllegalStateException(ex);
  }
  Logger.debug(this,"String_Node_Str",report);
  return report;
}
Program: 107721
Project: 107721
Buggy source:
/** 
 * Java options.
 * @param env Environment
 * @return Options
 */
private List<String> options(final Environment env){
  final File jar=this.jar(Wrap.class);
  final List<String> opts=new LinkedList<String>();
  opts.add("String_Node_Str");
  opts.add(StringUtils.join(CollectionUtils.union(Arrays.asList(jar,this.jar(FindBugs2.class),this.jar(ClassFormatException.class),this.jar(DocumentException.class),this.jar(JaxenException.class),this.jar(ClassNode.class),this.jar(ClassVisitor.class),this.jar(When.class),this.jar(EmptyVisitor.class),this.jar(FormatterNumberFormatException.class)),env.classpath()),System.getProperty("String_Node_Str")));
  return opts;
}

Fixed version (ground truth):
/** 
 * Java options.
 * @param env Environment
 * @return Options
 */
private List<String> options(final Environment env){
  final File jar=this.jar(Wrap.class);
  final List<String> opts=new LinkedList<String>();
  opts.add("String_Node_Str");
  opts.add(StringUtils.join(CollectionUtils.union(Arrays.asList(jar,this.jar(FindBugs2.class),this.jar(ClassFormatException.class),this.jar(DocumentException.class),this.jar(JaxenException.class),this.jar(ClassNode.class),this.jar(ClassVisitor.class),this.jar(When.class),this.jar(EmptyVisitor.class),this.jar(FormatterNumberFormatException.class)),env.classpath()),System.getProperty("String_Node_Str")).replace("String_Node_Str","String_Node_Str"));
  return opts;
}
Program: 107722
Project: 107722
Buggy source:
/** 
 * Get address of our JAR or directory.
 * @param resource Name of resource
 * @return The file
 */
private File jar(final Class<?> resource){
  final String name=resource.getName().replace("String_Node_Str",System.getProperty("String_Node_Str"));
  final URL res=this.getClass().getResource(String.format("String_Node_Str",name));
  if (res == null) {
    throw new IllegalStateException(String.format("String_Node_Str",name));
  }
  final String path=res.getFile().replaceAll("String_Node_Str","String_Node_Str");
  File file;
  if ("String_Node_Str".equals(FilenameUtils.getExtension(path))) {
    file=new File(URI.create(path).getPath());
  }
 else {
    file=new File(path).getParentFile().getParentFile().getParentFile().getParentFile();
  }
  Logger.debug(this,"String_Node_Str",resource.getName(),file);
  return file;
}

Fixed version (ground truth):
/** 
 * Get address of our JAR or directory.
 * @param resource Name of resource
 * @return The file
 */
private File jar(final Class<?> resource){
  final String name=resource.getName().replace("String_Node_Str","String_Node_Str");
  final URL res=this.getClass().getResource(String.format("String_Node_Str",name));
  if (res == null) {
    throw new IllegalStateException(String.format("String_Node_Str",name));
  }
  final String path=res.getFile().replaceAll("String_Node_Str","String_Node_Str");
  File file;
  if ("String_Node_Str".equals(FilenameUtils.getExtension(path))) {
    file=new File(URI.create(path).getPath());
  }
 else {
    file=new File(path).getParentFile().getParentFile().getParentFile().getParentFile();
  }
  Logger.debug(this,"String_Node_Str",resource.getName(),file);
  return file;
}
Program: 107723
Project: 107723
Buggy source:
/** 
 * Check report for errors.
 * @param report The report
 * @throws ValidationException If it contains errors
 * @checkstyle RedundantThrows (3 lines)
 */
private void check(final String report) throws ValidationException {
  int total=0;
  for (  final String line : report.split("String_Node_Str")) {
    if (line.matches("String_Node_Str")) {
      Logger.warn(this,"String_Node_Str",line);
      ++total;
    }
  }
  if (total > 0) {
    throw new ValidationException("String_Node_Str",total);
  }
}

Fixed version (ground truth):
/** 
 * Check report for errors.
 * @param report The report
 * @throws ValidationException If it contains errors
 * @checkstyle RedundantThrows (3 lines)
 */
private void check(final String report) throws ValidationException {
  int total=0;
  for (  final String line : report.split(System.getProperty("String_Node_Str"))) {
    if (line.matches("String_Node_Str")) {
      Logger.warn(this,"String_Node_Str",line);
      ++total;
    }
  }
  if (total > 0) {
    throw new ValidationException("String_Node_Str",total);
  }
}
Program: 107724
Project: 107724
Buggy source:
/** 
 * Start findbugs and return its output.
 * @param env Environment
 * @return Output of findbugs
 */
private String findbugs(final Environment env){
  final List<String> args=new LinkedList<String>();
  args.add("String_Node_Str");
  args.addAll(this.options(env));
  args.add(Wrap.class.getName());
  args.add(env.basedir().getPath());
  args.add(env.outdir().getPath());
  args.add(StringUtils.join(env.classpath(),"String_Node_Str"));
  final String command=StringUtils.join(args,"String_Node_Str");
  Logger.debug(this,"String_Node_Str",command);
  final ProcessBuilder builder=new ProcessBuilder(args);
  String report;
  try {
    final Process process=builder.start();
    if (process.waitFor() != 0) {
      Logger.warn(this,"String_Node_Str",command,IOUtils.toString(process.getErrorStream()));
    }
    report=IOUtils.toString(process.getInputStream());
  }
 catch (  IOException ex) {
    throw new IllegalStateException(ex);
  }
catch (  InterruptedException ex) {
    Thread.currentThread().interrupt();
    throw new IllegalStateException(ex);
  }
  Logger.debug(this,"String_Node_Str",report);
  return report;
}

Fixed version (ground truth):
/** 
 * Start findbugs and return its output.
 * @param env Environment
 * @return Output of findbugs
 */
private String findbugs(final Environment env){
  final List<String> args=new LinkedList<String>();
  args.add("String_Node_Str");
  args.addAll(this.options(env));
  args.add(Wrap.class.getName());
  args.add(env.basedir().getPath());
  args.add(env.outdir().getPath());
  args.add(StringUtils.join(env.classpath(),"String_Node_Str").replace("String_Node_Str","String_Node_Str"));
  final String command=StringUtils.join(args,"String_Node_Str");
  Logger.debug(this,"String_Node_Str",command);
  final ProcessBuilder builder=new ProcessBuilder(args);
  String report;
  try {
    final Process process=builder.start();
    if (process.waitFor() != 0) {
      Logger.warn(this,"String_Node_Str",command,IOUtils.toString(process.getErrorStream()));
    }
    report=IOUtils.toString(process.getInputStream());
  }
 catch (  IOException ex) {
    throw new IllegalStateException(ex);
  }
catch (  InterruptedException ex) {
    Thread.currentThread().interrupt();
    throw new IllegalStateException(ex);
  }
  Logger.debug(this,"String_Node_Str",report);
  return report;
}
Program: 107725
Project: 107725
Buggy source:
/** 
 * Java options.
 * @param env Environment
 * @return Options
 */
private List<String> options(final Environment env){
  final File jar=this.jar(Wrap.class);
  final List<String> opts=new LinkedList<String>();
  opts.add("String_Node_Str");
  opts.add(StringUtils.join(CollectionUtils.union(Arrays.asList(jar,this.jar(FindBugs2.class),this.jar(ClassFormatException.class),this.jar(DocumentException.class),this.jar(JaxenException.class),this.jar(ClassNode.class),this.jar(ClassVisitor.class),this.jar(When.class),this.jar(EmptyVisitor.class),this.jar(FormatterNumberFormatException.class)),env.classpath()),System.getProperty("String_Node_Str")));
  return opts;
}

Fixed version (ground truth):
/** 
 * Java options.
 * @param env Environment
 * @return Options
 */
private List<String> options(final Environment env){
  final File jar=this.jar(Wrap.class);
  final List<String> opts=new LinkedList<String>();
  opts.add("String_Node_Str");
  opts.add(StringUtils.join(CollectionUtils.union(Arrays.asList(jar,this.jar(FindBugs2.class),this.jar(ClassFormatException.class),this.jar(DocumentException.class),this.jar(JaxenException.class),this.jar(ClassNode.class),this.jar(ClassVisitor.class),this.jar(When.class),this.jar(EmptyVisitor.class),this.jar(FormatterNumberFormatException.class)),env.classpath()),System.getProperty("String_Node_Str")).replace("String_Node_Str","String_Node_Str"));
  return opts;
}
Program: 107726
Project: 107726
Buggy source:
/** 
 * Get address of our JAR or directory.
 * @param resource Name of resource
 * @return The file
 */
private File jar(final Class<?> resource){
  final String name=resource.getName().replace("String_Node_Str",System.getProperty("String_Node_Str"));
  final URL res=this.getClass().getResource(String.format("String_Node_Str",name));
  if (res == null) {
    throw new IllegalStateException(String.format("String_Node_Str",name));
  }
  final String path=res.getFile().replaceAll("String_Node_Str","String_Node_Str");
  File file;
  if ("String_Node_Str".equals(FilenameUtils.getExtension(path))) {
    file=new File(URI.create(path).getPath());
  }
 else {
    file=new File(path).getParentFile().getParentFile().getParentFile().getParentFile();
  }
  Logger.debug(this,"String_Node_Str",resource.getName(),file);
  return file;
}

Fixed version (ground truth):
/** 
 * Get address of our JAR or directory.
 * @param resource Name of resource
 * @return The file
 */
private File jar(final Class<?> resource){
  final String name=resource.getName().replace("String_Node_Str","String_Node_Str");
  final URL res=this.getClass().getResource(String.format("String_Node_Str",name));
  if (res == null) {
    throw new IllegalStateException(String.format("String_Node_Str",name));
  }
  final String path=res.getFile().replaceAll("String_Node_Str","String_Node_Str");
  File file;
  if ("String_Node_Str".equals(FilenameUtils.getExtension(path))) {
    file=new File(URI.create(path).getPath());
  }
 else {
    file=new File(path).getParentFile().getParentFile().getParentFile().getParentFile();
  }
  Logger.debug(this,"String_Node_Str",resource.getName(),file);
  return file;
}
Program: 107727
Project: 107727
Buggy source:
/** 
 * Check report for errors.
 * @param report The report
 * @throws ValidationException If it contains errors
 * @checkstyle RedundantThrows (3 lines)
 */
private void check(final String report) throws ValidationException {
  int total=0;
  for (  final String line : report.split("String_Node_Str")) {
    if (line.matches("String_Node_Str")) {
      Logger.warn(this,"String_Node_Str",line);
      ++total;
    }
  }
  if (total > 0) {
    throw new ValidationException("String_Node_Str",total);
  }
}

Fixed version (ground truth):
/** 
 * Check report for errors.
 * @param report The report
 * @throws ValidationException If it contains errors
 * @checkstyle RedundantThrows (3 lines)
 */
private void check(final String report) throws ValidationException {
  int total=0;
  for (  final String line : report.split(System.getProperty("String_Node_Str"))) {
    if (line.matches("String_Node_Str")) {
      Logger.warn(this,"String_Node_Str",line);
      ++total;
    }
  }
  if (total > 0) {
    throw new ValidationException("String_Node_Str",total);
  }
}
Program: 107728
Project: 107728
Buggy source:
@Override public Data clone(){
  return new Data(data.clone(),header,columns,dictionary);
}

Fixed version (ground truth):
@Override public Data clone(){
  return new Data(data != null ? data.clone() : null,header,columns,dictionary);
}
Program: 107729
Project: 107729
Buggy source:
/** 
 * Returns an instance of this data manager, that is projected onto the given rowset
 * @param rowset
 * @return
 */
public DataManager getSubsetInstance(RowSet rowset){
  return new DataManagerSubset(this,dataAnalyzed.getSubsetInstance(rowset),dataGeneralized.getSubsetInstance(rowset),dataInput.getSubsetInstance(rowset),definition,shares,header,hierarchiesGeneralized,hierarchiesAnalyzed,generalizationLevelsMinimum,generalizationLevelsMaximum,aggregationInformation.getSubsetInstance());
}

Fixed version (ground truth):
/** 
 * Returns an instance of this data manager, that is projected onto the given rowset
 * @param rowset
 * @return
 */
public DataManager getSubsetInstance(RowSet rowset){
  return new DataManagerSubset(this,dataAnalyzed.getSubsetInstance(rowset),dataGeneralized.getSubsetInstance(rowset),dataInput.getSubsetInstance(rowset),definition,shares,header,hierarchiesGeneralized,hierarchiesAnalyzed,generalizationLevelsMinimum,generalizationLevelsMaximum,aggregationInformation.clone());
}
Program: 107730
Project: 107730
Buggy source:
/** 
 * Creates the settings.
 * @param delimiter the delimiter
 * @param quote the quote
 * @param escape the escape
 * @param linebreak the linebreak
 * @param options the options
 * @return the csv writer settings
 */
private CsvWriterSettings createSettings(final char delimiter,final char quote,final char escape,final char[] linebreak,final CSVOptions options){
  CsvFormat format=new CsvFormat();
  format.setDelimiter(delimiter);
  format.setQuote(quote);
  format.setQuoteEscape(escape);
  format.setLineSeparator(linebreak);
  format.setNormalizedNewline(CSVSyntax.getNormalizedLinebreak(linebreak));
  CsvWriterSettings settings=new CsvWriterSettings();
  settings.setEmptyValue("String_Node_Str");
  settings.setNullValue("String_Node_Str");
  settings.setFormat(format);
  options.apply(settings);
  return settings;
}

Fixed version (ground truth):
/** 
 * Creates the settings.
 * @param delimiter the delimiter
 * @param quote the quote
 * @param escape the escape
 * @param linebreak the linebreak
 * @param options the options
 * @return the csv writer settings
 */
private CsvWriterSettings createSettings(final char delimiter,final char quote,final char escape,final char[] linebreak,final CSVOptions options){
  CsvFormat format=new CsvFormat();
  format.setDelimiter(delimiter);
  format.setQuote(quote);
  format.setQuoteEscape(escape);
  format.setLineSeparator(linebreak);
  format.setNormalizedNewline(CSVSyntax.getNormalizedLinebreak(linebreak));
  CsvWriterSettings settings=new CsvWriterSettings();
  settings.setEmptyValue("String_Node_Str");
  settings.setNullValue("String_Node_Str");
  settings.setFormat(format);
  if (options != null) {
    options.apply(settings);
  }
  return settings;
}
Program: 107732
Project: 107732
Buggy source:
/** 
 * Resets the model.
 */
public void reset(){
  this.resetCriteria();
  this.resetAttributePair();
  this.inputConfig=new ModelConfiguration();
  this.outputConfig=null;
  this.output=null;
  this.result=null;
  if (auditTrail != null)   auditTrail.clear();
  this.selectedQuasiIdentifiers=null;
  this.selectedFeatures=null;
  this.selectedClasses=null;
  this.subsetOrigin=Resources.getMessage("String_Node_Str");
  this.groups=null;
  this.classificationModel=new ModelClassification();
  this.anonymizationConfiguration=null;
  this.heuristicSearchStepLimit=null;
  this.heuristicSearchThreshold=null;
  this.heuristicSearchTimeLimit=null;
  this.optimizationStatistics=null;
  this.localRecodingModel=null;
}

Fixed version (ground truth):
/** 
 * Resets the model.
 */
public void reset(){
  this.resetCriteria();
  this.resetAttributePair();
  this.inputConfig=new ModelConfiguration();
  this.outputConfig=null;
  this.output=null;
  this.result=null;
  if (auditTrail != null)   auditTrail.clear();
  this.selectedQuasiIdentifiers=null;
  this.selectedFeatures=null;
  this.selectedClasses=null;
  this.subsetOrigin=Resources.getMessage("String_Node_Str");
  this.groups=null;
  this.classificationModel=new ModelClassification();
  this.anonymizationConfiguration=null;
  this.heuristicSearchStepLimit=null;
  this.heuristicSearchThreshold=null;
  this.heuristicSearchTimeLimit=null;
  this.optimizationStatistics=null;
  this.localRecodingModel=null;
  this.selectedClassValue=null;
  this.selectedAttribute=null;
}
Program: 107734
Project: 107734
Buggy source:
/** 
 * Converts a score into a relative value in percent.
 * @param infoLoss
 * @return
 */
private double asRelativeValue(final InformationLoss<?> infoLoss){
  if (result == null)   return 0;
  return infoLoss.relativeTo(result.getLattice().getLowestScore(),result.getLattice().getHighestScore()) * 100d;
}

Fixed version (ground truth):
/** 
 * Converts a score into a relative value in percent.
 * @param infoLoss
 * @return
 */
private double asRelativeValue(final InformationLoss<?> infoLoss){
  if (result == null || model == null)   return 0;
  final ARXLattice lattice=model.getProcessStatistics().getNumberOfSteps() > 1 ? model.getProcessStatistics().getLattice() : result.getLattice();
  return infoLoss.relativeTo(lattice.getLowestScore(),lattice.getHighestScore()) * 100d;
}
Program: 107735
Project: 107735
Buggy source:
@Override public void reset(){
  table.setRedraw(false);
  for (  final TableItem i : table.getItems()) {
    i.dispose();
  }
  TableItem c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,"String_Node_Str");
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,"String_Node_Str");
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,"String_Node_Str");
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,"String_Node_Str");
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,"String_Node_Str");
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,"String_Node_Str");
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,"String_Node_Str");
  for (  final TableColumn col : table.getColumns()) {
    col.pack();
  }
  table.setRedraw(true);
  table.redraw();
  SWTUtil.disable(root);
}

Fixed version (ground truth):
@Override public void reset(){
  clearTable();
  SWTUtil.disable(root);
  result=null;
  model=null;
}
Program: 107737
Project: 107737
Buggy source:
/** 
 * Creates a new instance.
 * @param parent
 * @param controller
 */
public ViewProperties(final Composite parent,final Controller controller){
  controller.addListener(ModelPart.RESULT,this);
  controller.addListener(ModelPart.SELECTED_NODE,this);
  this.controller=controller;
  ComponentTitledBorder border=new ComponentTitledBorder(parent,controller,Resources.getMessage("String_Node_Str"),"String_Node_Str");
  root=new Composite(border.getControl(),SWT.NONE);
  border.setChild(root);
  border.setLayoutData(SWTUtil.createFillGridData());
  final GridLayout groupNodeGridLayout=new GridLayout();
  groupNodeGridLayout.numColumns=1;
  root.setLayout(groupNodeGridLayout);
  table=SWTUtil.createTable(root,SWT.BORDER | SWT.FULL_SELECTION);
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  final GridData gdata=SWTUtil.createFillGridData();
  table.setLayoutData(gdata);
  table.setMenu(new ClipboardHandlerTable(table).getMenu());
  TableColumn c=new TableColumn(table,SWT.NONE);
  c.setText(Resources.getMessage("String_Node_Str"));
  c=new TableColumn(table,SWT.NONE);
  c.setText(Resources.getMessage("String_Node_Str"));
  SWTUtil.createGenericTooltip(table);
  for (  final TableColumn col : table.getColumns()) {
    col.pack();
  }
  reset();
}

Fixed version (ground truth):
/** 
 * Creates a new instance.
 * @param parent
 * @param controller
 */
public ViewProperties(final Composite parent,final Controller controller){
  controller.addListener(ModelPart.RESULT,this);
  controller.addListener(ModelPart.MODEL,this);
  controller.addListener(ModelPart.SELECTED_NODE,this);
  this.controller=controller;
  ComponentTitledBorder border=new ComponentTitledBorder(parent,controller,Resources.getMessage("String_Node_Str"),"String_Node_Str");
  root=new Composite(border.getControl(),SWT.NONE);
  border.setChild(root);
  border.setLayoutData(SWTUtil.createFillGridData());
  final GridLayout groupNodeGridLayout=new GridLayout();
  groupNodeGridLayout.numColumns=1;
  root.setLayout(groupNodeGridLayout);
  table=SWTUtil.createTable(root,SWT.BORDER | SWT.FULL_SELECTION);
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  final GridData gdata=SWTUtil.createFillGridData();
  table.setLayoutData(gdata);
  table.setMenu(new ClipboardHandlerTable(table).getMenu());
  TableColumn c=new TableColumn(table,SWT.NONE);
  c.setText(Resources.getMessage("String_Node_Str"));
  c=new TableColumn(table,SWT.NONE);
  c.setText(Resources.getMessage("String_Node_Str"));
  SWTUtil.createGenericTooltip(table);
  for (  final TableColumn col : table.getColumns()) {
    col.pack();
  }
  clearTable();
}
Program: 107738
Project: 107738
Buggy source:
/** 
 * Converts an information loss into a relative value in percent TODO: Code duplicate from NodePropertiesView.
 * @param infoLoss
 * @param result
 * @return
 */
protected double asRelativeValue(final InformationLoss<?> infoLoss,final ARXResult result){
  return infoLoss.relativeTo(model.getResult().getLattice().getLowestScore(),model.getResult().getLattice().getHighestScore()) * 100d;
}

Fixed version (ground truth):
/** 
 * Converts an information loss into a relative value in percent TODO: Code duplicate from NodePropertiesView.
 * @param infoLoss
 * @param result
 * @return
 */
protected double asRelativeValue(final InformationLoss<?> infoLoss,final ARXResult result){
  ARXLattice lattice=model.getProcessStatistics().getNumberOfSteps() > 1 ? model.getProcessStatistics().getLattice() : result.getLattice();
  return infoLoss.relativeTo(lattice.getLowestScore(),lattice.getHighestScore()) * 100d;
}
Program: 107739
Project: 107739
Buggy source:
/** 
 * Returns whether the function is valid
 * @param function
 * @return
 */
public boolean isValidScalingFunction(String function){
  if (function == null || function.equals("String_Node_Str")) {
    return true;
  }
  Expression expression=null;
  try {
    expression=new ExpressionBuilder(function).variable("String_Node_Str").build();
  }
 catch (  Exception e) {
    return false;
  }
  if (expression == null || !expression.validate(false).isValid()) {
    return false;
  }
  if (expression.getVariableNames().size() != 1 || !expression.getVariableNames().contains("String_Node_Str")) {
    return false;
  }
  return true;
}

Fixed version (ground truth):
/** 
 * Returns whether the function is valid
 * @param function
 * @return
 */
public boolean isValidScalingFunction(String function){
  if (function == null || function.equals("String_Node_Str")) {
    return true;
  }
  try {
    getExpression(function);
  }
 catch (  IllegalArgumentException e) {
    return false;
  }
  return true;
}
Program: 107740
Project: 107740
Buggy source:
/** 
 * Returns a scaling function
 * @param attribute
 * @return
 */
public Expression getScalingExpression(String attribute){
  return this.expressions.get(attribute);
}

Fixed version (ground truth):
/** 
 * Returns a scaling function
 * @param attribute
 * @return
 */
public Expression getScalingExpression(String attribute){
  if (attribute == null) {
    return null;
  }
  String function=this.functions.get(attribute);
  if (function == null || function.equals("String_Node_Str")) {
    return null;
  }
  return getExpression(function);
}
Program: 107741
Project: 107741
Buggy source:
/** 
 * Sets a scaling function
 * @param attribute
 * @param function
 */
public ARXFeatureScaling setScalingFunction(String attribute,String function){
  if (attribute == null) {
    return this;
  }
  if (function == null || function.equals("String_Node_Str")) {
    this.expressions.remove(attribute);
    this.functions.remove(attribute);
    return this;
  }
  Expression expression=null;
  try {
    expression=new ExpressionBuilder(function).variable("String_Node_Str").build();
  }
 catch (  Exception e) {
    throw new IllegalArgumentException(e.getMessage());
  }
  if (expression == null || !expression.validate(false).isValid()) {
    throw new IllegalArgumentException("String_Node_Str" + function);
  }
  if (expression.getVariableNames().size() != 1 || !expression.getVariableNames().contains("String_Node_Str")) {
    throw new IllegalArgumentException("String_Node_Str" + function);
  }
  this.expressions.put(attribute,expression);
  this.functions.put(attribute,function);
  return this;
}

Fixed version (ground truth):
/** 
 * Sets a scaling function
 * @param attribute
 * @param function
 */
public ARXFeatureScaling setScalingFunction(String attribute,String function){
  if (attribute == null) {
    return this;
  }
  if (function == null || function.equals("String_Node_Str")) {
    this.functions.remove(attribute);
    return this;
  }
  getExpression(function);
  this.functions.put(attribute,function);
  return this;
}
Program: 107742
Project: 107742
Buggy source:
@Override protected void doReset(){
  if (this.manager != null) {
    this.manager.stop();
  }
  performanceTableOverview.setRedraw(false);
  for (  final TableItem i : performanceTableOverview.getItems()) {
    i.dispose();
  }
  performanceTableOverview.setRedraw(true);
  performanceTableSensitivitySpecificity.setRedraw(false);
  for (  final TableItem i : performanceTableSensitivitySpecificity.getItems()) {
    i.dispose();
  }
  performanceTableSensitivitySpecificity.setRedraw(true);
  rocTable.setRedraw(false);
  for (  final TableItem i : rocTable.getItems()) {
    i.dispose();
  }
  rocTable.setRedraw(true);
  if (rocCombo != null && rocCombo.getItemCount() != 0)   rocCombo.select(0);
  if (rocCurves != null) {
    rocCurves.clear();
  }
  if (originalRocCurves != null) {
    originalRocCurves.clear();
  }
  if (zerorRocCurves != null) {
    zerorRocCurves.clear();
  }
  resetChart();
  setStatusEmpty();
}

Fixed version (ground truth):
@Override protected void doReset(){
  if (this.manager != null) {
    this.manager.stop();
  }
  performanceTableOverview.setRedraw(false);
  for (  final TableItem i : performanceTableOverview.getItems()) {
    i.dispose();
  }
  performanceTableOverview.setRedraw(true);
  performanceTableSensitivitySpecificity.setRedraw(false);
  for (  final TableItem i : performanceTableSensitivitySpecificity.getItems()) {
    i.dispose();
  }
  performanceTableSensitivitySpecificity.setRedraw(true);
  rocTable.setRedraw(false);
  for (  final TableItem i : rocTable.getItems()) {
    i.dispose();
  }
  rocTable.setRedraw(true);
  if (rocCombo != null && rocCombo.getItemCount() != 0) {
    rocCombo.removeAll();
  }
  if (rocCurves != null) {
    rocCurves.clear();
  }
  if (originalRocCurves != null) {
    originalRocCurves.clear();
  }
  if (zerorRocCurves != null) {
    zerorRocCurves.clear();
  }
  resetChart();
  setStatusEmpty();
}
Program: 107745
Project: 107745
Buggy source:
@Override public void run(){
  if (!table.isEnabled()) {
    SWTUtil.enable(table);
  }
  table.setRedraw(false);
  for (  final TableItem i : table.getItems()) {
    i.dispose();
  }
  list.clear();
  final ARXLattice l=getModel().getProcessStatistics().getNumberOfSteps() > 1 ? getModel().getProcessStatistics().getLattice() : result.getLattice();
  for (  final ARXNode[] level : l.getLevels()) {
    for (    final ARXNode node : level) {
      if (filter.isAllowed(result.getLattice(),node)) {
        list.add(node);
      }
    }
  }
  Collections.sort(list,new Comparator<ARXNode>(){
    @Override public int compare(    final ARXNode arg0,    final ARXNode arg1){
      return arg0.getHighestScore().compareTo(arg1.getHighestScore());
    }
  }
);
  if (list.size() > getModel().getMaxNodesInViewer()) {
    list.clear();
  }
  if (listener != null) {
    table.removeListener(SWT.SetData,listener);
  }
  listener=new Listener(){
    @Override public void handleEvent(    final Event event){
      final TableItem item=(TableItem)event.item;
      final int index=table.indexOf(item);
      createItem(item,index);
    }
  }
;
  table.addListener(SWT.SetData,listener);
  table.setItemCount(list.size());
  table.setRedraw(true);
}

Fixed version (ground truth):
@Override public void run(){
  if (!table.isEnabled()) {
    SWTUtil.enable(table);
  }
  table.setRedraw(false);
  for (  final TableItem i : table.getItems()) {
    i.dispose();
  }
  list.clear();
  final ARXLattice lattice=getModel().getProcessStatistics().getNumberOfSteps() > 1 ? getModel().getProcessStatistics().getLattice() : result.getLattice();
  for (  final ARXNode[] level : lattice.getLevels()) {
    for (    final ARXNode node : level) {
      if (filter.isAllowed(lattice,node)) {
        list.add(node);
      }
    }
  }
  Collections.sort(list,new Comparator<ARXNode>(){
    @Override public int compare(    final ARXNode arg0,    final ARXNode arg1){
      return arg0.getHighestScore().compareTo(arg1.getHighestScore());
    }
  }
);
  if (list.size() > getModel().getMaxNodesInViewer()) {
    list.clear();
  }
  if (listener != null) {
    table.removeListener(SWT.SetData,listener);
  }
  listener=new Listener(){
    @Override public void handleEvent(    final Event event){
      final TableItem item=(TableItem)event.item;
      final int index=table.indexOf(item);
      createItem(item,index);
    }
  }
;
  table.addListener(SWT.SetData,listener);
  table.setItemCount(list.size());
  table.setRedraw(true);
}
Program: 107746
Project: 107746
Buggy source:
@Override protected void eventFilterChanged(ARXResult result,ModelNodeFilter filter){
  if (getModel() != null && result != null) {
    updateFilter(result.getLattice(),filter);
  }
 else {
    reset();
  }
}

Fixed version (ground truth):
@Override protected void eventFilterChanged(ARXResult result,ModelNodeFilter filter){
  if (getModel() != null && result != null) {
    ARXLattice lattice=getModel().getProcessStatistics().getNumberOfSteps() > 1 ? getModel().getProcessStatistics().getLattice() : result.getLattice();
    updateFilter(lattice,filter);
  }
 else {
    reset();
  }
}
Program: 107747
Project: 107747
Buggy source:
/** 
 * Resets the filter to display everything
 * @param handle
 * @param definition
 */
public void reset(final DataHandle handle,final DataDefinition definition){
  if (handle == null || definition == null) {
    return;
  }
  List<String> attributes=new ArrayList<String>();
  attributes.addAll(definition.getQuasiIdentifiersWithGeneralization());
  Collections.sort(attributes,new Comparator<String>(){
    public int compare(    String arg0,    String arg1){
      return handle.getColumnIndexOf(arg0) - handle.getColumnIndexOf(arg1);
    }
  }
);
  int dimension=0;
  for (  String attribute : attributes) {
    int attributeMin=definition.getMinimumGeneralization(attribute);
    int attributeMax=definition.getMaximumGeneralization(attribute);
    for (int i=attributeMin; i <= attributeMax; i++) {
      this.allowGeneralization(dimension,i);
    }
    dimension++;
  }
  this.allowAllInformationLoss();
  this.allowAnonymous();
  this.allowNonAnonymous();
  this.allowUnknown();
}

Fixed version (ground truth):
/** 
 * Resets the filter to display everything
 * @param handle
 * @param definition
 */
public void reset(final DataHandle handle,final DataDefinition definition){
  if (handle == null || definition == null) {
    return;
  }
  List<String> attributes=new ArrayList<String>();
  attributes.addAll(definition.getQuasiIdentifiersWithGeneralization());
  attributes.addAll(definition.getQuasiIdentifiersWithClusteringAndMicroaggregation());
  Collections.sort(attributes,new Comparator<String>(){
    public int compare(    String arg0,    String arg1){
      return handle.getColumnIndexOf(arg0) - handle.getColumnIndexOf(arg1);
    }
  }
);
  int dimension=0;
  for (  String attribute : attributes) {
    int attributeMin=definition.getMinimumGeneralization(attribute);
    int attributeMax=definition.getMaximumGeneralization(attribute);
    for (int i=attributeMin; i <= attributeMax; i++) {
      this.allowGeneralization(dimension,i);
    }
    dimension++;
  }
  this.allowAllInformationLoss();
  this.allowAnonymous();
  this.allowNonAnonymous();
  this.allowUnknown();
}
Program: 107749
Project: 107749
Buggy source:
@Override public void keyReleased(KeyEvent arg0){
  updateCombo(attribute,combo,defaultColor);
}

Fixed version (ground truth):
@Override public void keyReleased(KeyEvent arg0){
  updateCombo(attribute,combo,defaultColor);
  updateFunction(attribute,combo);
}
Program: 107750
Project: 107750
Buggy source:
/** 
 * Entry point.
 * @param args the arguments
 * @throws ParseException
 * @throws IOException
 */
public static void main(String[] args) throws ParseException, IOException {
  String[] features=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
  String clazz="String_Node_Str";
  Data data=createData("String_Node_Str");
  data.getDefinition().setAttributeType("String_Node_Str",AttributeType.INSENSITIVE_ATTRIBUTE);
  data.getDefinition().setDataType("String_Node_Str",DataType.INTEGER);
  ARXAnonymizer anonymizer=new ARXAnonymizer();
  ARXConfiguration config=ARXConfiguration.create();
  config.addPrivacyModel(new KAnonymity(5));
  config.setSuppressionLimit(1d);
  config.setQualityModel(Metric.createClassificationMetric());
  ARXResult result=anonymizer.anonymize(data,config);
  System.out.println("String_Node_Str");
  System.out.println(result.getOutput().getStatistics().getClassificationPerformance(features,clazz,ARXClassificationConfiguration.createLogisticRegression()));
  System.out.println("String_Node_Str");
  System.out.println(result.getOutput().getStatistics().getClassificationPerformance(features,clazz,ARXClassificationConfiguration.createNaiveBayes()));
  System.out.println("String_Node_Str");
  System.out.println(result.getOutput().getStatistics().getClassificationPerformance(features,clazz,ARXClassificationConfiguration.createRandomForest()));
}

Fixed version (ground truth):
/** 
 * Entry point.
 * @param args the arguments
 * @throws ParseException
 * @throws IOException
 */
public static void main(String[] args) throws ParseException, IOException {
  String[] features=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
  String clazz="String_Node_Str";
  Data data=createData("String_Node_Str");
  data.getDefinition().setAttributeType("String_Node_Str",AttributeType.INSENSITIVE_ATTRIBUTE);
  data.getDefinition().setDataType("String_Node_Str",DataType.INTEGER);
  data.getDefinition().setResponseVariable("String_Node_Str",true);
  ARXAnonymizer anonymizer=new ARXAnonymizer();
  ARXConfiguration config=ARXConfiguration.create();
  config.addPrivacyModel(new KAnonymity(5));
  config.setSuppressionLimit(1d);
  config.setQualityModel(Metric.createClassificationMetric());
  ARXResult result=anonymizer.anonymize(data,config);
  System.out.println("String_Node_Str");
  System.out.println(result.getOutput().getStatistics().getClassificationPerformance(features,clazz,ARXClassificationConfiguration.createLogisticRegression()));
  System.out.println("String_Node_Str");
  System.out.println(result.getOutput().getStatistics().getClassificationPerformance(features,clazz,ARXClassificationConfiguration.createNaiveBayes()));
  System.out.println("String_Node_Str");
  System.out.println(result.getOutput().getStatistics().getClassificationPerformance(features,clazz,ARXClassificationConfiguration.createRandomForest()));
}
Program: 107751
Project: 107751
Buggy source:
/** 
 * Creates a new instance
 * @param specification
 * @param config
 */
public MultiClassRandomForest(ClassificationDataSpecification specification,ClassificationConfigurationRandomForest config){
  this.config=config;
  this.specification=specification;
}

Fixed version (ground truth):
/** 
 * Creates a new instance
 * @param specification
 * @param config
 */
public MultiClassRandomForest(ClassificationDataSpecification specification,ClassificationConfigurationRandomForest config){
  this.config=config;
  this.specification=specification;
  if (config.getNumberOfVariablesToSplit() == ClassificationConfigurationRandomForest.DEFAULT_NUMBER_OF_VARIABLES_TO_SPLIT) {
    this.numberOfVariablesToSplit=(int)Math.floor(Math.sqrt(this.specification.featureIndices.length));
  }
 else {
    this.numberOfVariablesToSplit=config.getNumberOfVariablesToSplit();
  }
}
Program: 107752
Project: 107752
Buggy source:
@Override public void close(){
  SplitRule rule=null;
switch (config.getSplitRule()) {
case CLASSIFICATION_ERROR:
    rule=SplitRule.CLASSIFICATION_ERROR;
  break;
case ENTROPY:
rule=SplitRule.ENTROPY;
break;
case GINI:
rule=SplitRule.GINI;
break;
default :
throw new IllegalStateException("String_Node_Str");
}
if (config.getNumberOfVariablesToSplit() == ClassificationConfigurationRandomForest.DEFAULT_NUMBER_OF_VARIABLES_TO_SPLIT) {
config.setNumberOfVariablesToSplit((int)Math.floor(Math.sqrt(features.size())));
}
rm=new RandomForest((Attribute[])null,features.toArray(new double[features.size()][]),classes.toArray(),config.getNumberOfTrees(),config.getMaximumNumberOfLeafNodes(),config.getMinimumSizeOfLeafNodes(),config.getNumberOfVariablesToSplit(),config.getSubsample(),rule);
features.clear();
classes.clear();
features=new ArrayList<double[]>();
classes=new IntArrayList();
}

Fixed version (ground truth):
@Override public void close(){
  SplitRule rule=null;
switch (config.getSplitRule()) {
case CLASSIFICATION_ERROR:
    rule=SplitRule.CLASSIFICATION_ERROR;
  break;
case ENTROPY:
rule=SplitRule.ENTROPY;
break;
case GINI:
rule=SplitRule.GINI;
break;
default :
throw new IllegalStateException("String_Node_Str");
}
rm=new RandomForest((Attribute[])null,features.toArray(new double[features.size()][]),classes.toArray(),config.getNumberOfTrees(),config.getMaximumNumberOfLeafNodes(),config.getMinimumSizeOfLeafNodes(),this.numberOfVariablesToSplit,config.getSubsample(),rule);
features.clear();
classes.clear();
features=new ArrayList<double[]>();
classes=new IntArrayList();
}
Program: 107753
Project: 107753
Buggy source:
/** 
 * @return the highest risk
 */
public double getHighestRisk(){
  return highestRisk;
}

Fixed version (ground truth):
/** 
 * Returns the threshold set by the user. Please consider the effective threshold,  i.e. the threshold that is actually being used by the software.
 * @return the highest risk
 */
public double getHighestRisk(){
  return highestRisk;
}
Program: 107754
Project: 107754
Buggy source:
/** 
 * Creates a new instance of a relaxed variant of this criterion with average risk,  highest risk and the fraction of records with a risk exceeding the highest risk
 * @param averageRisk
 * @param highestRisk Please note: due to rounding issues, this risk may be exceeded by up to 1%
 * @param recordsAtRisk
 */
public AverageReidentificationRisk(double averageRisk,double highestRisk,double recordsAtRisk){
  super(true,true,averageRisk);
  if (highestRisk <= 0d || highestRisk > 1d) {
    throw new IllegalArgumentException("String_Node_Str" + highestRisk);
  }
  if (recordsAtRisk < 0d || highestRisk > 1d) {
    throw new IllegalArgumentException("String_Node_Str" + recordsAtRisk);
  }
  this.highestRisk=highestRisk;
  this.recordsAtRisk=recordsAtRisk;
  this.smallestSize=getSizeThreshold(highestRisk);
}

Fixed version (ground truth):
/** 
 * Creates a new instance of a relaxed variant of this model with average risk,  highest risk and the fraction of records with a risk exceeding the highest risk. Note: Due to rounding issues, the highest risk may be exceeded by up to 1%. To see the threshold that is actually being used, invoke <code>getEffectiveHighestRisk()</code>
 * @param averageRisk
 * @param highestRisk 
 * @param recordsAtRisk
 */
public AverageReidentificationRisk(double averageRisk,double highestRisk,double recordsAtRisk){
  super(true,true,averageRisk);
  if (highestRisk <= 0d || highestRisk > 1d) {
    throw new IllegalArgumentException("String_Node_Str" + highestRisk);
  }
  if (recordsAtRisk < 0d || highestRisk > 1d) {
    throw new IllegalArgumentException("String_Node_Str" + recordsAtRisk);
  }
  this.highestRisk=highestRisk;
  this.recordsAtRisk=recordsAtRisk;
  this.smallestSize=ParameterTranslation.getSizeThreshold(highestRisk);
}
Program: 107755
Project: 107755
Buggy source:
@Override public String toString(){
  if (highestRisk == null) {
    return "String_Node_Str" + getRiskThreshold() + "String_Node_Str";
  }
 else {
    return "String_Node_Str" + getRiskThreshold() + "String_Node_Str"+ highestRisk+ "String_Node_Str"+ recordsAtRisk+ "String_Node_Str";
  }
}

Fixed version (ground truth):
@Override public String toString(){
  if (highestRisk == null) {
    return "String_Node_Str" + getRiskThreshold() + "String_Node_Str";
  }
 else {
    return "String_Node_Str" + getRiskThreshold() + "String_Node_Str"+ getEffectiveHighestRisk()+ "String_Node_Str"+ highestRisk+ "String_Node_Str"+ recordsAtRisk+ "String_Node_Str";
  }
}
Program: 107756
Project: 107756
Buggy source:
@Override public ElementData render(){
  ElementData result=new ElementData("String_Node_Str");
  result.addProperty("String_Node_Str",this.getRiskThreshold());
  if (highestRisk != null) {
    result.addProperty("String_Node_Str",highestRisk);
  }
  if (recordsAtRisk != null) {
    result.addProperty("String_Node_Str",recordsAtRisk);
  }
  return result;
}

Fixed version (ground truth):
@Override public ElementData render(){
  ElementData result=new ElementData("String_Node_Str");
  result.addProperty("String_Node_Str",this.getRiskThreshold());
  if (highestRisk != null) {
    result.addProperty("String_Node_Str",highestRisk);
    result.addProperty("String_Node_Str",getEffectiveHighestRisk());
  }
  if (recordsAtRisk != null) {
    result.addProperty("String_Node_Str",recordsAtRisk);
  }
  return result;
}
Program: 107757
Project: 107757
Buggy source:
/** 
 * Returns a minimal class size for the given risk threshold TODO: There are similar issues in multiple privacy models, e.g. in the game-theoretic model TODO: This should be fixed once and for all
 * @param threshold
 * @return
 */
private Integer getSizeThreshold(double riskThreshold){
  double size=1d / riskThreshold;
  double floor=Math.floor(size);
  if ((1d / floor) - (1d / size) >= 0.01d * riskThreshold) {
    floor+=1d;
  }
  return (int)floor;
}

Fixed version (ground truth):
/** 
 * Returns a minimal class size for the given risk threshold
 * @param threshold
 * @return
 */
public static int getSizeThreshold(double riskThreshold){
  if (riskThreshold < 0d || riskThreshold > 1d) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  if (riskThreshold == 0d) {
    return Integer.MAX_VALUE;
  }
  double size=1d / riskThreshold;
  double floor=Math.floor(size);
  if ((1d / floor) - (1d / size) >= RELATIVE_THRESHOLD_PRECISION * riskThreshold) {
    floor+=1d;
  }
  return (int)floor;
}
Program: 107758
Project: 107758
Buggy source:
/** 
 * Returns a risk summary, using wildcard matching
 * @param threshold Acceptable highest probability of re-identification for a single record
 * @param wildcard String to interpret as a wildcard
 * @return
 */
public RiskModelSampleWildcard getSampleBasedRiskSummaryWildcard(double threshold,String wildcard){
  progress.value=0;
  return new RiskModelSampleWildcard(handle,identifiers,threshold,wildcard,stop,progress);
}

Fixed version (ground truth):
/** 
 * Returns a risk summary, using wildcard matching
 * @param threshold Acceptable highest probability of re-identification for a single record. Please note that thisthreshold may be exceeded by up to 1% due to rounding issues.
 * @param wildcard String to interpret as a wildcard
 * @return
 */
public RiskModelSampleWildcard getSampleBasedRiskSummaryWildcard(double threshold,String wildcard){
  progress.value=0;
  return new RiskModelSampleWildcard(handle,identifiers,threshold,wildcard,stop,progress);
}