Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 251437 Details for
Bug 453805
response.getOutputStream().write() hangs forever if client doesn't consume the response
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
jetty-9 version of testcase
ExampleTest.java (text/x-java), 3.31 KB, created by
Joakim Erdfelt
on 2015-03-10 12:39:03 EDT
(
hide
)
Description:
jetty-9 version of testcase
Filename:
MIME Type:
Creator:
Joakim Erdfelt
Created:
2015-03-10 12:39:03 EDT
Size:
3.31 KB
patch
obsolete
>package jetty; > >import static org.hamcrest.CoreMatchers.*; >import static org.junit.Assert.*; > >import java.io.ByteArrayOutputStream; >import java.io.IOException; >import java.io.InputStream; >import java.io.PrintWriter; >import java.net.HttpURLConnection; >import java.net.URL; >import java.util.Arrays; >import java.util.concurrent.CountDownLatch; >import java.util.concurrent.TimeUnit; > >import javax.servlet.http.HttpServlet; >import javax.servlet.http.HttpServletRequest; >import javax.servlet.http.HttpServletResponse; > >import junit.framework.TestCase; > >import org.eclipse.jetty.server.Server; >import org.eclipse.jetty.server.ServerConnector; >import org.eclipse.jetty.servlet.ServletContextHandler; >import org.eclipse.jetty.util.IO; > >public class ExampleTest extends TestCase >{ > public static final int DATA_SIZE = 100 * 1000 * 1000; > public static final boolean USE_OUTPUT_STREAM = false; > public static final boolean READ_RESPONSE = false; > public static CountDownLatch latch = new CountDownLatch(1); > > public static class MyServlet extends HttpServlet > { > byte[] data = new byte[DATA_SIZE]; > > public MyServlet() > { > Arrays.fill(data,(byte)'a'); > } > > public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException > { > response.setContentType("text/plain"); > response.setContentLength(DATA_SIZE); > if (USE_OUTPUT_STREAM) > { > System.out.printf("Writing %,d bytes to OutputStream%n",data.length); > response.getOutputStream().write(data); > } > else > { > PrintWriter out = response.getWriter(); > System.out.printf("Writing %,d bytes to Writer%n",data.length); > out.write(new String(data)); > boolean checkError = out.checkError(); > System.out.printf("checkErrors=%s%n",checkError); > } > System.out.println("Request has been fulfilled."); > latch.countDown(); > } > } > > public void testWrite() throws Exception > { > Server server = new Server(); > ServerConnector connector = new ServerConnector(server); > connector.setPort(8080); > connector.setIdleTimeout(1000); > server.addConnector(connector); > > ServletContextHandler root = new ServletContextHandler(server,"/",ServletContextHandler.SESSIONS); > > root.addServlet(MyServlet.class,"/*"); > server.start(); > System.out.println("Server is ready."); > > HttpURLConnection conn = (HttpURLConnection)new URL("http://localhost:8080/").openConnection(); > int responseLength = conn.getContentLength(); > if (responseLength != (-1)) > { > // response is not-chunked > assertThat("Response (header) Content-Length",responseLength,is(DATA_SIZE)); > } > > if (READ_RESPONSE) > { > try (ByteArrayOutputStream out = new ByteArrayOutputStream(); InputStream in = conn.getInputStream()) > { > IO.copy(in,out); > assertThat("Response content size",out.size(),is(DATA_SIZE)); > } > } > > if (!latch.await(10,TimeUnit.SECONDS)) > { > fail("Write into response did not complete."); > } > > System.out.println("Exit"); > } > >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 453805
:
249070
|
249071
|
249073
| 251437