Fixes #7951 - OutputStreamContentProvider blocks forever during an HTTP2 upload after idle timeout is reached. (#12312)

Improved javadocs.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
This commit is contained in:
Simone Bordet 2024-09-25 18:34:42 +03:00 committed by GitHub
parent 04fd45d94e
commit af3ac05806
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 9 deletions

View File

@ -26,7 +26,7 @@ import org.eclipse.jetty.io.content.OutputStreamContentSource;
* <p>Content must be provided by writing to the {@link #getOutputStream() output stream} * <p>Content must be provided by writing to the {@link #getOutputStream() output stream}
* that must be {@link OutputStream#close() closed} when all content has been provided.</p> * that must be {@link OutputStream#close() closed} when all content has been provided.</p>
* <p>Example usage:</p> * <p>Example usage:</p>
* <pre> * <pre>{@code
* HttpClient httpClient = ...; * HttpClient httpClient = ...;
* *
* // Use try-with-resources to autoclose the output stream. * // Use try-with-resources to autoclose the output stream.
@ -37,7 +37,7 @@ import org.eclipse.jetty.io.content.OutputStreamContentSource;
* .body(content) * .body(content)
* .send(new Response.CompleteListener() * .send(new Response.CompleteListener()
* { * {
* &#64;Override * @Override
* public void onComplete(Result result) * public void onComplete(Result result)
* { * {
* // Your logic here * // Your logic here
@ -50,7 +50,7 @@ import org.eclipse.jetty.io.content.OutputStreamContentSource;
* // Even later... * // Even later...
* output.write("more content".getBytes()); * output.write("more content".getBytes());
* } // Implicit call to output.close(). * } // Implicit call to output.close().
* </pre> * }</pre>
*/ */
public class OutputStreamRequestContent extends OutputStreamContentSource implements Request.Content public class OutputStreamRequestContent extends OutputStreamContentSource implements Request.Content
{ {

View File

@ -23,12 +23,11 @@ import org.eclipse.jetty.util.FutureCallback;
import org.eclipse.jetty.util.IO; import org.eclipse.jetty.util.IO;
/** /**
* <p> * <p>A {@link Content.Source} that provides content asynchronously through an {@link OutputStream}.</p>
* A {@link Content.Source} backed by an {@link OutputStream}. * <p>Bytes written to the {@link OutputStream} returned by {@link #getOutputStream()}
* Any bytes written to the {@link OutputStream} returned by {@link #getOutputStream()} * are converted to a {@link Content.Chunk} and returned from {@link #read()}.</p>
* is converted to a {@link Content.Chunk} and returned from {@link #read()}. If * <p>The {@code OutputStream} must be closed to signal that all the content has been written.</p>
* necessary, any {@link Runnable} passed to {@link #demand(Runnable)} is invoked. *
* </p>
* @see AsyncContent * @see AsyncContent
*/ */
public class OutputStreamContentSource implements Content.Source, Closeable public class OutputStreamContentSource implements Content.Source, Closeable