I was contemplating, after opening this PR, whether I should add a try-catch around the rest of the code in this method, so that if an exception is thrown I can call ``resetOriginalReadPreference()`` before re-throwing the error.  Does that sound reasonable?