Browse Source

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>
stable-4.7
David Ostrovsky 6 years ago committed by David Pursehouse
parent
commit
f8e514c74a
  1. 1
      org.eclipse.jgit.lfs.server/src/org/eclipse/jgit/lfs/server/fs/ObjectDownloadListener.java

1
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); outChannel.write(buffer);
} else { } else {
context.complete(); context.complete();
return;
} }
} }
} }

Loading…
Cancel
Save