diff --git a/src/main/java/org/elasticsearch/common/blobstore/fs/AbstractFsBlobContainer.java b/src/main/java/org/elasticsearch/common/blobstore/fs/AbstractFsBlobContainer.java index ebf9eb6a83d..e473cc2c5f5 100644 --- a/src/main/java/org/elasticsearch/common/blobstore/fs/AbstractFsBlobContainer.java +++ b/src/main/java/org/elasticsearch/common/blobstore/fs/AbstractFsBlobContainer.java @@ -88,13 +88,17 @@ public abstract class AbstractFsBlobContainer extends AbstractBlobContainer { while ((bytesRead = is.read(buffer)) != -1) { listener.onPartial(buffer, 0, bytesRead); } - } catch (Throwable e) { + } catch (Throwable t) { IOUtils.closeWhileHandlingException(is); - listener.onFailure(e); + listener.onFailure(t); return; } - IOUtils.closeWhileHandlingException(is); - listener.onCompleted(); + try { + IOUtils.closeWhileHandlingException(is); + listener.onCompleted(); + } catch (Throwable t) { + listener.onFailure(t); + } } }); }