@@ -176,14 +176,17 @@ private void addRequestListenerToQueue() {
176176 private void callFailureMethodsOfListeners (Throwable t ) {
177177 if (!requestListenersMap .isEmpty ()) {
178178 synchronized (REQUEST_LISTENER_QUEUE_LOCK ) {
179- for (FileRequestListener listener : requestListenersMap .get (fileLoadRequest )) {
180- try {
181- listener .onError (fileLoadRequest , t );
182- } catch (Exception e ) {
183- //ignore
179+ List <FileRequestListener > listenerList = requestListenersMap .get (fileLoadRequest );
180+ if (listenerList != null ) {
181+ for (FileRequestListener listener : listenerList ) {
182+ try {
183+ listener .onError (fileLoadRequest , t );
184+ } catch (Exception e ) {
185+ //ignore
186+ }
184187 }
188+ requestListenersMap .remove (fileLoadRequest );
185189 }
186- requestListenersMap .remove (fileLoadRequest );
187190 }
188191 synchronized (REQUEST_QUEUE_LOCK ) {
189192 fileLoadRequestSet .remove (fileLoadRequest );
@@ -210,14 +213,17 @@ private void sendFileResponseToListeners(File loadedFile) {
210213 if (!requestListenersMap .isEmpty ()) {
211214 FileResponse fileResponse = createFileResponse (loadedFile );
212215 synchronized (REQUEST_LISTENER_QUEUE_LOCK ) {
213- for (FileRequestListener listener : requestListenersMap .get (fileLoadRequest )) {
214- try {
215- listener .onLoad (fileLoadRequest , fileResponse );
216- } catch (Exception e ) {
217- callFailureMethodsOfListeners (e );
216+ List <FileRequestListener > listenerList = requestListenersMap .get (fileLoadRequest );
217+ if (listenerList != null ) {
218+ for (FileRequestListener listener : listenerList ) {
219+ try {
220+ listener .onLoad (fileLoadRequest , fileResponse );
221+ } catch (Exception e ) {
222+ callFailureMethodsOfListeners (e );
223+ }
218224 }
225+ requestListenersMap .remove (fileLoadRequest );
219226 }
220- requestListenersMap .remove (fileLoadRequest );
221227 }
222228 synchronized (REQUEST_QUEUE_LOCK ) {
223229 fileLoadRequestSet .remove (fileLoadRequest );
0 commit comments