Yes, the select might abort the getLayout call used to get the data. To avoid this make the selection first, which might be difficult in your case, since you use the field name for the selection. You would need to refactor that.
On the other hand this should work. The framework should handle request aborted errors.
Hope this helps