aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Ostrovsky <david@ostrovsky.org>2018-09-15 21:09:51 +0200
committerDavid Pursehouse <david.pursehouse@gmail.com>2018-09-15 19:20:55 -0500
commitf8e514c74a039209488ef56948c784c00a1d87b3 (patch)
treef5ac5280752a8e6cd60ba0b95853318afe53fbb0
parente6e9073fc790009f4f7c1b31e5cfea1474972ecc (diff)
downloadjgit-f8e514c74a039209488ef56948c784c00a1d87b3.tar.gz
jgit-f8e514c74a039209488ef56948c784c00a1d87b3.zip
ObjectDownloadListener: Return from onWritePossible when data is written
When buffer was written not only call AsyncContext#complete() but also return from the ObjectDownloadListener#onWritePossible(). This avoids endless loop after upgrading from Jetty 9.3.x to 9.4.x lines. In Jetty example implementation:[1] the return statemnt is also used: // If we are at EOF then complete   if (len < 0)   {    async.complete();     return;   } See also this issue upstream: [2]. [1] https://webtide.com/servlet-3-1-async-io-and-jetty [2] https://github.com/eclipse/jetty.project/issues/2911 Change-Id: Iac73fb25e67d40228a378a8e34103f1d28b72a76 Signed-off-by: David Ostrovsky <david@ostrovsky.org>
-rw-r--r--org.eclipse.jgit.lfs.server/src/org/eclipse/jgit/lfs/server/fs/ObjectDownloadListener.java1
1 files changed, 1 insertions, 0 deletions
diff --git a/org.eclipse.jgit.lfs.server/src/org/eclipse/jgit/lfs/server/fs/ObjectDownloadListener.java b/org.eclipse.jgit.lfs.server/src/org/eclipse/jgit/lfs/server/fs/ObjectDownloadListener.java
index cc4350090f..0b96426420 100644
--- a/org.eclipse.jgit.lfs.server/src/org/eclipse/jgit/lfs/server/fs/ObjectDownloadListener.java
+++ b/org.eclipse.jgit.lfs.server/src/org/eclipse/jgit/lfs/server/fs/ObjectDownloadListener.java
@@ -127,6 +127,7 @@ public class ObjectDownloadListener implements WriteListener {
outChannel.write(buffer);
} else {
context.complete();
+ return;
}
}
}