Buggy code:
@ ManagedBean ( name = "cmRowStyleAlarmGenerator" ) @ ViewScoped public class CmRowStyleAlarmGenerator implements RowStypeAlarmGenerator , Serializable { private static final long serialVersionUID = - 6016465643390100066L ; public static final String dsSNR = "dsSNR" ; public static final String usSNR = "usSNR" ; public static final String fecUncorrectable = "fecUncorrectable" ; public static final String fecCorrected = "fecCorrected" ; private String alarmColorLv1 ; private String alarmColorLv2 ; private String alarmColorLv3 ; private int minDsSNRLv1 ; private int minDsSNRLv2 ; private int minDsSNRLv3 ; private int maxDsSNRLv1 ; private int maxDsSNRLv2 ; private int maxDsSNRLv3 ; private int minUsSNRLv1 ; private int minUsSNRLv2 ; private int minUsSNRLv3 ; private int maxUsSNRLv1 ; private int maxUsSNRLv2 ; private int maxUsSNRLv3 ; private double minFecUncorrectableLv1 ; private double minFecUncorrectableLv2 ; private double minFecUncorrectableLv3 ; private double maxFecUncorrectableLv1 ; private double maxFecUncorrectableLv2 ; private double maxFecUncorrectableLv3 ; private double minFecCorrectedLv1 ; private double minFecCorrectedLv2 ; private double minFecCorrectedLv3 ; private double maxFecCorrectedLv1 ; private double maxFecCorrectedLv2 ; private double maxFecCorrectedLv3 ; @ PostConstruct public void init ( ) { FacesContext facesContext = FacesContext . getCurrentInstance ( ) ; ExternalContext externalContext = facesContext . getExternalContext ( ) ; PortletRequest portletRequest = ( ( PortletRequest ) ( externalContext . getRequest ( ) ) ) ; PortletPreferences portletPreferences = portletRequest . getPreferences ( ) ; alarmColorLv1 = portletPreferences . getValue ( "alarmColorLv1" , "#ff9900" ) ; alarmColorLv2 = portletPreferences . getValue ( "alarmColorLv2" , "#ff00ff" ) ; <START_BUG> alarmColorLv3 = portletPreferences . getValue ( "alarmColorLv2" , "#ff0000" ) ; <END_BUG> minDsSNRLv1 = ( parseInt ( portletPreferences . getValue ( "minDsSNRLv1" , "30" ) ) ) * 10 ; minDsSNRLv2 = ( parseInt ( portletPreferences . getValue ( "minDsSNRLv2" , "28" ) ) ) * 10 ; minDsSNRLv3 = ( parseInt ( portletPreferences . getValue ( "minDsSNRLv3" , "22" ) ) ) * 10 ; maxDsSNRLv1 = ( parseInt ( portletPreferences . getValue ( "maxDsSNRLv1" , "33" ) ) ) * 10 ; maxDsSNRLv2 = ( parseInt ( portletPreferences . getValue ( "maxDsSNRLv2" , "30" ) ) ) * 10 ; maxDsSNRLv3 = ( parseInt ( portletPreferences . getValue ( "maxDsSNRLv3" , "28" ) ) ) * 10 ; minUsSNRLv1 = ( parseInt ( portletPreferences . getValue ( "minUsSNRLv1" , "20" ) ) ) * 10 ; minUsSNRLv2 = ( parseInt ( portletPreferences . getValue ( "minUsSNRLv2" , "16" ) ) ) * 10 ; minUsSNRLv3 = ( parseInt ( portletPreferences . getValue ( "minUsSNRLv3" , "10" ) ) ) * 10 ; maxUsSNRLv1 = ( parseInt ( portletPreferences . getValue ( "maxUsSNRLv1" , "24" ) ) ) * 10 ; maxUsSNRLv2 = ( parseInt ( portletPreferences . getValue ( "maxUsSNRLv2" , "20" ) ) ) * 10 ; maxUsSNRLv3 = ( parseInt ( portletPreferences . getValue ( "maxUsSNRLv3" , "16" ) ) ) * 10 ; minFecUncorrectableLv1 = parseDouble ( portletPreferences . getValue ( "minFecUncorrectableLv1" , "0" ) ) ; minFecUncorrectableLv2 = parseDouble ( portletPreferences . getValue ( "minFecUncorrectableLv2" , "2" ) ) ; minFecUncorrectableLv3 = parseDouble ( portletPreferences . getValue ( "minFecUncorrectableLv3" , "5" ) ) ; maxFecUncorrectableLv1 = parseDouble ( portletPreferences . getValue ( "maxFecUncorrectableLv1" , "2" ) ) ; maxFecUncorrectableLv2 = parseDouble ( portletPreferences . getValue ( "maxFecUncorrectableLv2" , "5" ) ) ; maxFecUncorrectableLv3 = parseDouble ( portletPreferences . getValue ( "maxFecUncorrectableLv3" , "100" ) ) ; minFecCorrectedLv1 = parseDouble ( portletPreferences . getValue ( "minFecCorrectedLv1" , "0" ) ) ; minFecCorrectedLv2 = parseDouble ( portletPreferences . getValue ( "minFecCorrectedLv2" , "5" ) ) ; minFecCorrectedLv3 = parseDouble ( portletPreferences . getValue ( "minFecCorrectedLv3" , "10" ) ) ; maxFecCorrectedLv1 = parseDouble ( portletPreferences . getValue ( "maxFecCorrectedLv1" , "5" ) ) ; maxFecCorrectedLv2 = parseDouble ( portletPreferences . getValue ( "maxFecCorrectedLv2" , "10" ) ) ; maxFecCorrectedLv3 = parseDouble ( portletPreferences . getValue ( "maxFecCorrectedLv3" , "100" ) ) ; } public CmRowStyleAlarmGenerator ( ) { } @ Override public String getRowDataCss ( Object value , String dataType ) { } private double parseDouble ( String value ) { } private int parseInt ( String value ) { } public String getAlarmColorLv1 ( ) { } public void setAlarmColorLv1 ( String alarmColorLv1 ) { } public String getAlarmColorLv2 ( ) { } public void setAlarmColorLv2 ( String alarmColorLv2 ) { } public String getAlarmColorLv3 ( ) { } public void setAlarmColorLv3 ( String alarmColorLv3 ) { } public int getMinDsSNRLv1 ( ) { } public void setMinDsSNRLv1 ( int minDsSNRLv1 ) { } public int getMinDsSNRLv2 ( ) { } public void setMinDsSNRLv2 ( int minDsSNRLv2 ) { } public int getMinDsSNRLv3 ( ) { } public void setMinDsSNRLv3 ( int minDsSNRLv3 ) { } public int getMaxDsSNRLv1 ( ) { } public void setMaxDsSNRLv1 ( int maxDsSNRLv1 ) { } public int getMaxDsSNRLv2 ( ) { } public void setMaxDsSNRLv2 ( int maxDsSNRLv2 ) { } public int getMaxDsSNRLv3 ( ) { } public void setMaxDsSNRLv3 ( int maxDsSNRLv3 ) { } public int getMinUsSNRLv1 ( ) { } public void setMinUsSNRLv1 ( int minUsSNRLv1 ) { } public int getMinUsSNRLv2 ( ) { } public void setMinUsSNRLv2 ( int minUsSNRLv2 ) { } public int getMinUsSNRLv3 ( ) { } public void setMinUsSNRLv3 ( int minUsSNRLv3 ) { } public int getMaxUsSNRLv1 ( ) { } public void setMaxUsSNRLv1 ( int maxUsSNRLv1 ) { } public int getMaxUsSNRLv2 ( ) { } public void setMaxUsSNRLv2 ( int maxUsSNRLv2 ) { } public int getMaxUsSNRLv3 ( ) { } public void setMaxUsSNRLv3 ( int maxUsSNRLv3 ) { } public double getMinFecUncorrectableLv1 ( ) { } public void setMinFecUncorrectableLv1 ( double minFecUncorrectableLv1 ) { } public double getMinFecUncorrectableLv2 ( ) { } public void setMinFecUncorrectableLv2 ( double minFecUncorrectableLv2 ) { } public double getMinFecUncorrectableLv3 ( ) { } public void setMinFecUncorrectableLv3 ( double minFecUncorrectableLv3 ) { } public double getMaxFecUncorrectableLv1 ( ) { } public void setMaxFecUncorrectableLv1 ( double maxFecUncorrectableLv1 ) { } public double getMaxFecUncorrectableLv2 ( ) { } public void setMaxFecUncorrectableLv2 ( double maxFecUncorrectableLv2 ) { }

Fix:
alarmColorLv3 = portletPreferences . getValue ( "alarmColorLv3" , "#ff0000" ) ;