Buggy code:
public class ViewRisksAttributesTable extends ViewRisks < AnalysisContextRisk > { private DecimalFormat format = new DecimalFormat ( "##0.000" ) ; private Composite root ; private DynamicTable table ; private List < TableItem > items ; private List < TableColumn > columns ; private AnalysisManager manager ; public ViewRisksAttributesTable ( final Composite parent , final Controller controller , final ModelPart target , final ModelPart reset ) { } @ Override public void update ( ModelEvent event ) { } private void createItem ( QuasiIdentifierRisks risks ) { } @ Override protected Control createControl ( Composite parent ) { } @ Override protected AnalysisContextRisk createViewConfig ( AnalysisContext context ) { } @ Override protected void doReset ( ) { } @ Override protected void doUpdate ( final AnalysisContextRisk context ) { if ( ! ( this . isEnabled ( ) ) ) { if ( ( manager ) != null ) { manager . stop ( ) ; } this . setStatusEmpty ( ) ; return ; } Analysis analysis = new Analysis ( ) { RiskEstimateBuilderInterruptible builder = getBuilder ( context , context . context . getModel ( ) . getSelectedQuasiIdentifiers ( ) ) ; private boolean stopped = false ; private RiskModelAttributes risks ; @ Override public int getProgress ( ) { return builder . getProgress ( ) ; } @ Override public void onError ( ) { setStatusEmpty ( ) ; } @ Override public void onFinish ( ) { if ( ( stopped ) || ( ! ( isEnabled ( ) ) ) ) { return ; } for ( final TableItem i : items ) { i . dispose ( ) ; } items . clear ( ) ; for ( QuasiIdentifierRisks item : risks . getAttributeRisks ( ) ) { createItem ( item ) ; } for ( final TableColumn col : columns ) { col . pack ( ) ; } if ( ( risks . getAttributeRisks ( ) . length ) == 0 ) { setStatusEmpty ( ) ; } else { setStatusDone ( ) ; } table . layout ( ) ; table . redraw ( ) ; } @ Override public void onInterrupt ( ) { if ( ( ! ( isEnabled ( ) ) ) || ( ! ( isValid ( ) ) ) ) { setStatusEmpty ( ) ; } else { setStatusWorking ( ) ; } } @ Override public void run ( ) throws InterruptedException { long time = System . currentTimeMillis ( ) ; switch ( getModel ( ) . getRiskModel ( ) . getRiskModelForAttributes ( ) ) { case SAMPLE_UNIQUENESS : <START_BUG> risks = builder . getPopulationBasedAttributeRisks ( ) ; <END_BUG> break ; case POPULATION_UNIQUENESS_PITMAN : risks = builder . getPopulationBasedAttributeRisks ( PITMAN ) ; break ; case POPULATION_UNIQUENESS_ZAYATZ : risks = builder . getPopulationBasedAttributeRisks ( ZAYATZ ) ; break ; case POPULATION_UNIQUENESS_SNB : risks = builder . getPopulationBasedAttributeRisks ( SNB ) ; break ; case POPULATION_UNIQUENESS_DANKAR : risks = builder . getPopulationBasedAttributeRisks ( DANKAR ) ; break ; default : throw new RuntimeException ( "Invalid<seq2seq4repair_space>risk<seq2seq4repair_space>model" ) ; } while ( ( ( ( System . currentTimeMillis ( ) ) - time ) < ( MINIMAL_WORKING_TIME ) ) && ( ! ( stopped ) ) ) { Thread . sleep ( 10 ) ; } } @ Override public void stop ( ) { builder . interrupt ( ) ; this . stopped = true ; } } ; this . manager . start ( analysis ) ; } @ Override protected ComponentStatusLabelProgressProvider getProgressProvider ( ) { } @ Override protected ViewRiskType getViewType ( ) { } protected boolean isRunning ( ) { } }

Fix:
risks = builder . getSampleBasedAttributeRisks ( ) ;