Test10.java revision 3222
3222N/A/*
3222N/A * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
3222N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3222N/A *
3222N/A * This code is free software; you can redistribute it and/or modify it
3222N/A * under the terms of the GNU General Public License version 2 only, as
3222N/A * published by the Free Software Foundation.
3222N/A *
3222N/A * This code is distributed in the hope that it will be useful, but WITHOUT
3222N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3222N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3222N/A * version 2 for more details (a copy is included in the LICENSE file that
3222N/A * accompanied this code).
3222N/A *
3222N/A * You should have received a copy of the GNU General Public License version
3222N/A * 2 along with this work; if not, write to the Free Software Foundation,
3222N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
3222N/A *
3222N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
3222N/A * or visit www.oracle.com if you need additional information or have any
3222N/A * questions.
3222N/A */
3222N/A
3222N/A/**
3222N/A * @test
3222N/A * @bug 7005016
3222N/A * @summary pit jdk7 b121 sqe test jhttp/HttpServer150013 failing
3222N/A * @run main/othervm -Dsun.net.httpserver.clockTick=1000 -Dsun.net.httpserver.idleInterval=3 Test10
3222N/A */
3222N/A
3222N/Aimport com.sun.net.httpserver.*;
3222N/A
3222N/Aimport java.io.*;
3222N/Aimport java.net.*;
3222N/Aimport java.util.concurrent.*;
3222N/A
3222N/A/*
3222N/A * Test handling of empty Http headers
3222N/A */
3222N/A
3222N/Apublic class Test10 extends Test {
3222N/A public static void main (String[] args) throws Exception {
3222N/A System.out.print ("Test10: ");
3222N/A Handler handler = new Handler();
3222N/A InetSocketAddress addr = new InetSocketAddress (0);
3222N/A HttpServer server = HttpServer.create (addr, 0);
3222N/A int port = server.getAddress().getPort();
3222N/A HttpContext c2 = server.createContext ("/test", handler);
3222N/A
3222N/A ExecutorService exec = Executors.newCachedThreadPool();
3222N/A server.setExecutor (exec);
3222N/A try {
3222N/A server.start ();
3222N/A doClient(port);
3222N/A System.out.println ("OK");
3222N/A } finally {
3222N/A delay();
3222N/A if (server != null)
3222N/A server.stop(2);
3222N/A if (exec != null)
3222N/A exec.shutdown();
3222N/A }
3222N/A }
3222N/A
3222N/A static class Handler implements HttpHandler {
3222N/A volatile int invocation = 0;
3222N/A public void handle (HttpExchange t)
3222N/A throws IOException
3222N/A {
3222N/A InputStream is = t.getRequestBody();
3222N/A while (is.read() != -1);
3222N/A Headers map = t.getRequestHeaders();
3222N/A t.sendResponseHeaders (200, -1);
3222N/A t.close();
3222N/A }
3222N/A }
3222N/A
3222N/A public static void doClient (int port) throws Exception {
3222N/A String s = "GET /test/1.html HTTP/1.1\r\n\r\n";
3222N/A
3222N/A Socket socket = new Socket ("localhost", port);
3222N/A OutputStream os = socket.getOutputStream();
3222N/A os.write (s.getBytes());
3222N/A socket.setSoTimeout (10 * 1000);
3222N/A InputStream is = socket.getInputStream();
3222N/A int c;
3222N/A byte[] b = new byte [1024];
3222N/A while ((c=is.read(b)) != -1) ;
3222N/A is.close();
3222N/A socket.close();
3222N/A }
3222N/A}