timeout == null is redundant with !(timeout instanceof Integer)