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 249073 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.
Reproducible TestCase
JettyResponseWriteTest.java (text/x-java), 2.28 KB, created by
Benjamin Jaton
on 2014-12-01 13:03:04 EST
(
hide
)
Description:
Reproducible TestCase
Filename:
MIME Type:
Creator:
Benjamin Jaton
Created:
2014-12-01 13:03:04 EST
Size:
2.28 KB
patch
obsolete
>package com.test; > >import java.io.IOException; >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.apache.http.HttpResponse; >import org.apache.http.client.methods.HttpGet; >import org.apache.http.impl.client.CloseableHttpClient; >import org.apache.http.impl.client.HttpClientBuilder; >import org.eclipse.jetty.server.Server; >import org.eclipse.jetty.server.nio.SelectChannelConnector; >import org.eclipse.jetty.servlet.ServletContextHandler; >import org.eclipse.jetty.servlet.ServletHolder; > >public class JettyResponseWriteTest extends TestCase { > > static byte[] data = new byte[100 * 1000 * 1000]; > static CountDownLatch latch = new CountDownLatch(1); > static boolean testOutputStream = false; > > private static class MyServlet extends HttpServlet { > public void doGet(HttpServletRequest request, > HttpServletResponse response) throws IOException { > if (testOutputStream) { > System.out.println("Writing into OutputStream..."); > response.getOutputStream().write(data); > } else { > System.out.println("Writing into Writer..."); > response.getWriter().write(new String(data)); > System.out.println("checkErrors=" > + response.getWriter().checkError()); > } > System.out.println("Request has been fulfilled."); > } > } > > public void testWrite() throws Exception { > // prepare server > Arrays.fill(data, (byte) 'a'); > > Server server = new Server(); > SelectChannelConnector httpConnector = new SelectChannelConnector(); > httpConnector.setPort(8080); > server.addConnector(httpConnector); > httpConnector.setMaxIdleTime(10000); > > ServletContextHandler root = new ServletContextHandler(server, "/", > ServletContextHandler.SESSIONS); > > root.addServlet(new ServletHolder(new MyServlet()), "/*"); > server.start(); > System.out.println("Server is ready."); > > CloseableHttpClient client = HttpClientBuilder.create().build(); > HttpGet get = new HttpGet("http://localhost:8080/"); > > HttpResponse response = client.execute(get); > client.close(); > > 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