Program: 56705
Project: 56705
Buggy source:
@Override public void pageChanged(PageChangedEvent event){
  if (event.getSelectedPage() == this) {
    CalculateCorrelationWizard wizard=(CalculateCorrelationWizard)getWizard();
    DataCellInfo info1=wizard.getInfo1();
    DataCellInfo info2=wizard.getInfo2();
    IDataClassifier classifier1=wizard.getCell1Classifier();
    IDataClassifier classifier2=wizard.getCell2Classifier();
    IDMappingManager mappingManager=IDMappingManagerRegistry.get().getIDMappingManager(info1.columnPerspective.getIdType());
    IIDTypeMapper<Object,Object> mapper=mappingManager.getIDTypeMapper(info1.columnPerspective.getIdType(),info2.columnPerspective.getIdType());
    for (    int cell1ColumnID : info1.columnPerspective.getVirtualArray()) {
      int index1=getContingencyIndex(info1.dataDomain,info1.columnPerspective.getIdType(),cell1ColumnID,info1.rowIDType,info1.rowID,classifier1);
      if (index1 == -1)       continue;
      Set<Object> cell2ColumnIDs=mapper.apply(cell1ColumnID);
      if (cell2ColumnIDs != null && !cell2ColumnIDs.isEmpty()) {
        Integer cell2ColumnID=(Integer)cell2ColumnIDs.iterator().next();
        if (info2.columnPerspective.getVirtualArray().contains(cell2ColumnID)) {
          int index2=getContingencyIndex(info2.dataDomain,info2.columnPerspective.getIdType(),cell2ColumnID,info2.rowIDType,info2.rowID,classifier2);
          if (index2 == -1)           continue;
          contingencyTable[index1][index2]++;
        }
      }
    }
    double[] result=FishersExactTest.fishersExactTest(contingencyTable[0][0],contingencyTable[0][1],contingencyTable[1][0],contingencyTable[1][1]);
    matrixLabel.setText("String_Node_Str" + contingencyTable[0][0] + "String_Node_Str"+ contingencyTable[0][1]+ "String_Node_Str"+ contingencyTable[1][0]+ "String_Node_Str"+ contingencyTable[1][1]);
    resultLabel.setText("String_Node_Str" + result[0] + "String_Node_Str"+ result[1]+ "String_Node_Str"+ result[2]);
    visited=true;
    getWizard().getContainer().updateButtons();
  }
}

Fixed version (ground truth):
@Override public void pageChanged(PageChangedEvent event){
  if (event.getSelectedPage() == this) {
    CalculateCorrelationWizard wizard=(CalculateCorrelationWizard)getWizard();
    DataCellInfo info1=wizard.getInfo1();
    DataCellInfo info2=wizard.getInfo2();
    IDataClassifier classifier1=wizard.getCell1Classifier();
    IDataClassifier classifier2=wizard.getCell2Classifier();
    IDMappingManager mappingManager=IDMappingManagerRegistry.get().getIDMappingManager(info1.columnPerspective.getIdType());
    IIDTypeMapper<Object,Object> mapper=mappingManager.getIDTypeMapper(info1.columnPerspective.getIdType(),info2.columnPerspective.getIdType());
    contingencyTable=new int[2][2];
    for (    int cell1ColumnID : info1.columnPerspective.getVirtualArray()) {
      int index1=getContingencyIndex(info1.dataDomain,info1.columnPerspective.getIdType(),cell1ColumnID,info1.rowIDType,info1.rowID,classifier1);
      if (index1 == -1)       continue;
      Set<Object> cell2ColumnIDs=mapper.apply(cell1ColumnID);
      if (cell2ColumnIDs != null && !cell2ColumnIDs.isEmpty()) {
        Integer cell2ColumnID=(Integer)cell2ColumnIDs.iterator().next();
        if (info2.columnPerspective.getVirtualArray().contains(cell2ColumnID)) {
          int index2=getContingencyIndex(info2.dataDomain,info2.columnPerspective.getIdType(),cell2ColumnID,info2.rowIDType,info2.rowID,classifier2);
          if (index2 == -1)           continue;
          contingencyTable[index1][index2]++;
        }
      }
    }
    double[] result=FishersExactTest.fishersExactTest(contingencyTable[0][0],contingencyTable[0][1],contingencyTable[1][0],contingencyTable[1][1]);
    matrixLabel.setText("String_Node_Str" + contingencyTable[0][0] + "String_Node_Str"+ contingencyTable[0][1]+ "String_Node_Str"+ contingencyTable[1][0]+ "String_Node_Str"+ contingencyTable[1][1]);
    resultLabel.setText("String_Node_Str" + result[0] + "String_Node_Str"+ result[1]+ "String_Node_Str"+ result[2]);
    visited=true;
    getWizard().getContainer().updateButtons();
  }
}