Buggy code:
@ Service ( "settingBusiness" ) @ Transactional @ Scope ( "singleton" ) public class SettingBusinessImpl extends GenericBusinessImpl < Setting > implements SettingBusiness { public static final String SETTING_NAME_HOUR_REPORTING = "HourReporting" ; public static final String SETTING_NAME_DAILY_WORK = "DailyWork" ; public static final String SETTING_NAME_DEV_PORTFOLIO = "DevPortfolio" ; public static final String SETTING_NAME_RANGE_LOW = "RangeLow" ; public static final String SETTING_NAME_RANGE_HIGH = "RangeHigh" ; public static final String SETTING_NAME_OPTIMAL_LOW = "OptimalLow" ; public static final String SETTING_NAME_OPTIMAL_HIGH = "OptimalHigh" ; public static final String SETTING_NAME_CRITICAL_LOW = "CriticalLow" ; public static final String SETTING_NAME_PORTFOLIO_TIME_SPAN = "PortfolioTimeSpan" ; public static final String SETTING_NAME_STORY_TREE_FIELD_ORDER = "StoryTreeFieldOrder" ; public static final String SETTING_NAME_BRANCH_METRICS = "branchMetricsType" ; public static final String SETTING_NAME_LABELS_IN_STORY_LIST = "labelsInStoryList" ; public static final String SETTING_NAME_WEEKENDS_IN_BURNDOWN = "weekendsInBurndown" ; public SettingBusinessImpl ( ) { } @ Autowired private SettingDAO settingDAO ; private Map < String , Setting > settingCache = new HashMap < String , Setting > ( ) ; public void setSettingDAO ( SettingDAO settingDAO ) { } @ PostConstruct public void loadSettingCache ( ) { } @ Transactional ( readOnly = true ) public Setting retrieveByName ( String name ) { } public void storeSetting ( String settingName , boolean value ) { } public void storeSetting ( String settingName , int value ) { } public synchronized void storeSetting ( String settingName , String value ) { } @ Transactional ( readOnly = true ) public boolean isHourReportingEnabled ( ) { } @ Transactional public void setHourReporting ( boolean mode ) { } @ Transactional ( readOnly = true ) public boolean isDailyWork ( ) { } @ Transactional public void setDailyWork ( boolean mode ) { } @ Transactional ( readOnly = true ) public boolean isDevPortfolio ( ) { } @ Transactional public void setDevPortfolio ( boolean mode ) { } @ Transactional public void setRangeLow ( Integer value ) { } @ Transactional ( readOnly = true ) public int getRangeLow ( ) { } @ Transactional public void setRangeHigh ( Integer value ) { } @ Transactional ( readOnly = true ) public int getRangeHigh ( ) { } @ Transactional public void setOptimalLow ( Integer value ) { } @ Transactional ( readOnly = true ) public int getOptimalLow ( ) { } @ Transactional public void setOptimalHigh ( Integer value ) { } @ Transactional ( readOnly = true ) public int getOptimalHigh ( ) { } @ Transactional public void setCriticalLow ( Integer value ) { <START_BUG> if ( value == null ) { <END_BUG> this . storeSetting ( SettingBusinessImpl . SETTING_NAME_CRITICAL_LOW , value ) ; } else { this . storeSetting ( SettingBusinessImpl . SETTING_NAME_CRITICAL_LOW , DEFAULT_CRITICAL_LOW ) ; } } @ Transactional ( readOnly = true ) public int getCriticalLow ( ) { } @ Transactional ( readOnly = true ) public Period getPortfolioTimeSpan ( ) { } @ Transactional ( readOnly = true ) public void setPortfolioTimeSpan ( Period timeSpan ) { } @ Transactional ( readOnly = true ) public String getStoryTreeFieldOrder ( ) { } public void setStoryTreeFieldOrder ( String newOrder ) { } private void checkFieldOrderString ( String order ) { } public void setBranchMetricsType ( BranchMetricsType type ) { } @ Transactional ( readOnly = true ) public BranchMetricsType getBranchMetricsType ( ) { } public void setLabelsInStoryList ( boolean mode ) { } @ Transactional ( readOnly = true ) public boolean isLabelsInStoryList ( ) { } public void setWeekendsInBurndown ( boolean mode ) { } @ Transactional ( readOnly = true ) public boolean isWeekendsInBurndown ( ) { } }

Fix:
if ( value != null ) {