why not use the cache ?
throw a IO exception when the size we try to read is obviously wrong so it can be caught as a normal Volley error
better info on the OOM errors