Fix "in bounds" test in updateData

Only call getData if the new bounds are not contained within the
old bounds, and only update the bounds after a successful load so
that the don't change if we error out.