Seems that some code we have for finding the form of the current update so that we can update the ViewState is failing because the update in question has a null parent element. This may be peculiar to the column re-ordering behavior of the datatable. In any event, I've put a try/catch around the code that is causing the problem and then the sample works as designed.
//MyFaces uses a linked list of view state keys to track the changes in the view state – the participating
//forms need to have their view state key updated so that the next submit will work with the latest saved state
try{
var submittedForm = formOf(source);
var submittedViewID = submittedForm['ice.view'].value;
//update only the forms that have the same viewID with the one used by the submitting form
each(document.getElementsByTagName('form'), function(form) {
var viewIDElement = form['ice.view'];
var viewStateElement = form['javax.faces.ViewState'];
if (viewStateElement && viewIDElement && viewIDElement.value == submittedViewID)
{
viewStateElement.value = viewState;
}
});
} catch(e)
{
debug(logger, 'could not find parent for source ["' + source.id + '"]');
}
The code being surrounded is a MyFaces fix so we may be trading having this work with having MyFaces not work so well. Mircea will need to review.
The logging.properties file can be used to enable debugging on Liferay