> The current implementation assumes that IOException are random, [...]

What makes you assume this?