Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/java/net/URLConnection/TimeoutTest.java
38812 views
1
/*
2
* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/*
25
* @test
26
* @bug 4389976
27
* @summary can't unblock read() of InputStream from URL connection
28
* @run main/timeout=40/othervm -Dsun.net.client.defaultReadTimeout=2000 TimeoutTest
29
*/
30
31
import java.io.*;
32
import java.net.*;
33
34
public class TimeoutTest {
35
36
class Server extends Thread {
37
ServerSocket server;
38
Server (ServerSocket server) {
39
super ();
40
this.server = server;
41
}
42
public void run () {
43
try {
44
Socket s = server.accept ();
45
while (!finished ()) {
46
Thread.sleep (1000);
47
}
48
s.close();
49
} catch (Exception e) {
50
}
51
}
52
boolean isFinished = false;
53
54
synchronized boolean finished () {
55
return (isFinished);
56
}
57
synchronized void done () {
58
isFinished = true;
59
}
60
}
61
62
public static void main(String[] args) throws Exception {
63
TimeoutTest t = new TimeoutTest ();
64
t.test ();
65
}
66
67
public void test() throws Exception {
68
ServerSocket ss = new ServerSocket(0);
69
Server s = new Server (ss);
70
try{
71
URL url = new URL ("http://127.0.0.1:"+ss.getLocalPort());
72
URLConnection urlc = url.openConnection ();
73
InputStream is = urlc.getInputStream ();
74
throw new RuntimeException("Should have received timeout");
75
} catch (SocketTimeoutException e) {
76
return;
77
} finally {
78
s.done();
79
ss.close();
80
}
81
}
82
}
83
84