jdk/test/java/net/ResponseCache/Test.java
author mli
Sun, 12 Jun 2016 21:55:20 -0700
changeset 38883 d5de564f8089
parent 14672 7498e72592b5
permissions -rw-r--r--
8151913: Fix module dependencies in java/net tests Summary: Module dependency declaration for java/net/* tests Reviewed-by: alanb Contributed-by: John Jiang <sha.jiang@oracle.com>
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14672
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
     1
/*
38883
d5de564f8089 8151913: Fix module dependencies in java/net tests
mli
parents: 14672
diff changeset
     2
 * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
14672
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
     4
 *
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
     7
 * published by the Free Software Foundation.
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
     8
 *
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    13
 * accompanied this code).
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    14
 *
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    18
 *
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    21
 * questions.
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    22
 */
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    23
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    24
/* @test
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    25
 * @summary Fixed a potential NullPointerException when setting a ResponseCache that returns a null CacheRequest
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    26
 * @bug 4837267
38883
d5de564f8089 8151913: Fix module dependencies in java/net tests
mli
parents: 14672
diff changeset
    27
 * @modules jdk.httpserver
14672
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    28
 * @author Michael McMahon
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    29
 */
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    30
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    31
import com.sun.net.httpserver.*;
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    32
import java.net.*;
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    33
import java.io.*;
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    34
import java.util.*;
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    35
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    36
public class Test
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    37
{
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    38
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    39
    static class MyHandler implements HttpHandler {
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    40
        public void handle(HttpExchange t) throws IOException {
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    41
            byte[] b = new byte[1024];
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    42
            int r = 0;
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    43
            InputStream is = t.getRequestBody();
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    44
            while (is.read(b) != -1) ;
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    45
            String response = "This is the response";
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    46
            t.sendResponseHeaders(200, response.length());
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    47
            OutputStream os = t.getResponseBody();
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    48
            os.write(response.getBytes());
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    49
            os.close();
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    50
        }
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    51
    }
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    52
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    53
    public static void main(String args[])  throws Exception {
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    54
        HttpServer server = HttpServer.create(new InetSocketAddress(0), 0);
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    55
        server.createContext("/", new MyHandler());
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    56
        server.start();
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    57
        ResponseCache bak = ResponseCache.getDefault();
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    58
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    59
        try {
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    60
            ResponseCache.setDefault (new ResponseCache() {
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    61
                public CacheResponse get (URI uri, String rqstMethod, Map<String,List<String>> rqstHeaders)
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    62
                    throws IOException {
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    63
                    return null;
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    64
                }
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    65
                public CacheRequest put(URI uri, URLConnection conn)  throws IOException
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    66
                {
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    67
                    return null;
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    68
                }
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    69
            });
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    70
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    71
            URL url = new URL ("http://localhost:" + server.getAddress().getPort() + "/");
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    72
            URLConnection urlc = url.openConnection ();
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    73
            InputStream is = urlc.getInputStream();
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    74
            while (is.read() != -1) ;
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    75
            is.close();
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    76
        } finally {
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    77
            ResponseCache.setDefault(bak);
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    78
            server.stop(0);
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    79
        }
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    80
    }
7498e72592b5 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
robm
parents:
diff changeset
    81
}