nus-yam/ex-repair huggingface dataset:
Program: 108044
Project: 108044
Buggy source:
@Override public DataDefinition clone(){
  final DataDefinition d=new DataDefinition();
  for (  final String attr : attributeTypes.keySet()) {
    d.attributeTypes.put(attr,attributeTypes.get(attr).clone());
  }
  for (  final String attr : dataTypes.keySet()) {
    d.dataTypes.put(attr,dataTypes.get(attr).clone());
  }
  for (  final String attr : hierarchies.keySet()) {
    d.hierarchies.put(attr,hierarchies.get(attr));
  }
  for (  final String attr : functions.keySet()) {
    d.functions.put(attr,functions.get(attr).clone());
  }
  for (  final String attr : minGeneralization.keySet()) {
    d.minGeneralization.put(attr,minGeneralization.get(attr));
  }
  for (  final String attr : maxGeneralization.keySet()) {
    d.maxGeneralization.put(attr,maxGeneralization.get(attr));
  }
  for (  final String attr : builders.keySet()) {
    d.builders.put(attr,builders.get(attr));
  }
  d.setLocked(this.isLocked());
  return d;
}

Fixed version (ground truth):
@Override public DataDefinition clone(){
  final DataDefinition d=new DataDefinition();
  for (  final String attr : attributeTypes.keySet()) {
    d.attributeTypes.put(attr,attributeTypes.get(attr).clone());
  }
  for (  final String attr : dataTypes.keySet()) {
    d.dataTypes.put(attr,dataTypes.get(attr).clone());
  }
  for (  final String attr : hierarchies.keySet()) {
    d.hierarchies.put(attr,hierarchies.get(attr));
  }
  for (  final String attr : functions.keySet()) {
    d.functions.put(attr,functions.get(attr) == null ? null : functions.get(attr).clone());
  }
  for (  final String attr : minGeneralization.keySet()) {
    d.minGeneralization.put(attr,minGeneralization.get(attr));
  }
  for (  final String attr : maxGeneralization.keySet()) {
    d.maxGeneralization.put(attr,maxGeneralization.get(attr));
  }
  for (  final String attr : builders.keySet()) {
    d.builders.put(attr,builders.get(attr));
  }
  d.setLocked(this.isLocked());
  return d;
}
Program: 108045
Project: 108045
Buggy source:
/** 
 * Clones this config.
 * @return
 */
public ARXConfiguration clone(){
  ARXConfiguration result=new ARXConfiguration();
  result.practicalMonotonicity=this.practicalMonotonicity;
  result.relMaxOutliers=this.relMaxOutliers;
  result.absMaxOutliers=this.absMaxOutliers;
  result.aCriteria=this.aCriteria.clone();
  result.criteria=new HashSet<PrivacyCriterion>(this.criteria);
  result.requirements=this.requirements;
  result.metric=this.metric;
  result.snapshotLength=this.snapshotLength;
  result.suppressionString=this.suppressionString;
  result.suppressionAlwaysEnabled=this.suppressionAlwaysEnabled;
  result.suppressedAttributeTypes=this.suppressedAttributeTypes;
  result.heuristicSearchForSampleBasedCriteria=this.heuristicSearchForSampleBasedCriteria;
  if (this.attributeWeights != null) {
    result.attributeWeights=new HashMap<String,Double>(this.attributeWeights);
  }
 else {
    result.attributeWeights=null;
  }
  return result;
}

Fixed version (ground truth):
/** 
 * Clones this config.
 * @return
 */
public ARXConfiguration clone(){
  ARXConfiguration result=new ARXConfiguration();
  result.practicalMonotonicity=this.practicalMonotonicity;
  result.relMaxOutliers=this.relMaxOutliers;
  result.absMaxOutliers=this.absMaxOutliers;
  result.aCriteria=this.aCriteria.clone();
  result.criteria=new HashSet<PrivacyCriterion>(this.criteria);
  result.requirements=this.requirements;
  result.metric=this.metric;
  result.snapshotLength=this.snapshotLength;
  result.suppressionString=this.suppressionString;
  result.suppressionAlwaysEnabled=this.suppressionAlwaysEnabled;
  result.suppressedAttributeTypes=this.suppressedAttributeTypes;
  result.heuristicSearchForSampleBasedCriteria=this.heuristicSearchForSampleBasedCriteria;
  result.heuristicSearchEnabled=this.heuristicSearchEnabled;
  result.heuristicSearchThreshold=this.heuristicSearchThreshold;
  result.heuristicSearchTimeLimit=this.heuristicSearchTimeLimit;
  result.utilityBasedMicroaggregation=this.utilityBasedMicroaggregation;
  if (this.attributeWeights != null) {
    result.attributeWeights=new HashMap<String,Double>(this.attributeWeights);
  }
 else {
    result.attributeWeights=null;
  }
  return result;
}
Program: 108047
Project: 108047
Buggy source:
/** 
 * Update function
 */
private void updateFunction(){
  if (model != null && model.getInputConfig() != null && model.getInputDefinition() != null) {
    DataScale scale=model.getInputDefinition().getDataType(attribute).getDescription().getScale();
    List<String> functions=new ArrayList<String>();
    for (    MicroAggregationFunctionDescription function : FUNCTIONS) {
      if (scale.provides(function.getRequiredScale())) {
        functions.add(function.getLabel());
      }
    }
    this.cmbFunction.setItems(functions.toArray(new String[functions.size()]));
    int index=functions.indexOf(model.getInputConfig().getMicroAggregationFunction(attribute));
    if (index == -1) {
      this.cmbFunction.select(0);
      this.model.getInputConfig().setMicroAggregationFunction(attribute,getMicroAggregationFunction(functions.get(0)));
    }
 else {
      this.cmbFunction.select(index);
      this.model.getInputConfig().setMicroAggregationFunction(attribute,getMicroAggregationFunction(functions.get(index)));
    }
    this.btnMissing.setSelection(this.model.getInputConfig().getMicroAggregationIgnoreMissingData(attribute));
  }
}

Fixed version (ground truth):
/** 
 * Update function
 */
private void updateFunction(){
  if (model != null && model.getInputConfig() != null && model.getInputDefinition() != null) {
    DataScale scale=model.getInputDefinition().getDataType(attribute).getDescription().getScale();
    List<String> functions=new ArrayList<String>();
    for (    MicroAggregationFunctionDescription function : FUNCTIONS) {
      if (scale.provides(function.getRequiredScale())) {
        functions.add(function.getLabel());
      }
    }
    this.cmbFunction.setItems(functions.toArray(new String[functions.size()]));
    MicroAggregationFunctionDescription description=model.getInputConfig().getMicroAggregationFunction(attribute);
    int index=description == null ? -1 : functions.indexOf(description.getLabel());
    if (index == -1) {
      this.cmbFunction.select(0);
      this.model.getInputConfig().setMicroAggregationFunction(attribute,getMicroAggregationFunction(functions.get(0)));
    }
 else {
      this.cmbFunction.select(index);
      this.model.getInputConfig().setMicroAggregationFunction(attribute,getMicroAggregationFunction(functions.get(index)));
    }
    this.btnMissing.setSelection(this.model.getInputConfig().getMicroAggregationIgnoreMissingData(attribute));
  }
}
Program: 108048
Project: 108048
Buggy source:
/** 
 * Action.
 */
private void actionReset(){
  if (filter != null) {
    DataDefinition definition=model.getOutputDefinition();
    if (definition == null) {
      reset();
      return;
    }
    List<String> attributes=new ArrayList<String>();
    attributes.addAll(definition.getQuasiIdentifyingAttributes());
    Collections.sort(attributes,new Comparator<String>(){
      public int compare(      String arg0,      String arg1){
        return model.getOutput().getColumnIndexOf(arg0) - model.getOutput().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++) {
        filter.allowGeneralization(dimension,i);
      }
      dimension++;
    }
    filter.allowAllInformationLoss();
    filter.allowAnonymous();
    filter.allowNonAnonymous();
    filter.allowUnknown();
    update();
    fireModelEvent();
  }
}

Fixed version (ground truth):
/** 
 * Action.
 */
private void actionReset(){
  if (filter != null) {
    DataDefinition definition=model.getOutputDefinition();
    if (definition == null) {
      reset();
      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 model.getOutput().getColumnIndexOf(arg0) - model.getOutput().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++) {
        filter.allowGeneralization(dimension,i);
      }
      dimension++;
    }
    filter.allowAllInformationLoss();
    filter.allowAnonymous();
    filter.allowNonAnonymous();
    filter.allowUnknown();
    update();
    fireModelEvent();
  }
}
Program: 108049
Project: 108049
Buggy source:
/** 
 * Sets the input config.
 * @param config
 */
public void setInputConfig(final ModelConfiguration config){
  this.inputConfig=config;
  this.metricConfig=config.getMetric().getConfiguration();
  this.metricDescription=config.getMetric().getDescription();
}

Fixed version (ground truth):
/** 
 * Sets the input config.
 * @param config
 */
public void setInputConfig(final ModelConfiguration config){
  this.inputConfig=config;
}
Program: 108051
Project: 108051
Buggy source:
/** 
 * Returns the minimum and maximum value
 * @param dictionary
 * @param type
 * @return
 */
protected <T>double[] getMinMax(String[] dictionary,DataTypeWithRatioScale<T> type){
  T min=null;
  T max=null;
  for (  String string : dictionary) {
    T value=type.parse(string);
    min=min == null || type.compare(min,value) > 0 ? value : min;
    max=max == null || type.compare(max,value) < 0 ? value : max;
  }
  return new double[]{type.toDouble(min),type.toDouble(max)};
}

Fixed version (ground truth):
/** 
 * Returns the minimum and maximum value
 * @param dictionary
 * @param type
 * @return
 */
protected <T>double[] getMinMax(String[] dictionary,DataTypeWithRatioScale<T> type){
  T min=null;
  T max=null;
  for (  String string : dictionary) {
    T value=type.parse(string);
    if (!ignoreMissingData || value != null) {
      min=min == null || type.compare(min,value) > 0 ? value : min;
      max=max == null || type.compare(max,value) < 0 ? value : max;
    }
  }
  Double _min=type.toDouble(min);
  Double _max=type.toDouble(max);
  _min=_min != null ? _min : 0d;
  _max=_max != null ? _max : 0d;
  return new double[]{_min,_max};
}
Program: 108052
Project: 108052
Buggy source:
/** 
 * Parse
 * @param other
 */
public abstract void parse(ModelCriterion other);

Fixed version (ground truth):
/** 
 * Parse
 * @param other
 * @param _default Defines whether the model represents a typical parameter configuration for the criterion
 */
public abstract void parse(ModelCriterion other,boolean _default);
Program: 108053
Project: 108053
Buggy source:
@Override public void parse(ModelCriterion criterion){
  if (!(criterion instanceof ModelDPresenceCriterion)) {
    return;
  }
  ModelDPresenceCriterion other=(ModelDPresenceCriterion)criterion;
  this.dmax=other.dmax;
  this.dmin=other.dmin;
  this.setEnabled(other.isEnabled());
}

Fixed version (ground truth):
@Override public void parse(ModelCriterion criterion,boolean _default){
  if (!(criterion instanceof ModelDPresenceCriterion)) {
    return;
  }
  ModelDPresenceCriterion other=(ModelDPresenceCriterion)criterion;
  this.dmax=other.dmax;
  this.dmin=other.dmin;
  this.setEnabled(other.isEnabled());
}
Program: 108054
Project: 108054
Buggy source:
@Override public void parse(ModelCriterion criterion){
  if (!(criterion instanceof ModelDifferentialPrivacyCriterion)) {
    return;
  }
  ModelDifferentialPrivacyCriterion other=(ModelDifferentialPrivacyCriterion)criterion;
  this.epsilon=other.epsilon;
  this.delta=other.delta;
  this.generalization=other.generalization.clone();
  this.setEnabled(other.isEnabled());
}

Fixed version (ground truth):
@Override public void parse(ModelCriterion criterion,boolean _default){
  if (!(criterion instanceof ModelDifferentialPrivacyCriterion)) {
    return;
  }
  ModelDifferentialPrivacyCriterion other=(ModelDifferentialPrivacyCriterion)criterion;
  this.epsilon=other.epsilon;
  this.delta=other.delta;
  if (!_default) {
    this.generalization=other.generalization.clone();
  }
  this.setEnabled(other.isEnabled());
}
Program: 108055
Project: 108055
Buggy source:
@Override public void parse(ModelCriterion criterion){
  if (!(criterion instanceof ModelKAnonymityCriterion)) {
    return;
  }
  ModelKAnonymityCriterion other=(ModelKAnonymityCriterion)criterion;
  this.k=other.k;
  this.setEnabled(other.isEnabled());
}

Fixed version (ground truth):
@Override public void parse(ModelCriterion criterion,boolean _default){
  if (!(criterion instanceof ModelKAnonymityCriterion)) {
    return;
  }
  ModelKAnonymityCriterion other=(ModelKAnonymityCriterion)criterion;
  this.k=other.k;
  this.setEnabled(other.isEnabled());
}
Program: 108056
Project: 108056
Buggy source:
@Override public void parse(ModelCriterion criterion){
  if (!(criterion instanceof ModelLDiversityCriterion)) {
    return;
  }
  ModelLDiversityCriterion other=(ModelLDiversityCriterion)criterion;
  this.l=other.l;
  this.c=other.c;
  this.variant=other.variant;
  this.setEnabled(other.isEnabled());
}

Fixed version (ground truth):
@Override public void parse(ModelCriterion criterion,boolean _default){
  if (!(criterion instanceof ModelLDiversityCriterion)) {
    return;
  }
  ModelLDiversityCriterion other=(ModelLDiversityCriterion)criterion;
  this.l=other.l;
  this.c=other.c;
  this.variant=other.variant;
  this.setEnabled(other.isEnabled());
}
Program: 108057
Project: 108057
Buggy source:
@Override public void parse(ModelCriterion criterion){
  if (!(criterion instanceof ModelRiskBasedCriterion)) {
    return;
  }
  ModelRiskBasedCriterion other=(ModelRiskBasedCriterion)criterion;
  this.threshold=other.threshold;
  this.variant=other.variant;
  this.setEnabled(other.isEnabled());
}

Fixed version (ground truth):
@Override public void parse(ModelCriterion criterion,boolean _default){
  if (!(criterion instanceof ModelRiskBasedCriterion)) {
    return;
  }
  ModelRiskBasedCriterion other=(ModelRiskBasedCriterion)criterion;
  this.threshold=other.threshold;
  this.variant=other.variant;
  this.setEnabled(other.isEnabled());
}
Program: 108058
Project: 108058
Buggy source:
@Override public void parse(ModelCriterion criterion){
  if (!(criterion instanceof ModelTClosenessCriterion)) {
    return;
  }
  ModelTClosenessCriterion other=(ModelTClosenessCriterion)criterion;
  this.t=other.t;
  this.variant=other.variant;
  this.setEnabled(other.isEnabled());
}

Fixed version (ground truth):
@Override public void parse(ModelCriterion criterion,boolean _default){
  if (!(criterion instanceof ModelTClosenessCriterion)) {
    return;
  }
  ModelTClosenessCriterion other=(ModelTClosenessCriterion)criterion;
  this.t=other.t;
  this.variant=other.variant;
  this.setEnabled(other.isEnabled());
}
Program: 108059
Project: 108059
Buggy source:
/** 
 * Parse method
 * @param model
 */
@SuppressWarnings("String_Node_Str") public void parseDefault(ModelCriterion model){
  this.parse((T)model,true);
  this.model.parse(model);
}

Fixed version (ground truth):
/** 
 * Parse method
 * @param model
 */
@SuppressWarnings("String_Node_Str") public void parseDefault(ModelCriterion model){
  this.parse((T)model,true);
  this.model.parse(model,true);
}
Program: 108060
Project: 108060
Buggy source:
/** 
 * Creates a new instance for the given data set.
 * @param data
 * @param subset
 */
@SuppressWarnings("String_Node_Str") public CardinalitiesGeneric(HashGroupify groupify){
  this.cardinalities=null;
  this.maps=new Map[groupify.getFirstEquivalenceClass().key.length];
  for (int i=0; i < maps.length; i++) {
    this.maps[i]=new HashMap<Integer,Integer>();
  }
  HashGroupifyEntry m=groupify.getFirstEquivalenceClass();
  while (m != null) {
    if (m.count > 0) {
      for (int i=0; i < maps.length; i++) {
        int key=m.isNotOutlier ? m.key[i] : -1;
        Integer count=this.maps[i].get(key);
        this.maps[i].put(key,count == null ? 1 : count + 1);
      }
    }
    m=m.nextOrdered;
  }
}

Fixed version (ground truth):
/** 
 * Creates a new instance for the given data set.
 * @param data
 * @param subset
 */
@SuppressWarnings("String_Node_Str") public CardinalitiesGeneric(HashGroupify groupify){
  this.cardinalities=null;
  this.maps=new Map[groupify.getFirstEquivalenceClass().key.length];
  for (int i=0; i < maps.length; i++) {
    this.maps[i]=new HashMap<Integer,Integer>();
  }
  HashGroupifyEntry m=groupify.getFirstEquivalenceClass();
  while (m != null) {
    if (m.count > 0) {
      for (int i=0; i < maps.length; i++) {
        int key=m.isNotOutlier ? m.key[i] : -1;
        Integer count=this.maps[i].get(key);
        this.maps[i].put(key,count == null ? m.count : count + m.count);
      }
    }
    m=m.nextOrdered;
  }
}
Program: 108062
Project: 108062
Buggy source:
/** 
 * Returns whether the privacy model is monotonic
 * @return
 */
public Monotonicity getMonotonicityOfPrivacy(){
  if (this.isPracticalMonotonicity()) {
    return Monotonicity.FULL;
  }
  if (this.getMaxOutliers() == 0d) {
    for (    PrivacyCriterion criterion : this.getCriteria()) {
      if (!criterion.isMonotonicWithSuppression() || !criterion.isMonotonicWithGeneralization()) {
        if (this.getMinimalGroupSize() != Integer.MAX_VALUE) {
          return Monotonicity.PARTIAL;
        }
 else {
          return Monotonicity.NONE;
        }
      }
    }
  }
 else {
    for (    PrivacyCriterion criterion : this.getCriteria()) {
      if (!criterion.isMonotonicWithGeneralization()) {
        if (this.getMinimalGroupSize() != Integer.MAX_VALUE) {
          return Monotonicity.PARTIAL;
        }
 else {
          return Monotonicity.NONE;
        }
      }
    }
  }
  return Monotonicity.FULL;
}

Fixed version (ground truth):
/** 
 * Returns whether the privacy model is monotonic
 * @return
 */
public Monotonicity getMonotonicityOfPrivacy(){
  if (this.isPracticalMonotonicity()) {
    return Monotonicity.FULL;
  }
  if (this.getMaxOutliers() == 0d) {
    for (    PrivacyCriterion criterion : this.getCriteria()) {
      if (!criterion.isMonotonicWithGeneralization()) {
        if (this.getMinimalGroupSize() != Integer.MAX_VALUE) {
          return Monotonicity.PARTIAL;
        }
 else {
          return Monotonicity.NONE;
        }
      }
    }
  }
 else {
    for (    PrivacyCriterion criterion : this.getCriteria()) {
      if (!criterion.isMonotonicWithSuppression() || !criterion.isMonotonicWithGeneralization()) {
        if (this.getMinimalGroupSize() != Integer.MAX_VALUE) {
          return Monotonicity.PARTIAL;
        }
 else {
          return Monotonicity.NONE;
        }
      }
    }
  }
  return Monotonicity.FULL;
}
Program: 108065
Project: 108065
Buggy source:
@Override protected void initializeInternal(final DataManager manager,final DataDefinition definition,final Data input,final GeneralizationHierarchy[] hierarchies,final ARXConfiguration config){
  super.initializeInternal(manager,definition,input,hierarchies,config);
  this.upper=super.getUpperBounds();
  double[] min=new double[hierarchies.length];
  Arrays.fill(min,0d);
  double[] max=new double[hierarchies.length];
  Arrays.fill(min,1d);
  super.setMax(max);
  super.setMin(min);
}

Fixed version (ground truth):
@Override protected void initializeInternal(final DataManager manager,final DataDefinition definition,final Data input,final GeneralizationHierarchy[] hierarchies,final ARXConfiguration config){
  super.initializeInternal(manager,definition,input,hierarchies,config);
  this.upper=super.getUpperBounds();
  double[] min=new double[hierarchies.length];
  Arrays.fill(min,0d);
  double[] max=new double[hierarchies.length];
  Arrays.fill(max,1d);
  super.setMax(max);
  super.setMin(min);
}
Program: 108066
Project: 108066
Buggy source:
@Override public boolean isInstance(Metric<?> metric){
  return (metric instanceof MetricMDPrecision) || (metric instanceof MetricMDNMPrecision);
}

Fixed version (ground truth):
@Override public boolean isInstance(Metric<?> metric){
  return (metric instanceof MetricSDNMAmbiguity);
}
Program: 108067
Project: 108067
Buggy source:
@Override public Metric<?> createInstance(MetricConfiguration config){
  return createPrecisionMetric(config.isMonotonic(),config.getAggregateFunction());
}

Fixed version (ground truth):
@Override public Metric<?> createInstance(MetricConfiguration config){
  return createAmbiguityMetric();
}
Program: 108069
Project: 108069
Buggy source:
@Override protected ILSingleDimensional getLowerBoundInternal(Transformation node,HashGroupify g){
  int[] transformation=node.getGeneralization();
  double result=0d;
  HashGroupifyEntry m=g.getFirstEquivalenceClass();
  while (m != null) {
    if (m.count > 0) {
      double classResult=1d;
      for (int dimension=0; dimension < transformation.length; dimension++) {
        int value=m.key[dimension];
        int level=transformation[dimension];
        double share=shares[dimension].getShare(value,level);
        classResult*=share * shares[dimension].getDomainSize();
      }
      classResult*=m.count;
      result+=classResult;
    }
  }
  return new ILSingleDimensional(result);
}

Fixed version (ground truth):
@Override protected ILSingleDimensional getLowerBoundInternal(Transformation node,HashGroupify g){
  int[] transformation=node.getGeneralization();
  double result=0d;
  HashGroupifyEntry m=g.getFirstEquivalenceClass();
  while (m != null) {
    if (m.count > 0) {
      double classResult=1d;
      for (int dimension=0; dimension < transformation.length; dimension++) {
        int value=m.key[dimension];
        int level=transformation[dimension];
        double share=shares[dimension].getShare(value,level);
        classResult*=share * shares[dimension].getDomainSize();
      }
      classResult*=m.count;
      result+=classResult;
    }
    m=m.nextOrdered;
  }
  return new ILSingleDimensional(result);
}
Program: 108072
Project: 108072
Buggy source:
@Override public int compare(Object o1,Object o2){
  return objectSameStackTraceTimes.get(o2) - objectSameStackTraceTimes.get(o1);
}

Fixed version (ground truth):
@Override public int compare(final int arg0,final int arg1){
  return equalOccurrence[arg1] - equalOccurrence[arg0];
}
Program: 108073
Project: 108073
Buggy source:
@Override public void traverse(){
  FLASHPhaseConfiguration outerLoopConfiguration;
  if (config.isBinaryPhaseRequired()) {
    outerLoopConfiguration=config.getBinaryPhaseConfiguration();
  }
 else {
    outerLoopConfiguration=config.getLinearPhaseConfiguration();
  }
  checker.getHistory().setStorageStrategy(config.getSnapshotStorageStrategy());
  PriorityQueue<Integer> queue=new PriorityQueue<Integer>(solutionSpace.getTop().getLevel(),strategy);
  Transformation bottom=solutionSpace.getBottom();
  Transformation top=solutionSpace.getTop();
  NodeChecker.Result result=checker.check(bottom);
  bottom.setProperty(solutionSpace.getPropertyForceSnapshot());
  bottom.setData(result);
  for (int level=bottom.getLevel(); level <= top.getLevel(); level++) {
    for (    int transformation : getSortedUnprocessedNodes(level,outerLoopConfiguration.getTriggerSkip())) {
      if (config.isBinaryPhaseRequired()) {
        binarySearch(transformation,queue);
      }
 else {
        linearSearch(transformation);
      }
    }
  }
  computeUtilityForMonotonicMetrics(bottom);
  computeUtilityForMonotonicMetrics(top);
  bottom.setData(null);
  if (potentiallyInsufficientUtility != null) {
    potentiallyInsufficientUtility.clear();
  }
}

Fixed version (ground truth):
@Override public void traverse(){
  FLASHPhaseConfiguration outerLoopConfiguration;
  if (config.isBinaryPhaseRequired()) {
    outerLoopConfiguration=config.getBinaryPhaseConfiguration();
  }
 else {
    outerLoopConfiguration=config.getLinearPhaseConfiguration();
  }
  checker.getHistory().setStorageStrategy(config.getSnapshotStorageStrategy());
  PriorityQueue<Integer> queue=new PriorityQueue<Integer>(solutionSpace.getTop().getLevel() + 1,strategy);
  Transformation bottom=solutionSpace.getBottom();
  Transformation top=solutionSpace.getTop();
  NodeChecker.Result result=checker.check(bottom);
  bottom.setProperty(solutionSpace.getPropertyForceSnapshot());
  bottom.setData(result);
  for (int level=bottom.getLevel(); level <= top.getLevel(); level++) {
    for (    int transformation : getSortedUnprocessedNodes(level,outerLoopConfiguration.getTriggerSkip())) {
      if (config.isBinaryPhaseRequired()) {
        binarySearch(transformation,queue);
      }
 else {
        linearSearch(transformation);
      }
    }
  }
  computeUtilityForMonotonicMetrics(bottom);
  computeUtilityForMonotonicMetrics(top);
  bottom.setData(null);
  if (potentiallyInsufficientUtility != null) {
    potentiallyInsufficientUtility.clear();
  }
}
Program: 108074
Project: 108074
Buggy source:
/** 
 * Registers an image for a tool item. Generates a version of the image that renders well on windows toolbars, when disabled.
 * @param item
 * @param image
 */
public static void createDisabledImage(ToolItem item){
  item.setDisabledImage(new Image(item.getDisplay(),item.getImage(),SWT.IMAGE_GRAY));
}

Fixed version (ground truth):
/** 
 * Registers an image for a tool item. Generates a version of the image that renders well on windows toolbars, when disabled.
 * @param item
 * @param image
 */
public static void createDisabledImage(ToolItem item){
  final Image image=new Image(item.getDisplay(),item.getImage(),SWT.IMAGE_GRAY);
  item.setDisabledImage(image);
  item.addDisposeListener(new DisposeListener(){
    @Override public void widgetDisposed(    DisposeEvent arg0){
      if (image != null && !image.isDisposed()) {
        image.dispose();
      }
    }
  }
);
}
Program: 108075
Project: 108075
Buggy source:
/** 
 * Shows a question dialog.
 * @param shell
 * @param header
 * @param text
 * @return
 */
public boolean actionShowQuestionDialog(final Shell shell,final String header,final String text){
  return main.showQuestionDialog(shell,header,text);
}

Fixed version (ground truth):
/** 
 * Shows a question dialog.
 * @param header
 * @param text
 * @return
 */
public boolean actionShowQuestionDialog(final String header,final String text){
  return main.showQuestionDialog(this.main.getShell(),header,text);
}
Program: 108076
Project: 108076
Buggy source:
/** 
 * Update mode
 */
private void updateMode(){
  if (model == null || model.getInputConfig() == null || model.getInputDefinition() == null) {
    reset();
    return;
  }
  if (model.getInputDefinition().getQuasiIdentifyingAttributes().contains(attribute) && model != null && model.getInputConfig() != null) {
    if (model.getInputConfig().getTransformationMode(attribute) == ModelTransformationMode.GENERALIZATION) {
      stack.setLayer(0);
      cmbMode.select(0);
    }
 else {
      stack.setLayer(1);
      cmbMode.select(1);
    }
  }
 else {
    stack.setLayer(0);
  }
}

Fixed version (ground truth):
/** 
 * Update mode
 */
private void updateMode(){
  if (model == null || model.getInputConfig() == null || model.getInputDefinition() == null) {
    reset();
    return;
  }
  if (model.getInputDefinition().getQuasiIdentifyingAttributes().contains(attribute) && model != null && model.getInputConfig() != null) {
    if (model.getInputConfig().getTransformationMode(attribute) == ModelTransformationMode.GENERALIZATION) {
      stack.setLayer(0);
      cmbMode.select(0);
    }
 else {
      stack.setLayer(1);
      cmbMode.select(1);
    }
  }
 else {
    cmbMode.select(0);
    stack.setLayer(0);
  }
}
Program: 108077
Project: 108077
Buggy source:
/** 
 * Returns all predeccessors of the transformation with the given identifier
 * @param transformation
 * @return
 */
public LongArrayList getPredecessors(long identifier){
  LongArrayList result=new LongArrayList();
  for (Iterator<Long> iter=lattice.space().indexIteratorToIdIterator(lattice.nodes().listPredecessors(lattice.space().toIndex(identifier))); iter.hasNext(); ) {
    result.add(iter.next());
  }
  int lower=0;
  int upper=result.size() - 1;
  while (lower < upper) {
    long temp=result.get(lower);
    result.set(lower,result.get(upper));
    result.set(upper,temp);
    lower++;
    upper--;
  }
  return result;
}

Fixed version (ground truth):
/** 
 * Returns all predeccessors of the transformation with the given identifier
 * @param transformation
 * @return
 */
public LongArrayList getPredecessors(long identifier){
  LongArrayList result=new LongArrayList();
  for (Iterator<Long> iter=lattice.space().indexIteratorToIdIterator(lattice.nodes().listPredecessors(lattice.space().toIndex(identifier))); iter.hasNext(); ) {
    result.add(iter.next());
  }
  return result;
}
Program: 108078
Project: 108078
Buggy source:
/** 
 * Sets the hierarchy displayed by this component. Call with null to reset.
 * @param hierarchy
 */
public void setHierarchy(final Hierarchy hierarchy){
  this.hierarchy=(hierarchy == null ? null : hierarchy.getHierarchy());
  this.table.refresh();
  this.triggerChangedEvent();
}

Fixed version (ground truth):
/** 
 * Sets the hierarchy displayed by this component. Call with null to reset.
 * @param hierarchy
 */
public void setHierarchy(final Hierarchy hierarchy){
  this.hierarchy=(hierarchy == null ? null : hierarchy.getHierarchy());
  this.table.refresh();
}
Program: 108080
Project: 108080
Buggy source:
@Override public void widgetSelected(final SelectionEvent e){
  Hierarchy initial=getInitialHierarchy();
  if (initial != null) {
    hierarchy.setHierarchy(initial);
  }
}

Fixed version (ground truth):
@Override public void widgetSelected(final SelectionEvent e){
  if (hierarchy.isRowSelected() || hierarchy.isColumnSelected() || hierarchy.isCellSelected()|| model == null || model.getInputConfig() == null || model.getInputConfig().getInput() == null || model.getSelectedAttribute() == null) {
    return;
  }
  controller.actionInitializeHierarchy();
}
Program: 108082
Project: 108082
Buggy source:
/** 
 * Internal method that subtracts the offsets
 * @param transformation
 * @return
 */
protected int[] toJHPL(int[] transformation){
  int[] result=new int[transformation.length];
  for (int i=0; i < result.length; i++) {
    result[i]=transformation[transformation.length - i - 1] - offsetIndices[transformation.length - i - 1];
  }
  return result;
}

Fixed version (ground truth):
/** 
 * Internal method that subtracts the offsets
 * @param transformation
 * @return
 */
protected int[] toJHPL(int[] transformation){
  int[] result=new int[transformation.length];
  for (int i=0; i < result.length; i++) {
    result[i]=transformation[transformation.length - i - 1] - offsetIndices[i];
  }
  return result;
}
Program: 108083
Project: 108083
Buggy source:
/** 
 * Creates a new solution space
 * @param minLevels
 * @param maxLevels
 */
public SolutionSpace(int[] minLevels,int[] maxLevels){
  minLevels=reverse(minLevels);
  maxLevels=reverse(maxLevels);
  this.offsetIndices=reverse(minLevels);
  int lvl=0;
  for (  int i : offsetIndices)   lvl+=i;
  this.offsetLevel=lvl;
  Integer[][] elements=new Integer[minLevels.length][];
  for (int i=0; i < elements.length; i++) {
    Integer[] element=new Integer[maxLevels[i] - minLevels[i] + 1];
    int idx=0;
    for (int j=minLevels[i]; j <= maxLevels[i]; j++) {
      element[idx++]=j;
    }
    elements[i]=element;
  }
  this.lattice=new Lattice<Integer,Integer>(elements);
}

Fixed version (ground truth):
/** 
 * Creates a new solution space
 * @param minLevels
 * @param maxLevels
 */
public SolutionSpace(int[] minLevels,int[] maxLevels){
  minLevels=reverse(minLevels);
  maxLevels=reverse(maxLevels);
  this.offsetIndices=minLevels.clone();
  int lvl=0;
  for (  int i : offsetIndices)   lvl+=i;
  this.offsetLevel=lvl;
  Integer[][] elements=new Integer[minLevels.length][];
  for (int i=0; i < elements.length; i++) {
    Integer[] element=new Integer[maxLevels[i] - minLevels[i] + 1];
    int idx=0;
    for (int j=minLevels[i]; j <= maxLevels[i]; j++) {
      element[idx++]=j;
    }
    elements[i]=element;
  }
  this.lattice=new Lattice<Integer,Integer>(elements);
}
Program: 108084
Project: 108084
Buggy source:
/** 
 * Internal method that adds the offsets
 * @param transformation
 * @return
 */
protected int[] fromJHPL(int[] transformation){
  int[] result=new int[transformation.length];
  for (int i=0; i < result.length; i++) {
    result[i]=transformation[transformation.length - i - 1]+=offsetIndices[transformation.length - i - 1];
  }
  return result;
}

Fixed version (ground truth):
/** 
 * Internal method that adds the offsets
 * @param transformation
 * @return
 */
protected int[] fromJHPL(int[] transformation){
  int[] result=new int[transformation.length];
  for (int i=0; i < result.length; i++) {
    result[i]=transformation[transformation.length - i - 1] + offsetIndices[transformation.length - i - 1];
  }
  return result;
}
Program: 108085
Project: 108085
Buggy source:
/** 
 * Checks and tags the given transformation.
 * @param transformation
 * @param configuration
 */
private void checkAndTag(Transformation transformation,FLASHPhaseConfiguration configuration){
  if (configuration.getTriggerEvaluate().appliesTo(transformation)) {
    InformationLossWithBound<?> loss=checker.getMetric().getInformationLoss(transformation,(HashGroupify)null);
    transformation.setInformationLoss(loss.getInformationLoss());
    transformation.setLowerBound(loss.getLowerBound());
    if (loss.getLowerBound() == null) {
      transformation.setLowerBound(checker.getMetric().getLowerBound(transformation));
    }
  }
 else   if (configuration.getTriggerCheck().appliesTo(transformation)) {
    transformation.setChecked(checker.check(transformation));
    listener.progress((double)++checked / (double)solutionSpace.getSize());
  }
  trackOptimum(transformation);
  configuration.getTriggerTag().apply(transformation);
  prune(transformation);
}

Fixed version (ground truth):
/** 
 * Checks and tags the given transformation.
 * @param transformation
 * @param configuration
 */
private void checkAndTag(Transformation transformation,FLASHPhaseConfiguration configuration){
  if (configuration.getTriggerEvaluate().appliesTo(transformation)) {
    InformationLossWithBound<?> loss=checker.getMetric().getInformationLoss(transformation,(HashGroupify)null);
    transformation.setInformationLoss(loss.getInformationLoss());
    transformation.setLowerBound(loss.getLowerBound());
    if (loss.getLowerBound() == null) {
      transformation.setLowerBound(checker.getMetric().getLowerBound(transformation));
    }
  }
 else   if (configuration.getTriggerCheck().appliesTo(transformation)) {
    transformation.setChecked(checker.check(transformation));
    progress((double)++checked / (double)solutionSpace.getSize());
  }
  trackOptimum(transformation);
  configuration.getTriggerTag().apply(transformation);
  prune(transformation);
}
Program: 108086
Project: 108086
Buggy source:
/** 
 * Constructor
 * @param space
 * @param checker
 * @param timeLimit
 */
private LIGHTNINGAlgorithm(SolutionSpace space,NodeChecker checker,int timeLimit){
  super(space,checker);
  this.checker.getHistory().setStorageStrategy(StorageStrategy.ALL);
  int stepping=space.getTop().getLevel();
  this.stepping=stepping > 0 ? stepping : 1;
  this.propertyChecked=space.getPropertyChecked();
  this.propertyExpanded=space.getPropertyExpanded();
  this.solutionSpace.setAnonymityPropertyPredictable(false);
  this.timeLimit=timeLimit;
}

Fixed version (ground truth):
/** 
 * Constructor
 * @param space
 * @param checker
 * @param timeLimit
 */
private LIGHTNINGAlgorithm(SolutionSpace space,NodeChecker checker,int timeLimit){
  super(space,checker);
  this.checker.getHistory().setStorageStrategy(StorageStrategy.ALL);
  int stepping=space.getTop().getLevel();
  this.stepping=stepping > 0 ? stepping : 1;
  this.propertyChecked=space.getPropertyChecked();
  this.propertyExpanded=space.getPropertyExpanded();
  this.solutionSpace.setAnonymityPropertyPredictable(false);
  this.timeLimit=timeLimit;
  if (timeLimit <= 0) {
    throw new IllegalArgumentException("String_Node_Str");
  }
}
Program: 108087
Project: 108087
Buggy source:
/** 
 * Makes sure that the given Transformation has been checked
 * @param transformation
 */
private void assureChecked(final Transformation transformation){
  if (!transformation.hasProperty(propertyChecked)) {
    transformation.setChecked(checker.check(transformation,true));
    trackOptimum(transformation);
    listener.progress((double)(System.currentTimeMillis() - timeStart) / (double)timeLimit);
  }
}

Fixed version (ground truth):
/** 
 * Makes sure that the given Transformation has been checked
 * @param transformation
 */
private void assureChecked(final Transformation transformation){
  if (!transformation.hasProperty(propertyChecked)) {
    transformation.setChecked(checker.check(transformation,true));
    trackOptimum(transformation);
    progress((double)(System.currentTimeMillis() - timeStart) / (double)timeLimit);
  }
}
Program: 108091
Project: 108091
Buggy source:
@Override public void updatePage(){
  textMaximalLength.setText(model.getMaxValueLength() == null ? "String_Node_Str" : String.valueOf(model.getMaxValueLength()));
  textAlphabetSize.setText(model.getAlphabetSize() == null ? "String_Node_Str" : String.valueOf(model.getAlphabetSize()));
  textDomainSize.setText(model.getDomainSize() == null ? "String_Node_Str" : String.valueOf(model.getDomainSize()));
  buttonLeftAlign.setSelection(model.getAlignmentOrder() == Order.LEFT_TO_RIGHT);
  buttonRightAlign.setSelection(model.getAlignmentOrder() == Order.RIGHT_TO_LEFT);
  buttonLeftRedact.setSelection(model.getAlignmentOrder() == Order.LEFT_TO_RIGHT);
  buttonRightRedact.setSelection(model.getAlignmentOrder() == Order.RIGHT_TO_LEFT);
  comboPaddingChar.select(indexOf(comboPaddingChar,model.getPaddingCharacter()));
  comboRedactionChar.select(indexOf(comboRedactionChar,model.getRedactionCharacter()));
}

Fixed version (ground truth):
@Override public void updatePage(){
  textMaximalLength.setText(model.getMaxValueLength() == null ? "String_Node_Str" : String.valueOf(model.getMaxValueLength()));
  textAlphabetSize.setText(model.getAlphabetSize() == null ? "String_Node_Str" : String.valueOf(model.getAlphabetSize()));
  textDomainSize.setText(model.getDomainSize() == null ? "String_Node_Str" : String.valueOf(model.getDomainSize()));
  buttonLeftAlign.setSelection(model.getAlignmentOrder() == Order.LEFT_TO_RIGHT);
  buttonRightAlign.setSelection(model.getAlignmentOrder() == Order.RIGHT_TO_LEFT);
  buttonLeftRedact.setSelection(model.getRedactionOrder() == Order.LEFT_TO_RIGHT);
  buttonRightRedact.setSelection(model.getRedactionOrder() == Order.RIGHT_TO_LEFT);
  comboPaddingChar.select(indexOf(comboPaddingChar,model.getPaddingCharacter()));
  comboRedactionChar.select(indexOf(comboRedactionChar,model.getRedactionCharacter()));
}
Program: 108095
Project: 108095
Buggy source:
/** 
 * Creates a new handle that represents the research subset.
 * @param source
 * @param subset
 */
protected DataHandleSubset(DataHandle source,DataSubset subset){
  this(source,subset,null);
}

Fixed version (ground truth):
/** 
 * Creates a new handle that represents the research subset.
 * @param source
 * @param subset
 * @param eqStatistics
 */
public DataHandleSubset(DataHandle source,DataSubset subset,StatisticsEquivalenceClasses eqStatistics){
  this.source=source;
  this.dataTypes=source.dataTypes;
  this.definition=source.definition;
  this.header=source.header;
  this.subset=subset;
  this.statistics=new StatisticsBuilder(new DataHandleStatistics(this),eqStatistics);
}
Program: 108097
Project: 108097
Buggy source:
/** 
 * Creates a new instance.
 * @param averageEquivalenceClassSize
 * @param maximalEquivalenceClassSize
 * @param minimalEquivalenceClassSize
 * @param averageEquivalenceClassSizeIncludingOutliers
 * @param maximalEquivalenceClassSizeIncludingOutliers
 * @param minimalEquivalenceClassSizeIncludingOutliers
 * @param numberOfGroups
 * @param numberOfOutlyingEquivalenceClasses
 * @param numberOfOutlyingTuples
 */
protected EquivalenceClassStatistics(double averageEquivalenceClassSize,int maximalEquivalenceClassSize,int minimalEquivalenceClassSize,double averageEquivalenceClassSizeIncludingOutliers,int maximalEquivalenceClassSizeIncludingOutliers,int minimalEquivalenceClassSizeIncludingOutliers,int numberOfGroups,int numberOfOutlyingEquivalenceClasses,int numberOfOutlyingTuples){
  this.averageEquivalenceClassSize=averageEquivalenceClassSize;
  this.maximalEquivalenceClassSize=maximalEquivalenceClassSize;
  this.minimalEquivalenceClassSize=minimalEquivalenceClassSize;
  this.averageEquivalenceClassSizeIncludingOutliers=averageEquivalenceClassSizeIncludingOutliers;
  this.maximalEquivalenceClassSizeIncludingOutliers=maximalEquivalenceClassSizeIncludingOutliers;
  this.minimalEquivalenceClassSizeIncludingOutliers=minimalEquivalenceClassSizeIncludingOutliers;
  this.numberOfEquivalenceClasses=numberOfGroups;
  this.numberOfOutlyingEquivalenceClasses=numberOfOutlyingEquivalenceClasses;
  this.numberOfOutlyingTuples=numberOfOutlyingTuples;
}

Fixed version (ground truth):
/** 
 * Creates a new instance.
 * @param averageEquivalenceClassSize
 * @param maximalEquivalenceClassSize
 * @param minimalEquivalenceClassSize
 * @param averageEquivalenceClassSizeIncludingOutliers
 * @param maximalEquivalenceClassSizeIncludingOutliers
 * @param minimalEquivalenceClassSizeIncludingOutliers
 * @param numberOfGroups
 * @param numberOfOutlyingEquivalenceClasses
 * @param numberOfOutlyingTuples
 * @param viewStatistics 
 */
protected EquivalenceClassStatistics(double averageEquivalenceClassSize,int maximalEquivalenceClassSize,int minimalEquivalenceClassSize,double averageEquivalenceClassSizeIncludingOutliers,int maximalEquivalenceClassSizeIncludingOutliers,int minimalEquivalenceClassSizeIncludingOutliers,int numberOfGroups,int numberOfOutlyingEquivalenceClasses,int numberOfOutlyingTuples,EquivalenceClassStatistics viewStatistics){
  this.averageEquivalenceClassSize=averageEquivalenceClassSize;
  this.maximalEquivalenceClassSize=maximalEquivalenceClassSize;
  this.minimalEquivalenceClassSize=minimalEquivalenceClassSize;
  this.averageEquivalenceClassSizeIncludingOutliers=averageEquivalenceClassSizeIncludingOutliers;
  this.maximalEquivalenceClassSizeIncludingOutliers=maximalEquivalenceClassSizeIncludingOutliers;
  this.minimalEquivalenceClassSizeIncludingOutliers=minimalEquivalenceClassSizeIncludingOutliers;
  this.numberOfEquivalenceClasses=numberOfGroups;
  this.numberOfOutlyingEquivalenceClasses=numberOfOutlyingEquivalenceClasses;
  this.numberOfOutlyingTuples=numberOfOutlyingTuples;
  this.statisticsView=viewStatistics;
}
Program: 108098
Project: 108098
Buggy source:
/** 
 * Makes sure that the given Transformation has been checked
 * @param transformation
 */
private void assureChecked(final Transformation transformation){
  if (!transformation.hasProperty(propertyChecked)) {
    transformation.setChecked(checker.check(transformation));
    trackOptimum(transformation);
    listener.progress((double)(System.currentTimeMillis() - timeStart) / (double)timeLimit);
  }
}

Fixed version (ground truth):
/** 
 * Makes sure that the given Transformation has been checked
 * @param transformation
 */
private void assureChecked(final Transformation transformation){
  if (!transformation.hasProperty(propertyChecked)) {
    transformation.setChecked(checker.check(transformation,true));
    trackOptimum(transformation);
    listener.progress((double)(System.currentTimeMillis() - timeStart) / (double)timeLimit);
  }
}
Program: 108099
Project: 108099
Buggy source:
/** 
 * Updates the solution space
 * @param solutions
 */
public void setSolutionSpace(SolutionSpace solutions){
  lattice.solutionSpace=solutions;
}

Fixed version (ground truth):
/** 
 * Updates the solution space
 * @param solutions
 */
public void setSolutionSpace(SolutionSpace solutions){
  lattice.solutions=solutions;
}
Program: 108103
Project: 108103
Buggy source:
/** 
 * Constructor
 * @param parent
 * @param controller
 */
public ViewSolutionSpace(final Composite parent,final Controller controller){
  controller.addListener(ModelPart.SELECTED_NODE,this);
  controller.addListener(ModelPart.FILTER,this);
  controller.addListener(ModelPart.MODEL,this);
  controller.addListener(ModelPart.RESULT,this);
  this.parent=parent;
  this.controller=controller;
  this.format=new DecimalFormat("String_Node_Str");
  initializeMenu();
  initializeTooltip();
  this.gradient=new Gradient(parent.getDisplay());
  this.base=new Composite(parent,SWT.NONE);
  this.base.setLayoutData(SWTUtil.createFillGridData());
  this.layout=new StackLayout();
  this.base.setLayout(layout);
  this.primary=new Composite(this.base,SWT.NONE);
  this.primary.setLayout(SWTUtil.createGridLayout(1));
  this.secondary=new Composite(this.base,SWT.NONE);
  this.secondary.setLayout(SWTUtil.createGridLayout(1));
  this.label=new CLabel(this.secondary,SWT.NONE);
  this.label.setLayoutData(GridDataFactory.swtDefaults().align(SWT.CENTER,SWT.CENTER).grab(true,true).minSize(400,200).create());
  this.label.setImage(controller.getResources().getImage("String_Node_Str"));
  this.label.setText("String_Node_Str");
  this.label.setAlignment(SWT.LEFT);
  this.showPrimaryComposite();
}

Fixed version (ground truth):
/** 
 * Constructor
 * @param parent
 * @param controller
 */
public ViewSolutionSpace(final Composite parent,final Controller controller){
  controller.addListener(ModelPart.SELECTED_NODE,this);
  controller.addListener(ModelPart.FILTER,this);
  controller.addListener(ModelPart.MODEL,this);
  controller.addListener(ModelPart.RESULT,this);
  controller.addListener(ModelPart.EXPAND,this);
  this.parent=parent;
  this.controller=controller;
  this.format=new DecimalFormat("String_Node_Str");
  initializeMenu();
  initializeTooltip();
  this.gradient=new Gradient(parent.getDisplay());
  this.base=new Composite(parent,SWT.NONE);
  this.base.setLayoutData(SWTUtil.createFillGridData());
  this.layout=new StackLayout();
  this.base.setLayout(layout);
  this.primary=new Composite(this.base,SWT.NONE);
  this.primary.setLayout(SWTUtil.createGridLayout(1));
  this.secondary=new Composite(this.base,SWT.NONE);
  this.secondary.setLayout(SWTUtil.createGridLayout(1));
  this.label=new CLabel(this.secondary,SWT.NONE);
  this.label.setLayoutData(GridDataFactory.swtDefaults().align(SWT.CENTER,SWT.CENTER).grab(true,true).minSize(400,200).create());
  this.label.setImage(controller.getResources().getImage("String_Node_Str"));
  this.label.setText("String_Node_Str");
  this.label.setAlignment(SWT.LEFT);
  this.showPrimaryComposite();
}