Buggy code:
public class ViewRisksBasicEstimates extends ViewRisks < AnalysisContextRisk > { private Composite root ; private DynamicTable table ; private List < TableItem > items ; private List < TableColumn > columns ; private DecimalFormat format ; private AnalysisManager manager ; public ViewRisksBasicEstimates ( final Composite parent , final Controller controller , final ModelPart target , final ModelPart reset ) { } @ Override public void update ( ModelEvent event ) { } private void createItem ( String label , double value ) { } private void createItem ( String label , StatisticalModel value ) { } @ Override protected Control createControl ( Composite parent ) { } @ Override protected AnalysisContextRisk createViewConfig ( AnalysisContext context ) { } @ Override protected void doReset ( ) { } @ Override protected void doUpdate ( AnalysisContextRisk context ) { if ( ! ( this . isEnabled ( ) ) ) { if ( ( manager ) != null ) { manager . stop ( ) ; } this . setStatusEmpty ( ) ; return ; } final RiskEstimateBuilderInterruptible builder = getBuilder ( context ) ; Analysis analysis = new Analysis ( ) { private boolean stopped = false ; private double lowestRisk ; private double fractionOfTuplesAffectedByLowestRisk ; private double averageRisk ; private double highestRisk ; private double fractionOfTuplesAffectedByHighestRisk ; private double fractionOfUniqueTuples ; private double fractionOfUniqueTuplesDankar ; private StatisticalModel dankarModel ; @ Override public int getProgress ( ) { return 0 ; } @ Override public void onError ( ) { setStatusEmpty ( ) ; } @ Override public void onFinish ( ) { if ( ( stopped ) || ( ! ( isEnabled ( ) ) ) ) { return ; } table . setRedraw ( false ) ; for ( final TableItem i : items ) { i . dispose ( ) ; } items . clear ( ) ; createItem ( Resources . getMessage ( "RiskAnalysis.14" ) , lowestRisk ) ; createItem ( Resources . getMessage ( "RiskAnalysis.17" ) , fractionOfTuplesAffectedByLowestRisk ) ; createItem ( Resources . getMessage ( "RiskAnalysis.8" ) , averageRisk ) ; createItem ( Resources . getMessage ( "RiskAnalysis.9" ) , highestRisk ) ; createItem ( Resources . getMessage ( "RiskAnalysis.10" ) , fractionOfTuplesAffectedByHighestRisk ) ; createItem ( Resources . getMessage ( "RiskAnalysis.11" ) , fractionOfUniqueTuples ) ; createItem ( Resources . getMessage ( "RiskAnalysis.12" ) , fractionOfUniqueTuplesDankar ) ; createItem ( Resources . getMessage ( "RiskAnalysis.18" ) , dankarModel ) ; table . setRedraw ( true ) ; setStatusDone ( ) ; } @ Override public void onInterrupt ( ) { <START_BUG> if ( ( stopped ) || ( ! ( isEnabled ( ) ) ) ) { <END_BUG> setStatusEmpty ( ) ; } else { setStatusWorking ( ) ; } } @ Override public void run ( ) throws InterruptedException { long time = System . currentTimeMillis ( ) ; RiskModelSampleBasedReidentificationRisk samReidModel = builder . getSampleBasedReidentificationRisk ( ) ; RiskModelSampleBasedUniquenessRisk samUniqueModel = builder . getSampleBasedUniquenessRisk ( ) ; RiskModelPopulationBasedUniquenessRisk popUniqueModel = builder . getPopulationBasedUniquenessRisk ( ) ; lowestRisk = samReidModel . getLowestRisk ( ) ; fractionOfTuplesAffectedByLowestRisk = samReidModel . getFractionOfTuplesAffectedByLowestRisk ( ) ; averageRisk = samReidModel . getAverageRisk ( ) ; highestRisk = samReidModel . getHighestRisk ( ) ; fractionOfTuplesAffectedByHighestRisk = samReidModel . getFractionOfTuplesAffectedByHighestRisk ( ) ; fractionOfUniqueTuples = samUniqueModel . getFractionOfUniqueTuples ( ) ; fractionOfUniqueTuplesDankar = popUniqueModel . getFractionOfUniqueTuplesDankar ( ) ; dankarModel = popUniqueModel . getDankarModel ( ) ; 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 ViewRisk getViewType ( ) { } protected boolean isRunning ( ) { } }

Fix:
if ( ! ( isEnabled ( ) ) ) {