After doing a little more digging it appears that hibernate is not persisting collection rows that have null values. For example here is what gets stored in the UP_PORTLET_PREF_VALUES table for a list of [null, "", null, "", null].
Code:
PORTLET_PREF_ID,PREF_VALUE,VALUE_ORDER
104,"",1
104,"",3
It appears that by-design hibernate is not persisting a row for each null value in the List. This works if the last value is not null because the IndexColumn allows for reconstruction of the List with null entries and the List is the correct length. In the case of the last entry being null though only entries up to the last non-null entry are reconstructed due to the lack of List length data in the DB.
Is this the intended behavior?