Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/javax/rmi/ssl/SocketFactoryTest.java
38839 views
1
/*
2
* Copyright (c) 2003, 2012, 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 4932837 6582235
27
* @summary Test SslRMI[Client|Server]SocketFactory equals() and hashCode().
28
* @author Daniel Fuchs
29
*
30
* @run main SocketFactoryTest
31
*/
32
33
import java.io.PrintWriter;
34
import java.io.IOException;
35
import java.io.Serializable;
36
import java.io.ObjectInputStream;
37
import java.io.ObjectOutputStream;
38
import java.io.ByteArrayInputStream;
39
import java.io.ByteArrayOutputStream;
40
import java.util.Map;
41
import java.util.HashMap;
42
import javax.net.ssl.SSLContext;
43
import javax.rmi.ssl.SslRMIClientSocketFactory;
44
import javax.rmi.ssl.SslRMIServerSocketFactory;
45
46
public class SocketFactoryTest {
47
48
public static final String[] ciphersuite =
49
new String[] { "SSL_RSA_WITH_NULL_MD5" };
50
51
public static final String[] protocol =
52
new String[] { "TLSv1" };
53
54
public static class MySslRMIClientSocketFactory
55
extends SslRMIClientSocketFactory {
56
}
57
58
public static class MySslRMIServerSocketFactory
59
extends SslRMIServerSocketFactory {
60
public MySslRMIServerSocketFactory() {
61
super();
62
}
63
public MySslRMIServerSocketFactory(String[] ciphers,
64
String[] protocols,
65
boolean need) {
66
super(ciphers, protocols, need);
67
}
68
public MySslRMIServerSocketFactory(SSLContext context,
69
String[] ciphers,
70
String[] protocols,
71
boolean need) {
72
super(context, ciphers, protocols, need);
73
}
74
}
75
76
public static Object serializeAndClone(Object o) throws Exception {
77
System.out.println("Serializing object: " + o);
78
final ByteArrayOutputStream obytes =
79
new ByteArrayOutputStream();
80
final ObjectOutputStream ostr =
81
new ObjectOutputStream(obytes);
82
ostr.writeObject(o);
83
ostr.flush();
84
85
System.out.println("Deserializing object");
86
final ByteArrayInputStream ibytes =
87
new ByteArrayInputStream(obytes.toByteArray());
88
final ObjectInputStream istr =
89
new ObjectInputStream(ibytes);
90
return istr.readObject();
91
}
92
93
public static void testEquals(Object a, Object b, boolean expected) {
94
final boolean found = a.equals(b);
95
if (found != expected)
96
throw new RuntimeException("testEquals failed: objects are " +
97
((found)?"equals":"not equals"));
98
if (found && a.hashCode()!=b.hashCode())
99
throw new RuntimeException("testEquals failed: objects are " +
100
"equals but their hashcode differ");
101
}
102
103
public static void main(String[] args) {
104
try {
105
System.out.println("SocketFactoryTest START.");
106
107
final SSLContext context = SSLContext.getInstance("SSL");
108
context.init(null, null, null);
109
110
final SslRMIClientSocketFactory client1 =
111
new SslRMIClientSocketFactory();
112
final SslRMIClientSocketFactory client2 =
113
new SslRMIClientSocketFactory();
114
final SslRMIClientSocketFactory client11 =
115
(SslRMIClientSocketFactory) serializeAndClone(client1);
116
final SslRMIClientSocketFactory client21 =
117
(SslRMIClientSocketFactory) serializeAndClone(client2);
118
final SslRMIServerSocketFactory server1 =
119
new SslRMIServerSocketFactory();
120
final SslRMIServerSocketFactory server2 =
121
new SslRMIServerSocketFactory(null,
122
null,
123
false);
124
final SslRMIServerSocketFactory server3 =
125
new SslRMIServerSocketFactory(ciphersuite,
126
null,
127
false);
128
final SslRMIServerSocketFactory server4 =
129
new SslRMIServerSocketFactory(null,
130
protocol,
131
false);
132
final SslRMIServerSocketFactory server5 =
133
new SslRMIServerSocketFactory(null,
134
null,
135
true);
136
final SslRMIServerSocketFactory server6 =
137
new SslRMIServerSocketFactory(null,
138
null,
139
null,
140
false);
141
final SslRMIServerSocketFactory server7 =
142
new SslRMIServerSocketFactory(SSLContext.getDefault(),
143
null,
144
null,
145
false);
146
final SslRMIServerSocketFactory server8 =
147
new SslRMIServerSocketFactory(null,
148
null,
149
null,
150
true);
151
final SslRMIServerSocketFactory server9 =
152
new SslRMIServerSocketFactory(SSLContext.getDefault(),
153
null,
154
null,
155
true);
156
final SslRMIServerSocketFactory server10 =
157
new SslRMIServerSocketFactory(context,
158
null,
159
null,
160
true);
161
final MySslRMIClientSocketFactory subclient1 =
162
new MySslRMIClientSocketFactory();
163
final MySslRMIClientSocketFactory subclient2 =
164
new MySslRMIClientSocketFactory();
165
final MySslRMIServerSocketFactory subserver1 =
166
new MySslRMIServerSocketFactory();
167
final MySslRMIServerSocketFactory subserver2 =
168
new MySslRMIServerSocketFactory(null,
169
null,
170
false);
171
final MySslRMIServerSocketFactory subserver3 =
172
new MySslRMIServerSocketFactory(ciphersuite,
173
null,
174
false);
175
final MySslRMIServerSocketFactory subserver4 =
176
new MySslRMIServerSocketFactory(null,
177
protocol,
178
false);
179
final MySslRMIServerSocketFactory subserver5 =
180
new MySslRMIServerSocketFactory(null,
181
null,
182
true);
183
final MySslRMIServerSocketFactory subserver6 =
184
new MySslRMIServerSocketFactory(null,
185
ciphersuite,
186
null,
187
false);
188
final MySslRMIServerSocketFactory subserver7 =
189
new MySslRMIServerSocketFactory(SSLContext.getDefault(),
190
ciphersuite,
191
null,
192
false);
193
final MySslRMIServerSocketFactory subserver8 =
194
new MySslRMIServerSocketFactory(context,
195
null,
196
null,
197
true);
198
199
// clients
200
System.out.println("testEquals(client1,client1,true)");
201
testEquals(client1,client1,true);
202
System.out.println("testEquals(client1,client2,true)");
203
testEquals(client1,client2,true);
204
System.out.println("testEquals(client1,client11,true)");
205
testEquals(client1,client11,true);
206
System.out.println("testEquals(client1,client21,true)");
207
testEquals(client1,client21,true);
208
System.out.println("testEquals(client11,client21,true)");
209
testEquals(client11,client21,true);
210
System.out.println("testEquals(client1,null,false)");
211
testEquals(client1,null,false);
212
System.out.println("testEquals(client1,server1,false)");
213
testEquals(client1,server1,false);
214
System.out.println("testEquals(client21,server2,false)");
215
testEquals(client21,server2,false);
216
System.out.println("testEquals(client1,new Object(),false)");
217
testEquals(client1,new Object(),false);
218
219
// servers
220
System.out.println("testEquals(server1,server1,true)");
221
testEquals(server1,server1,true);
222
System.out.println("testEquals(server2,server2,true)");
223
testEquals(server2,server2,true);
224
System.out.println("testEquals(server3,server3,true)");
225
testEquals(server3,server3,true);
226
System.out.println("testEquals(server4,server4,true)");
227
testEquals(server4,server4,true);
228
System.out.println("testEquals(server5,server5,true)");
229
testEquals(server5,server5,true);
230
System.out.println("testEquals(server1,server2,true)");
231
testEquals(server1,server2,true);
232
System.out.println("testEquals(server1,server3,false)");
233
testEquals(server1,server3,false);
234
System.out.println("testEquals(server2,server3,false)");
235
testEquals(server2,server3,false);
236
System.out.println("testEquals(server3,server4,false)");
237
testEquals(server3,server4,false);
238
System.out.println("testEquals(server4,server5,false)");
239
testEquals(server4,server5,false);
240
System.out.println("testEquals(server6,server7,false)");
241
testEquals(server6,server7,false);
242
System.out.println("testEquals(server8,server9,false)");
243
testEquals(server8,server9,false);
244
System.out.println("testEquals(server9,server10,false)");
245
testEquals(server9,server10,false);
246
System.out.println("testEquals(server2,server6,true)");
247
testEquals(server2,server6,true);
248
System.out.println("testEquals(server2,server7,false)");
249
testEquals(server2,server7,false);
250
System.out.println("testEquals(server5,server8,true)");
251
testEquals(server5,server8,true);
252
System.out.println("testEquals(server5,server9,false)");
253
testEquals(server5,server9,false);
254
System.out.println("testEquals(server1,null,false)");
255
testEquals(server1,null,false);
256
System.out.println("testEquals(server2,null,false)");
257
testEquals(server2,null,false);
258
System.out.println("testEquals(server3,null,false)");
259
testEquals(server3,null,false);
260
System.out.println("testEquals(server1,client2,false)");
261
testEquals(server1,client2,false);
262
System.out.println("testEquals(server2,client11,false)");
263
testEquals(server2,client11,false);
264
System.out.println("testEquals(server1,new Object(),false)");
265
testEquals(server1,new Object(),false);
266
267
// client subclass
268
System.out.println("testEquals(subclient1,subclient1,true)");
269
testEquals(subclient1,subclient1,true);
270
System.out.println("testEquals(subclient1,subclient2,true)");
271
testEquals(subclient1,subclient2,true);
272
System.out.println("testEquals(subclient1,client1,false)");
273
testEquals(subclient1,client1,false);
274
System.out.println("testEquals(client1,subclient1,false)");
275
testEquals(client1,subclient1,false);
276
System.out.println("testEquals(subclient1,null,false)");
277
testEquals(subclient1,null,false);
278
System.out.println("testEquals(subclient1,server1,false)");
279
testEquals(subclient1,server1,false);
280
System.out.println("testEquals(server1,subclient1,false)");
281
testEquals(server1,subclient1,false);
282
System.out.println("testEquals(subclient2,subserver2,false)");
283
testEquals(subclient1,subserver2,false);
284
System.out.println("testEquals(subclient1,new Object(),false)");
285
testEquals(subclient1,new Object(),false);
286
287
// server subclass
288
System.out.println("testEquals(subserver1,subserver1,true)");
289
testEquals(subserver1,subserver1,true);
290
System.out.println("testEquals(subserver2,subserver2,true)");
291
testEquals(subserver2,subserver2,true);
292
System.out.println("testEquals(subserver3,subserver3,true)");
293
testEquals(subserver3,subserver3,true);
294
System.out.println("testEquals(subserver4,subserver4,true)");
295
testEquals(subserver4,subserver4,true);
296
System.out.println("testEquals(subserver5,subserver5,true)");
297
testEquals(subserver5,subserver5,true);
298
System.out.println("testEquals(subserver1,subserver2,true)");
299
testEquals(subserver1,subserver2,true);
300
System.out.println("testEquals(subserver1,subserver3,false)");
301
testEquals(subserver1,subserver3,false);
302
System.out.println("testEquals(subserver2,subserver3,false)");
303
testEquals(subserver2,subserver3,false);
304
System.out.println("testEquals(subserver3,subserver4,false)");
305
testEquals(subserver3,subserver4,false);
306
System.out.println("testEquals(subserver4,subserver5,false)");
307
testEquals(subserver4,subserver5,false);
308
System.out.println("testEquals(subserver3,subserver6,true)");
309
testEquals(subserver3,subserver6,true);
310
System.out.println("testEquals(subserver3,subserver7,false)");
311
testEquals(subserver3,subserver7,false);
312
System.out.println("testEquals(subserver1,server1,false)");
313
testEquals(subserver1,server1,false);
314
System.out.println("testEquals(server1,subserver1,false)");
315
testEquals(server1,subserver1,false);
316
System.out.println("testEquals(subserver2,server2,false)");
317
testEquals(subserver2,server2,false);
318
System.out.println("testEquals(server2,subserver2,false)");
319
testEquals(server2,subserver2,false);
320
System.out.println("testEquals(subserver3,server3,false)");
321
testEquals(subserver3,server3,false);
322
System.out.println("testEquals(server3,subserver3,false)");
323
testEquals(server3,subserver3,false);
324
System.out.println("testEquals(subserver4,server4,false)");
325
testEquals(subserver4,server4,false);
326
System.out.println("testEquals(server4,subserver4,false)");
327
testEquals(server4,subserver4,false);
328
System.out.println("testEquals(subserver5,server5,false)");
329
testEquals(subserver5,server5,false);
330
System.out.println("testEquals(server5,subserver5,false)");
331
testEquals(server5,subserver5,false);
332
System.out.println("testEquals(server10,subserver8,false)");
333
testEquals(server10,subserver8,false);
334
System.out.println("testEquals(subserver8,server10,false)");
335
testEquals(subserver8,server10,false);
336
System.out.println("testEquals(subserver1,null,false)");
337
testEquals(subserver1,null,false);
338
System.out.println("testEquals(subserver1,client2,false)");
339
testEquals(subserver1,client2,false);
340
System.out.println("testEquals(subserver1,subclient2,false)");
341
testEquals(subserver1,subclient2,false);
342
System.out.println("testEquals(client1,subserver2,false)");
343
testEquals(client1,subserver2,false);
344
System.out.println("testEquals(subserver1,new Object(),false)");
345
testEquals(subserver1,new Object(),false);
346
347
System.out.println("SocketFactoryTest PASSED.");
348
} catch (Exception x) {
349
System.out.println("SocketFactoryTest FAILED: " + x);
350
x.printStackTrace();
351
System.exit(1);
352
}
353
}
354
}
355
356