@Override protected void retrieveAsync(ImageSource key, Void unused, Callback<ImageSource, Void, ShortBuffer> callback) { try { ShortBuffer buffer = this.decodeCoverage(key); if (buffer != null) { callback.retrievalSucceeded(this, key, unused, buffer); } else { callback.retrievalFailed(this, key, null); // failed but no exception } } catch (Throwable logged) { callback.retrievalFailed(this, key, logged); // failed with exception } }