protected void addSelectItem(UISelectItem uiItem, List<SelectItem> items) { boolean isRendered = uiItem.isRendered(); if (!isRendered) { items.add(null); return; } Object value = uiItem.getValue(); SelectItem item; if (value instanceof SelectItem) { item = (SelectItem) value; } else { Object itemValue = uiItem.getItemValue(); String itemLabel = uiItem.getItemLabel(); // JSF throws a null pointer exception for null values and labels, // which is a serious problem at design-time. item = new SelectItem( itemValue, itemLabel == null ? "" : itemLabel, uiItem.getItemDescription(), uiItem.isItemDisabled()); } items.add(item); }