Merge
This commit is contained in:
commit
efba976cfb
bin
doc
src
hotspot/cpu/aarch64
java.base/share/classes/sun/security/util
java.net.http/share/classes/jdk/internal/net/http
java.xml/share/legal
jdk.compiler/share/classes/com/sun/tools/javac/comp
jdk.hotspot.agent/share/classes/sun/jvm/hotspot
jdk.management/share/classes/com/sun/management
jdk.zipfs/share/classes/jdk/nio/zipfs
test
hotspot/jtreg
applications/ctw/modules
runtime/cds/appcds
jdk
com/sun/security/auth/callback/TextCallbackHandler
java/net/httpclient
jdk/nio/zipfs/testng/test
sun/tools/jps
langtools
jdk/javadoc/doclet
tools
javac
jdeps/modules
lib/jdk/test/lib/net
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -88,7 +88,6 @@ src/jdk.naming.dns : jdk/src/jdk.naming.dns
|
||||
src/jdk.naming.rmi : jdk/src/jdk.naming.rmi
|
||||
src/jdk.net : jdk/src/jdk.net
|
||||
src/jdk.pack : jdk/src/jdk.pack
|
||||
src/jdk.rmic : corba/src/jdk.rmic jdk/src/jdk.rmic
|
||||
src/jdk.scripting.nashorn : nashorn/src/jdk.scripting.nashorn
|
||||
src/jdk.scripting.nashorn.shell : nashorn/src/jdk.scripting.nashorn.shell
|
||||
src/jdk.sctp : jdk/src/jdk.sctp
|
||||
@ -140,7 +139,6 @@ src/utils/src/build : jdk/make/non-build-utils/src/build
|
||||
make/BuildNashorn.gmk : nashorn/make/BuildNashorn.gmk
|
||||
make/CompileDemos.gmk : jdk/make/CompileDemos.gmk
|
||||
make/CompileInterimLangtools.gmk : langtools/make/CompileInterim.gmk
|
||||
make/CompileInterimRmic.gmk : jdk/make/CompileInterimRmic.gmk
|
||||
make/CompileModuleTools.gmk : jdk/make/CompileModuleTools.gmk
|
||||
make/CompileToolsHotspot.gmk : hotspot/make/CompileTools.gmk
|
||||
make/CompileToolsJdk.gmk : jdk/make/CompileTools.gmk
|
||||
@ -180,7 +178,6 @@ make/mapfiles/libjvm_dtrace : hotspot/make/mapfiles/libjvm_dtrace
|
||||
make/mapfiles/libsaproc : hotspot/make/mapfiles/libsaproc
|
||||
make/nashorn : nashorn/make
|
||||
make/nb_native : common/nb_native
|
||||
make/rmic : jdk/make/rmic
|
||||
make/scripts/addNotices.sh : jdk/make/scripts/addNotices.sh
|
||||
make/scripts/compare.sh : common/bin/compare.sh
|
||||
make/scripts/compare_exceptions.sh.incl : common/bin/compare_exceptions.sh.incl
|
||||
|
@ -536,7 +536,7 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
|
||||
<li><code>dist-clean</code> - Remove all files, including configuration</li>
|
||||
</ul>
|
||||
<p>Run <code>make help</code> to get an up-to-date list of important make targets and make control variables.</p>
|
||||
<p>It is possible to build just a single module, a single phase, or a single phase of a single module, by creating make targets according to these followin patterns. A phase can be either of <code>gensrc</code>, <code>gendata</code>, <code>copy</code>, <code>java</code>, <code>launchers</code>, <code>libs</code> or <code>rmic</code>. See <a href="#using-fine-grained-make-targets">Using Fine-Grained Make Targets</a> for more details about this functionality.</p>
|
||||
<p>It is possible to build just a single module, a single phase, or a single phase of a single module, by creating make targets according to these followin patterns. A phase can be either of <code>gensrc</code>, <code>gendata</code>, <code>copy</code>, <code>java</code>, <code>launchers</code>, or <code>libs</code>. See <a href="#using-fine-grained-make-targets">Using Fine-Grained Make Targets</a> for more details about this functionality.</p>
|
||||
<ul>
|
||||
<li><code><phase></code> - Build the specified phase and everything it depends on</li>
|
||||
<li><code><module></code> - Build the specified module and everything it depends on</li>
|
||||
@ -929,7 +929,6 @@ sudo mv /tmp/configure /usr/local/bin</code></pre>
|
||||
<li><code>java</code> (Compile Java code)</li>
|
||||
<li><code>launchers</code> (Compile native executables)</li>
|
||||
<li><code>libs</code> (Compile native libraries)</li>
|
||||
<li><code>rmic</code> (Run the <code>rmic</code> tool)</li>
|
||||
</ul>
|
||||
<p>You can build only a single phase for a module by using the notation <code>$MODULE-$PHASE</code>. For instance, to build the <code>gensrc</code> phase for <code>java.base</code>, use <code>make java.base-gensrc</code>.</p>
|
||||
<p>Note that some phases may depend on others, e.g. <code>java</code> depends on <code>gensrc</code> (if present). Make will build all needed prerequisites before building the requested phase.</p>
|
||||
|
@ -818,7 +818,7 @@ control variables.
|
||||
It is possible to build just a single module, a single phase, or a single phase
|
||||
of a single module, by creating make targets according to these followin
|
||||
patterns. A phase can be either of `gensrc`, `gendata`, `copy`, `java`,
|
||||
`launchers`, `libs` or `rmic`. See [Using Fine-Grained Make Targets](
|
||||
`launchers`, or `libs`. See [Using Fine-Grained Make Targets](
|
||||
#using-fine-grained-make-targets) for more details about this functionality.
|
||||
|
||||
* `<phase>` - Build the specified phase and everything it depends on
|
||||
@ -1619,7 +1619,6 @@ and other artifact the module consists of. The phases are:
|
||||
* `java` (Compile Java code)
|
||||
* `launchers` (Compile native executables)
|
||||
* `libs` (Compile native libraries)
|
||||
* `rmic` (Run the `rmic` tool)
|
||||
|
||||
You can build only a single phase for a module by using the notation
|
||||
`$MODULE-$PHASE`. For instance, to build the `gensrc` phase for `java.base`,
|
||||
|
@ -16040,14 +16040,14 @@ instruct reduce_add2I(iRegINoSp dst, iRegIorL2I src1, vecD src2, iRegINoSp tmp,
|
||||
effect(TEMP tmp, TEMP tmp2);
|
||||
format %{ "umov $tmp, $src2, S, 0\n\t"
|
||||
"umov $tmp2, $src2, S, 1\n\t"
|
||||
"addw $dst, $src1, $tmp\n\t"
|
||||
"addw $dst, $dst, $tmp2\t add reduction2i"
|
||||
"addw $tmp, $src1, $tmp\n\t"
|
||||
"addw $dst, $tmp, $tmp2\t# add reduction2I"
|
||||
%}
|
||||
ins_encode %{
|
||||
__ umov($tmp$$Register, as_FloatRegister($src2$$reg), __ S, 0);
|
||||
__ umov($tmp2$$Register, as_FloatRegister($src2$$reg), __ S, 1);
|
||||
__ addw($dst$$Register, $src1$$Register, $tmp$$Register);
|
||||
__ addw($dst$$Register, $dst$$Register, $tmp2$$Register);
|
||||
__ addw($tmp$$Register, $src1$$Register, $tmp$$Register);
|
||||
__ addw($dst$$Register, $tmp$$Register, $tmp2$$Register);
|
||||
%}
|
||||
ins_pipe(pipe_class_default);
|
||||
%}
|
||||
@ -16059,7 +16059,7 @@ instruct reduce_add4I(iRegINoSp dst, iRegIorL2I src1, vecX src2, vecX tmp, iRegI
|
||||
effect(TEMP tmp, TEMP tmp2);
|
||||
format %{ "addv $tmp, T4S, $src2\n\t"
|
||||
"umov $tmp2, $tmp, S, 0\n\t"
|
||||
"addw $dst, $tmp2, $src1\t add reduction4i"
|
||||
"addw $dst, $tmp2, $src1\t# add reduction4I"
|
||||
%}
|
||||
ins_encode %{
|
||||
__ addv(as_FloatRegister($tmp$$reg), __ T4S,
|
||||
@ -16078,7 +16078,7 @@ instruct reduce_mul2I(iRegINoSp dst, iRegIorL2I src1, vecD src2, iRegINoSp tmp)
|
||||
format %{ "umov $tmp, $src2, S, 0\n\t"
|
||||
"mul $dst, $tmp, $src1\n\t"
|
||||
"umov $tmp, $src2, S, 1\n\t"
|
||||
"mul $dst, $tmp, $dst\t mul reduction2i\n\t"
|
||||
"mul $dst, $tmp, $dst\t# mul reduction2I"
|
||||
%}
|
||||
ins_encode %{
|
||||
__ umov($tmp$$Register, as_FloatRegister($src2$$reg), __ S, 0);
|
||||
@ -16099,7 +16099,7 @@ instruct reduce_mul4I(iRegINoSp dst, iRegIorL2I src1, vecX src2, vecX tmp, iRegI
|
||||
"umov $tmp2, $tmp, S, 0\n\t"
|
||||
"mul $dst, $tmp2, $src1\n\t"
|
||||
"umov $tmp2, $tmp, S, 1\n\t"
|
||||
"mul $dst, $tmp2, $dst\t mul reduction4i\n\t"
|
||||
"mul $dst, $tmp2, $dst\t# mul reduction4I"
|
||||
%}
|
||||
ins_encode %{
|
||||
__ ins(as_FloatRegister($tmp$$reg), __ D,
|
||||
@ -16121,7 +16121,7 @@ instruct reduce_add2F(vRegF dst, vRegF src1, vecD src2, vecD tmp)
|
||||
effect(TEMP tmp, TEMP dst);
|
||||
format %{ "fadds $dst, $src1, $src2\n\t"
|
||||
"ins $tmp, S, $src2, 0, 1\n\t"
|
||||
"fadds $dst, $dst, $tmp\t add reduction2f"
|
||||
"fadds $dst, $dst, $tmp\t# add reduction2F"
|
||||
%}
|
||||
ins_encode %{
|
||||
__ fadds(as_FloatRegister($dst$$reg),
|
||||
@ -16145,7 +16145,7 @@ instruct reduce_add4F(vRegF dst, vRegF src1, vecX src2, vecX tmp)
|
||||
"ins $tmp, S, $src2, 0, 2\n\t"
|
||||
"fadds $dst, $dst, $tmp\n\t"
|
||||
"ins $tmp, S, $src2, 0, 3\n\t"
|
||||
"fadds $dst, $dst, $tmp\t add reduction4f"
|
||||
"fadds $dst, $dst, $tmp\t# add reduction4F"
|
||||
%}
|
||||
ins_encode %{
|
||||
__ fadds(as_FloatRegister($dst$$reg),
|
||||
@ -16173,7 +16173,7 @@ instruct reduce_mul2F(vRegF dst, vRegF src1, vecD src2, vecD tmp)
|
||||
effect(TEMP tmp, TEMP dst);
|
||||
format %{ "fmuls $dst, $src1, $src2\n\t"
|
||||
"ins $tmp, S, $src2, 0, 1\n\t"
|
||||
"fmuls $dst, $dst, $tmp\t add reduction4f"
|
||||
"fmuls $dst, $dst, $tmp\t# mul reduction2F"
|
||||
%}
|
||||
ins_encode %{
|
||||
__ fmuls(as_FloatRegister($dst$$reg),
|
||||
@ -16197,7 +16197,7 @@ instruct reduce_mul4F(vRegF dst, vRegF src1, vecX src2, vecX tmp)
|
||||
"ins $tmp, S, $src2, 0, 2\n\t"
|
||||
"fmuls $dst, $dst, $tmp\n\t"
|
||||
"ins $tmp, S, $src2, 0, 3\n\t"
|
||||
"fmuls $dst, $dst, $tmp\t add reduction4f"
|
||||
"fmuls $dst, $dst, $tmp\t# mul reduction4F"
|
||||
%}
|
||||
ins_encode %{
|
||||
__ fmuls(as_FloatRegister($dst$$reg),
|
||||
@ -16225,7 +16225,7 @@ instruct reduce_add2D(vRegD dst, vRegD src1, vecX src2, vecX tmp)
|
||||
effect(TEMP tmp, TEMP dst);
|
||||
format %{ "faddd $dst, $src1, $src2\n\t"
|
||||
"ins $tmp, D, $src2, 0, 1\n\t"
|
||||
"faddd $dst, $dst, $tmp\t add reduction2d"
|
||||
"faddd $dst, $dst, $tmp\t# add reduction2D"
|
||||
%}
|
||||
ins_encode %{
|
||||
__ faddd(as_FloatRegister($dst$$reg),
|
||||
@ -16245,7 +16245,7 @@ instruct reduce_mul2D(vRegD dst, vRegD src1, vecX src2, vecX tmp)
|
||||
effect(TEMP tmp, TEMP dst);
|
||||
format %{ "fmuld $dst, $src1, $src2\n\t"
|
||||
"ins $tmp, D, $src2, 0, 1\n\t"
|
||||
"fmuld $dst, $dst, $tmp\t add reduction2d"
|
||||
"fmuld $dst, $dst, $tmp\t# mul reduction2D"
|
||||
%}
|
||||
ins_encode %{
|
||||
__ fmuld(as_FloatRegister($dst$$reg),
|
||||
@ -16265,7 +16265,7 @@ instruct reduce_max2F(vRegF dst, vRegF src1, vecD src2, vecD tmp) %{
|
||||
effect(TEMP_DEF dst, TEMP tmp);
|
||||
format %{ "fmaxs $dst, $src1, $src2\n\t"
|
||||
"ins $tmp, S, $src2, 0, 1\n\t"
|
||||
"fmaxs $dst, $dst, $tmp\t max reduction2F" %}
|
||||
"fmaxs $dst, $dst, $tmp\t# max reduction2F" %}
|
||||
ins_encode %{
|
||||
__ fmaxs(as_FloatRegister($dst$$reg), as_FloatRegister($src1$$reg), as_FloatRegister($src2$$reg));
|
||||
__ ins(as_FloatRegister($tmp$$reg), __ S, as_FloatRegister($src2$$reg), 0, 1);
|
||||
@ -16280,7 +16280,7 @@ instruct reduce_max4F(vRegF dst, vRegF src1, vecX src2) %{
|
||||
ins_cost(INSN_COST);
|
||||
effect(TEMP_DEF dst);
|
||||
format %{ "fmaxv $dst, T4S, $src2\n\t"
|
||||
"fmaxs $dst, $dst, $src1\t max reduction4F" %}
|
||||
"fmaxs $dst, $dst, $src1\t# max reduction4F" %}
|
||||
ins_encode %{
|
||||
__ fmaxv(as_FloatRegister($dst$$reg), __ T4S, as_FloatRegister($src2$$reg));
|
||||
__ fmaxs(as_FloatRegister($dst$$reg), as_FloatRegister($dst$$reg), as_FloatRegister($src1$$reg));
|
||||
@ -16295,7 +16295,7 @@ instruct reduce_max2D(vRegD dst, vRegD src1, vecX src2, vecX tmp) %{
|
||||
effect(TEMP_DEF dst, TEMP tmp);
|
||||
format %{ "fmaxd $dst, $src1, $src2\n\t"
|
||||
"ins $tmp, D, $src2, 0, 1\n\t"
|
||||
"fmaxd $dst, $dst, $tmp\t max reduction2D" %}
|
||||
"fmaxd $dst, $dst, $tmp\t# max reduction2D" %}
|
||||
ins_encode %{
|
||||
__ fmaxd(as_FloatRegister($dst$$reg), as_FloatRegister($src1$$reg), as_FloatRegister($src2$$reg));
|
||||
__ ins(as_FloatRegister($tmp$$reg), __ D, as_FloatRegister($src2$$reg), 0, 1);
|
||||
@ -16311,7 +16311,7 @@ instruct reduce_min2F(vRegF dst, vRegF src1, vecD src2, vecD tmp) %{
|
||||
effect(TEMP_DEF dst, TEMP tmp);
|
||||
format %{ "fmins $dst, $src1, $src2\n\t"
|
||||
"ins $tmp, S, $src2, 0, 1\n\t"
|
||||
"fmins $dst, $dst, $tmp\t min reduction2F" %}
|
||||
"fmins $dst, $dst, $tmp\t# min reduction2F" %}
|
||||
ins_encode %{
|
||||
__ fmins(as_FloatRegister($dst$$reg), as_FloatRegister($src1$$reg), as_FloatRegister($src2$$reg));
|
||||
__ ins(as_FloatRegister($tmp$$reg), __ S, as_FloatRegister($src2$$reg), 0, 1);
|
||||
@ -16326,7 +16326,7 @@ instruct reduce_min4F(vRegF dst, vRegF src1, vecX src2) %{
|
||||
ins_cost(INSN_COST);
|
||||
effect(TEMP_DEF dst);
|
||||
format %{ "fminv $dst, T4S, $src2\n\t"
|
||||
"fmins $dst, $dst, $src1\t min reduction4F" %}
|
||||
"fmins $dst, $dst, $src1\t# min reduction4F" %}
|
||||
ins_encode %{
|
||||
__ fminv(as_FloatRegister($dst$$reg), __ T4S, as_FloatRegister($src2$$reg));
|
||||
__ fmins(as_FloatRegister($dst$$reg), as_FloatRegister($dst$$reg), as_FloatRegister($src1$$reg));
|
||||
@ -16341,7 +16341,7 @@ instruct reduce_min2D(vRegD dst, vRegD src1, vecX src2, vecX tmp) %{
|
||||
effect(TEMP_DEF dst, TEMP tmp);
|
||||
format %{ "fmind $dst, $src1, $src2\n\t"
|
||||
"ins $tmp, D, $src2, 0, 1\n\t"
|
||||
"fmind $dst, $dst, $tmp\t min reduction2D" %}
|
||||
"fmind $dst, $dst, $tmp\t# min reduction2D" %}
|
||||
ins_encode %{
|
||||
__ fmind(as_FloatRegister($dst$$reg), as_FloatRegister($src1$$reg), as_FloatRegister($src2$$reg));
|
||||
__ ins(as_FloatRegister($tmp$$reg), __ D, as_FloatRegister($src2$$reg), 0, 1);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -35,7 +35,6 @@ import javax.security.auth.callback.UnsupportedCallbackException;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
/**
|
||||
@ -236,8 +235,9 @@ public class ConsoleCallbackHandler implements CallbackHandler {
|
||||
result = Integer.parseInt(readLine());
|
||||
if (result < 0 || result > (options.length - 1)) {
|
||||
result = defaultOption;
|
||||
} else {
|
||||
result = options[result].value;
|
||||
}
|
||||
result = options[result].value;
|
||||
} catch (NumberFormatException e) {
|
||||
result = defaultOption;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -334,19 +334,7 @@ final class HttpClientImpl extends HttpClient implements Trackable {
|
||||
}
|
||||
|
||||
private static SSLParameters getDefaultParams(SSLContext ctx) {
|
||||
SSLParameters params = ctx.getSupportedSSLParameters();
|
||||
String[] protocols = params.getProtocols();
|
||||
boolean found13 = false;
|
||||
for (String proto : protocols) {
|
||||
if (proto.equals("TLSv1.3")) {
|
||||
found13 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (found13)
|
||||
params.setProtocols(new String[] {"TLSv1.3", "TLSv1.2"});
|
||||
else
|
||||
params.setProtocols(new String[] {"TLSv1.2"});
|
||||
SSLParameters params = ctx.getDefaultSSLParameters();
|
||||
return params;
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
## Apache Xerces v2.12.0
|
||||
## Apache Xerces v2.12.1
|
||||
|
||||
### Apache Xerces Notice
|
||||
<pre>
|
||||
@ -8,9 +8,11 @@
|
||||
=========================================================================
|
||||
|
||||
Apache Xerces Java
|
||||
Copyright 1999-2018 The Apache Software Foundation
|
||||
Copyright 1999-2020 The Apache Software Foundation
|
||||
|
||||
This product includes software developed at
|
||||
The Apache Software Foundation (http://www.apache.org/).
|
||||
|
||||
Portions of this software were originally based on the following:
|
||||
- software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
|
||||
- software copyright (c) 1999, Sun Microsystems., http://www.sun.com.
|
||||
|
@ -2301,10 +2301,9 @@ public class Lower extends TreeTranslator {
|
||||
}
|
||||
}
|
||||
|
||||
// private static final T[] #VALUES = { a, b, c };
|
||||
Name valuesName = names.fromString(target.syntheticNameChar() + "VALUES");
|
||||
while (tree.sym.members().findFirst(valuesName) != null) // avoid name clash
|
||||
valuesName = names.fromString(valuesName + "" + target.syntheticNameChar());
|
||||
// synthetic private static T[] $values() { return new T[] { a, b, c }; }
|
||||
// synthetic private static final T[] $VALUES = $values();
|
||||
Name valuesName = syntheticName(tree, "VALUES");
|
||||
Type arrayType = new ArrayType(types.erasure(tree.type), syms.arrayClass);
|
||||
VarSymbol valuesVar = new VarSymbol(PRIVATE|FINAL|STATIC|SYNTHETIC,
|
||||
valuesName,
|
||||
@ -2314,7 +2313,15 @@ public class Lower extends TreeTranslator {
|
||||
List.nil(),
|
||||
values.toList());
|
||||
newArray.type = arrayType;
|
||||
enumDefs.append(make.VarDef(valuesVar, newArray));
|
||||
|
||||
MethodSymbol valuesMethod = new MethodSymbol(PRIVATE|STATIC|SYNTHETIC,
|
||||
syntheticName(tree, "values"),
|
||||
new MethodType(List.nil(), arrayType, List.nil(), tree.type.tsym),
|
||||
tree.type.tsym);
|
||||
enumDefs.append(make.MethodDef(valuesMethod, make.Block(0, List.of(make.Return(newArray)))));
|
||||
tree.sym.members().enter(valuesMethod);
|
||||
|
||||
enumDefs.append(make.VarDef(valuesVar, make.App(make.QualIdent(valuesMethod))));
|
||||
tree.sym.members().enter(valuesVar);
|
||||
|
||||
Symbol valuesSym = lookupMethod(tree.pos(), names.values,
|
||||
@ -2329,9 +2336,7 @@ public class Lower extends TreeTranslator {
|
||||
valuesBody = List.of(make.Return(valuesResult));
|
||||
} else {
|
||||
// template: T[] $result = new T[$values.length];
|
||||
Name resultName = names.fromString(target.syntheticNameChar() + "result");
|
||||
while (tree.sym.members().findFirst(resultName) != null) // avoid name clash
|
||||
resultName = names.fromString(resultName + "" + target.syntheticNameChar());
|
||||
Name resultName = syntheticName(tree, "result");
|
||||
VarSymbol resultVar = new VarSymbol(FINAL|SYNTHETIC,
|
||||
resultName,
|
||||
arrayType,
|
||||
@ -2418,6 +2423,13 @@ public class Lower extends TreeTranslator {
|
||||
}
|
||||
}
|
||||
|
||||
private Name syntheticName(JCClassDecl tree, String baseName) {
|
||||
Name valuesName = names.fromString(target.syntheticNameChar() + baseName);
|
||||
while (tree.sym.members().findFirst(valuesName) != null) // avoid name clash
|
||||
valuesName = names.fromString(valuesName + "" + target.syntheticNameChar());
|
||||
return valuesName;
|
||||
}
|
||||
|
||||
/** Translate an enumeration constant and its initializer. */
|
||||
private void visitEnumConstantDef(JCVariableDecl var, int ordinal) {
|
||||
JCNewClass varDef = (JCNewClass)var.init;
|
||||
|
@ -1205,7 +1205,7 @@ public class CommandProcessor {
|
||||
}
|
||||
}
|
||||
},
|
||||
new Command("intConstant", "intConstant [ name [ value ] ]", true) {
|
||||
new Command("intConstant", "intConstant [ name [ value ] ]", false) {
|
||||
public void doit(Tokens t) {
|
||||
if (t.countTokens() != 1 && t.countTokens() != 0 && t.countTokens() != 2) {
|
||||
usage();
|
||||
@ -1228,7 +1228,7 @@ public class CommandProcessor {
|
||||
}
|
||||
}
|
||||
},
|
||||
new Command("longConstant", "longConstant [ name [ value ] ]", true) {
|
||||
new Command("longConstant", "longConstant [ name [ value ] ]", false) {
|
||||
public void doit(Tokens t) {
|
||||
if (t.countTokens() != 1 && t.countTokens() != 0 && t.countTokens() != 2) {
|
||||
usage();
|
||||
@ -1251,7 +1251,7 @@ public class CommandProcessor {
|
||||
}
|
||||
}
|
||||
},
|
||||
new Command("field", "field [ type [ name fieldtype isStatic offset address ] ]", true) {
|
||||
new Command("field", "field [ type [ name fieldtype isStatic offset address ] ]", false) {
|
||||
public void doit(Tokens t) {
|
||||
if (t.countTokens() != 1 && t.countTokens() != 0 && t.countTokens() != 6) {
|
||||
usage();
|
||||
@ -1323,7 +1323,7 @@ public class CommandProcessor {
|
||||
}
|
||||
}
|
||||
},
|
||||
new Command("type", "type [ type [ name super isOop isInteger isUnsigned size ] ]", true) {
|
||||
new Command("type", "type [ type [ name super isOop isInteger isUnsigned size ] ]", false) {
|
||||
public void doit(Tokens t) {
|
||||
if (t.countTokens() != 1 && t.countTokens() != 0 && t.countTokens() != 6) {
|
||||
usage();
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -110,11 +110,11 @@ public interface OperatingSystemMXBean extends
|
||||
/**
|
||||
* Returns the total amount of physical memory in bytes.
|
||||
*
|
||||
* @deprecated Use {@link #getMemorySize()} instead of
|
||||
* @deprecated Use {@link #getTotalMemorySize()} instead of
|
||||
* this historically named method.
|
||||
*
|
||||
* @implSpec This implementation must return the same value
|
||||
* as {@link #getMemorySize()}.
|
||||
* as {@link #getTotalMemorySize()}.
|
||||
*
|
||||
* @return the total amount of physical memory in bytes.
|
||||
*/
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -194,11 +194,11 @@ public class ByteArrayChannel implements SeekableByteChannel {
|
||||
throw new ClosedChannelException();
|
||||
}
|
||||
|
||||
private final void beginWrite() {
|
||||
final void beginWrite() {
|
||||
rwlock.writeLock().lock();
|
||||
}
|
||||
|
||||
private final void endWrite() {
|
||||
final void endWrite() {
|
||||
rwlock.writeLock().unlock();
|
||||
}
|
||||
|
||||
|
@ -892,11 +892,18 @@ class ZipFileSystem extends FileSystem {
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
// will update the entry
|
||||
try (OutputStream os = getOutputStream(e)) {
|
||||
os.write(toByteArray());
|
||||
super.beginWrite();
|
||||
try {
|
||||
if (!isOpen())
|
||||
return;
|
||||
// will update the entry
|
||||
try (OutputStream os = getOutputStream(e)) {
|
||||
os.write(toByteArray());
|
||||
}
|
||||
super.close();
|
||||
} finally {
|
||||
super.endWrite();
|
||||
}
|
||||
super.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,39 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @summary run CTW for all classes from jdk.rmic module
|
||||
*
|
||||
* @library /test/lib / /testlibrary/ctw/src
|
||||
* @modules java.base/jdk.internal.access
|
||||
* java.base/jdk.internal.jimage
|
||||
* java.base/jdk.internal.misc
|
||||
* java.base/jdk.internal.reflect
|
||||
* @modules jdk.rmic
|
||||
*
|
||||
* @build sun.hotspot.WhiteBox
|
||||
* @run driver ClassFileInstaller sun.hotspot.WhiteBox
|
||||
* sun.hotspot.WhiteBox$WhiteBoxPermission
|
||||
* @run driver/timeout=7200 sun.hotspot.tools.ctw.CtwRunner modules:jdk.rmic
|
||||
*/
|
@ -48,7 +48,6 @@ public class ProtectionDomain {
|
||||
"com/sun/tools/javac/Main",
|
||||
"jdk/nio/zipfs/ZipInfo",
|
||||
"java/net/URL",
|
||||
"sun/rmi/rmic/Main",
|
||||
"com/sun/jndi/dns/DnsName"));
|
||||
|
||||
// First class is loaded from CDS, second class is loaded from JAR
|
||||
|
@ -44,7 +44,6 @@ public class SharedPackages {
|
||||
"sun/tools/javac/Main",
|
||||
"jdk/nio/zipfs/ZipInfo",
|
||||
"java/net/URL",
|
||||
"sun/rmi/rmic/Main",
|
||||
"com/sun/jndi/dns/DnsName"));
|
||||
|
||||
OutputAnalyzer output;
|
||||
|
@ -30,8 +30,7 @@ public class JimageClassPackage {
|
||||
// sun.tools.javac.Main (testcase 1),
|
||||
// jdk.nio.zipfs.ZipInfo (testcase 2),
|
||||
// java.net.URL (testcase 3),
|
||||
// sun.rmi.rmic.Main (testcase 4),
|
||||
// com.sun.jndi.dns.DnsName (testcase 5)
|
||||
// com.sun.jndi.dns.DnsName (testcase 4)
|
||||
String testcases[][] =
|
||||
{{"Loading shared boot module class first", "java.util",
|
||||
"java.util.Dictionary", "java.util.ServiceConfigurationError"},
|
||||
@ -45,9 +44,6 @@ public class JimageClassPackage {
|
||||
{"Loading non-shared boot module class first", "java.net",
|
||||
"java.net.HttpCookie", "java.net.URL"},
|
||||
|
||||
{"Loading non-shared app module class first", "sun.rmi.rmic",
|
||||
"sun.rmi.rmic.RMIGenerator", "sun.rmi.rmic.Main"},
|
||||
|
||||
{"Loading non-shared ext module class first", "com.sun.jndi.dns",
|
||||
"com.sun.jndi.dns.Resolver", "com.sun.jndi.dns.DnsName"}};
|
||||
|
||||
|
@ -30,7 +30,6 @@ public class JimageClassProtDomain {
|
||||
// sun.tools.javac.Main (testcase 1),
|
||||
// jdk.nio.zipfs.ZipInfo (testcase 2),
|
||||
// java.net.URL (testcase 3),
|
||||
// sun.rmi.rmic.Main (testcase 4),
|
||||
// com.sun.jndi.dns.DnsName (testcase 5)
|
||||
String testcases[][] =
|
||||
{{"Loading shared boot module class first",
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,24 +23,38 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 6599079
|
||||
* @bug 6599079 8240848
|
||||
* @summary Non-standard ConfirmationCallback throws NPE
|
||||
* @modules jdk.security.auth
|
||||
*/
|
||||
|
||||
import javax.security.auth.callback.Callback;
|
||||
import javax.security.auth.callback.ConfirmationCallback;
|
||||
import com.sun.security.auth.callback.TextCallbackHandler;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
public class Confirm {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
// Provide answer in an individual stream so that the program
|
||||
// does not block.
|
||||
System.setIn(new ByteArrayInputStream("1\n".getBytes()));
|
||||
InputStream in = System.in;
|
||||
try {
|
||||
// Provide answer in an individual stream so that the program
|
||||
// does not block.
|
||||
System.setIn(new ByteArrayInputStream("1\n".getBytes()));
|
||||
new TextCallbackHandler().handle(new Callback[]{
|
||||
new ConfirmationCallback("Prince",
|
||||
ConfirmationCallback.INFORMATION,
|
||||
new String[]{"To be", "Not to be"}, 0)});
|
||||
|
||||
new TextCallbackHandler().handle(new Callback[]{
|
||||
new ConfirmationCallback("Prince", ConfirmationCallback.INFORMATION,
|
||||
new String[]{"To be", "Not to be"}, 0)});
|
||||
System.setIn(new ByteArrayInputStream("-1\n".getBytes()));
|
||||
new TextCallbackHandler().handle(new Callback[]{
|
||||
new ConfirmationCallback(
|
||||
ConfirmationCallback.INFORMATION,
|
||||
ConfirmationCallback.OK_CANCEL_OPTION,
|
||||
ConfirmationCallback.OK)});
|
||||
} finally {
|
||||
System.setIn(in);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
151
test/jdk/java/net/httpclient/TlsContextTest.java
Normal file
151
test/jdk/java/net/httpclient/TlsContextTest.java
Normal file
@ -0,0 +1,151 @@
|
||||
/*
|
||||
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.URI;
|
||||
import java.net.http.HttpClient;
|
||||
import java.net.http.HttpRequest;
|
||||
import java.net.http.HttpResponse;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import javax.net.ssl.SSLContext;
|
||||
import jdk.test.lib.net.SimpleSSLContext;
|
||||
import org.testng.annotations.AfterTest;
|
||||
import org.testng.annotations.BeforeTest;
|
||||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
import static java.lang.System.out;
|
||||
import static java.net.http.HttpClient.Version;
|
||||
import static java.net.http.HttpClient.Version.HTTP_1_1;
|
||||
import static java.net.http.HttpClient.Version.HTTP_2;
|
||||
import static java.net.http.HttpResponse.BodyHandlers.ofString;
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8239594
|
||||
* @summary This test verifies that the TLS version handshake respects ssl context
|
||||
* @library /test/lib http2/server
|
||||
* @build jdk.test.lib.net.SimpleSSLContext HttpServerAdapters TlsContextTest
|
||||
* @modules java.net.http/jdk.internal.net.http.common
|
||||
* java.net.http/jdk.internal.net.http.frame
|
||||
* java.net.http/jdk.internal.net.http.hpack
|
||||
* java.logging
|
||||
* java.base/sun.net.www.http
|
||||
* java.base/sun.net.www
|
||||
* java.base/sun.net
|
||||
* @run testng/othervm -Dtest.requiresHost=true
|
||||
* -Djdk.httpclient.HttpClient.log=headers
|
||||
* -Djdk.internal.httpclient.disableHostnameVerification
|
||||
* -Djdk.internal.httpclient.debug=false
|
||||
* TlsContextTest
|
||||
*/
|
||||
|
||||
public class TlsContextTest implements HttpServerAdapters {
|
||||
|
||||
static HttpTestServer https2Server;
|
||||
static String https2URI;
|
||||
SSLContext server;
|
||||
final static Integer ITERATIONS = 3;
|
||||
|
||||
@BeforeTest
|
||||
public void setUp() throws Exception {
|
||||
server = SimpleSSLContext.getContext("TLS");
|
||||
final ExecutorService executor = Executors.newCachedThreadPool();
|
||||
https2Server = HttpTestServer.of(
|
||||
new Http2TestServer("localhost", true, 0, executor, 50, null, server, true));
|
||||
https2Server.addHandler(new TlsVersionTestHandler("https", https2Server),
|
||||
"/server/");
|
||||
https2Server.start();
|
||||
https2URI = "https://" + https2Server.serverAuthority() + "/server/";
|
||||
}
|
||||
|
||||
@DataProvider(name = "scenarios")
|
||||
public Object[][] scenarios() throws Exception {
|
||||
return new Object[][]{
|
||||
{ SimpleSSLContext.getContext("TLS"), HTTP_2, "TLSv1.3" },
|
||||
{ SimpleSSLContext.getContext("TLSv1.2"), HTTP_2, "TLSv1.2" },
|
||||
{ SimpleSSLContext.getContext("TLSv1.1"), HTTP_1_1, "TLSv1.1" },
|
||||
{ SimpleSSLContext.getContext("TLSv1.1"), HTTP_2, "TLSv1.1" },
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests various scenarios between client and server tls handshake with valid http
|
||||
*/
|
||||
@Test(dataProvider = "scenarios")
|
||||
public void testVersionProtocols(SSLContext context,
|
||||
Version version,
|
||||
String expectedProtocol) throws Exception {
|
||||
HttpClient client = HttpClient.newBuilder()
|
||||
.sslContext(context)
|
||||
.version(version)
|
||||
.build();
|
||||
HttpRequest request = HttpRequest.newBuilder(new URI(https2URI))
|
||||
.GET()
|
||||
.build();
|
||||
for (int i = 0; i < ITERATIONS; i++) {
|
||||
HttpResponse<String> response = client.send(request, ofString());
|
||||
testAllProtocols(response, expectedProtocol);
|
||||
}
|
||||
}
|
||||
|
||||
private void testAllProtocols(HttpResponse<String> response,
|
||||
String expectedProtocol) throws Exception {
|
||||
String protocol = response.sslSession().get().getProtocol();
|
||||
int statusCode = response.statusCode();
|
||||
Version version = response.version();
|
||||
out.println("Got Body " + response.body());
|
||||
out.println("The protocol negotiated is :" + protocol);
|
||||
assertEquals(statusCode, 200);
|
||||
assertEquals(protocol, expectedProtocol);
|
||||
assertEquals(version, expectedProtocol.equals("TLSv1.1") ? HTTP_1_1 : HTTP_2);
|
||||
}
|
||||
|
||||
@AfterTest
|
||||
public void teardown() throws Exception {
|
||||
https2Server.stop();
|
||||
}
|
||||
|
||||
static class TlsVersionTestHandler implements HttpTestHandler {
|
||||
final String scheme;
|
||||
final HttpTestServer server;
|
||||
|
||||
TlsVersionTestHandler(String scheme, HttpTestServer server) {
|
||||
this.scheme = scheme;
|
||||
this.server = server;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(HttpTestExchange t) throws IOException {
|
||||
try (InputStream is = t.getRequestBody();
|
||||
OutputStream os = t.getResponseBody()) {
|
||||
byte[] bytes = is.readAllBytes();
|
||||
t.sendResponseHeaders(200, 10);
|
||||
os.write(bytes);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
148
test/jdk/java/net/httpclient/ssltest/TlsVersionTest.java
Normal file
148
test/jdk/java/net/httpclient/ssltest/TlsVersionTest.java
Normal file
@ -0,0 +1,148 @@
|
||||
/*
|
||||
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.net.http.HttpClient;
|
||||
import java.net.http.HttpRequest;
|
||||
import java.net.http.HttpResponse;
|
||||
import java.util.List;
|
||||
import javax.net.ssl.SSLContext;
|
||||
import jdk.test.lib.net.URIBuilder;
|
||||
import jdk.test.lib.security.KeyEntry;
|
||||
import jdk.test.lib.security.KeyStoreUtils;
|
||||
import jdk.test.lib.security.SSLContextBuilder;
|
||||
import static java.net.http.HttpResponse.BodyHandlers.ofString;
|
||||
import static java.net.http.HttpClient.Builder.NO_PROXY;
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8239594 8239595
|
||||
* @library /test/lib
|
||||
* @build Server TlsVersionTest
|
||||
* @run main/othervm
|
||||
* -Djdk.internal.httpclient.disableHostnameVerification
|
||||
* TlsVersionTest false
|
||||
*
|
||||
* @run main/othervm
|
||||
* -Djdk.internal.httpclient.disableHostnameVerification
|
||||
* -Djdk.tls.client.protocols="TLSv1.2"
|
||||
* TlsVersionTest true
|
||||
*/
|
||||
|
||||
/**
|
||||
* The test uses a valid self-signed certificate
|
||||
* that is installed in the trust store (so is trusted) and the same cert
|
||||
* is supplied by the server for its own identity.
|
||||
*
|
||||
* The test sets the context TLS Version 1.2 for client and 1.3
|
||||
* for the server, as per the bug, the server checks for the
|
||||
* negotiated protocol version, it should adhere to the protocol
|
||||
* version value used in SSL Context for client and the server should
|
||||
* be able to downgrade to 1.2 during the handshake. The test would
|
||||
* fail if the negotiated protocol version is different from the one set in
|
||||
* SSL Context for the client as it is the lower version.
|
||||
*/
|
||||
|
||||
public class TlsVersionTest {
|
||||
|
||||
private static Cert cert;
|
||||
// parameter to distinguish scenarios where system property is set and unset
|
||||
static String tlsVersion;
|
||||
static Server server;
|
||||
static int port;
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
try {
|
||||
tlsVersion = args[0];
|
||||
// certificate name set to be accepted by dummy server
|
||||
cert = Cert.valueOf("LOOPBACK_CERT");
|
||||
server = new Server(getServerSSLContext(cert));
|
||||
port = server.getPort();
|
||||
test(cert);
|
||||
} finally {
|
||||
if (server != null) {
|
||||
server.stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static SSLContext getServerSSLContext(Cert cert) throws Exception {
|
||||
SSLContextBuilder builder = SSLContextBuilder.builder();
|
||||
builder.trustStore(
|
||||
KeyStoreUtils.createTrustStore(new String[] { cert.certStr }));
|
||||
builder.keyStore(KeyStoreUtils.createKeyStore(
|
||||
new KeyEntry[] { new KeyEntry(cert.keyAlgo,
|
||||
cert.keyStr, new String[] { cert.certStr }) }));
|
||||
builder.protocol("TLSv1.3");
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
private static SSLContext getClientSSLContext(Cert cert) throws Exception {
|
||||
SSLContextBuilder builder = SSLContextBuilder.builder();
|
||||
builder.trustStore(
|
||||
KeyStoreUtils.createTrustStore(new String[] { cert.certStr }));
|
||||
builder.keyStore(KeyStoreUtils.createKeyStore(
|
||||
new KeyEntry[] { new KeyEntry(cert.keyAlgo,
|
||||
cert.keyStr, new String[] { cert.certStr }) }));
|
||||
if(tlsVersion.equals("false"))
|
||||
builder.protocol("TLSv1.2");
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
static void test(Cert cert) throws Exception {
|
||||
URI serverURI = URIBuilder.newBuilder()
|
||||
.scheme("https")
|
||||
.loopback()
|
||||
.port(server.getPort())
|
||||
.path("/foo")
|
||||
.build();
|
||||
String error = null;
|
||||
System.out.println("Making request to " + serverURI.getPath());
|
||||
SSLContext ctx = getClientSSLContext(cert);
|
||||
HttpClient client = HttpClient.newBuilder()
|
||||
.proxy(NO_PROXY)
|
||||
.sslContext(ctx)
|
||||
.build();
|
||||
|
||||
for (var version : List.of(HttpClient.Version.HTTP_2, HttpClient.Version.HTTP_1_1)) {
|
||||
HttpRequest request = HttpRequest.newBuilder(serverURI)
|
||||
.version(version)
|
||||
.GET()
|
||||
.build();
|
||||
System.out.println("Using version: " + version);
|
||||
try {
|
||||
HttpResponse<String> response = client.send(request, ofString());
|
||||
String protocol = response.sslSession().get().getProtocol();
|
||||
System.out.println("TLS version negotiated is: " + protocol);
|
||||
if (!(protocol.equals("TLSv1.2"))) {
|
||||
error = "Test failed : TLS version should be " + "TLSv1.2";
|
||||
throw new RuntimeException(error);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println("Caught Exception " + e);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -339,14 +339,12 @@ public class ChannelTests extends ZipFsBaseTest {
|
||||
/**
|
||||
* Validate when SeekableByteChannel::close is called more than once, that
|
||||
* no error occurs
|
||||
* <p>
|
||||
* Note: this is currently disabled due to bug JDK-8241883
|
||||
*
|
||||
* @param env Zip FS properties to use when creating the Zip file
|
||||
* @param compression The compression used when writing the entries
|
||||
* @throws Exception If an error occurs
|
||||
*/
|
||||
@Test(dataProvider = "zipfsMap", enabled = false)
|
||||
@Test(dataProvider = "zipfsMap")
|
||||
public void sbcCloseTest(final Map<String, String> env,
|
||||
final int compression) throws Exception {
|
||||
Path zipFile = generatePath(HERE, "test", ".zip");
|
||||
|
@ -69,26 +69,38 @@ public class LingeredAppForJps extends LingeredApp {
|
||||
File jar = new File(className + ".jar");
|
||||
String testClassPath = System.getProperty("test.class.path", "?");
|
||||
|
||||
// Classpath contains test class dir, libraries class dir(s), and
|
||||
// may contains some additional dirs.
|
||||
// We need to add to jar only classes from the test class directory.
|
||||
// Main class (this class) should only be found in one directory
|
||||
// from the classpath (test class dir), therefore only added once.
|
||||
// Libraries class dir(s) and any additional classpath directories
|
||||
// are written the jar manifest.
|
||||
|
||||
File manifestFile = new File(className + ".mf");
|
||||
String nl = System.getProperty("line.separator");
|
||||
try (BufferedWriter output = new BufferedWriter(new FileWriter(manifestFile))) {
|
||||
output.write("Main-Class: " + className + nl);
|
||||
}
|
||||
String manifestClasspath = "";
|
||||
|
||||
List<String> jarArgs = new ArrayList<>();
|
||||
jarArgs.add("-cfm");
|
||||
jarArgs.add(jar.getAbsolutePath());
|
||||
jarArgs.add(manifestFile.getAbsolutePath());
|
||||
|
||||
for (String path : testClassPath.split(File.pathSeparator)) {
|
||||
String classFullName = path + File.separator + className + ".class";
|
||||
File f = new File(classFullName);
|
||||
if (f.exists()) {
|
||||
jarArgs.add("-C");
|
||||
jarArgs.add(path);
|
||||
jarArgs.add(".");
|
||||
System.out.println("INFO: scheduled to jar " + path);
|
||||
break;
|
||||
jarArgs.add("-C");
|
||||
jarArgs.add(path);
|
||||
jarArgs.add(".");
|
||||
System.out.println("INFO: scheduled to jar " + path);
|
||||
} else {
|
||||
manifestClasspath += " " + new File(path).toURI();
|
||||
}
|
||||
}
|
||||
try (BufferedWriter output = new BufferedWriter(new FileWriter(manifestFile))) {
|
||||
output.write("Main-Class: " + className + nl);
|
||||
if (!manifestClasspath.isEmpty()) {
|
||||
output.write("Class-Path: " + manifestClasspath + nl);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,7 @@
|
||||
* @test
|
||||
* @library /test/lib
|
||||
* @modules jdk.jartool/sun.tools.jar
|
||||
* @build jdk.test.lib.apps.LingeredApp
|
||||
* @run main/othervm/timeout=360 TestJps
|
||||
*/
|
||||
|
||||
@ -32,6 +33,9 @@
|
||||
* Notes:
|
||||
* @modules tag is ignored in driver mode, so need main/othervm
|
||||
*
|
||||
* LingeredApp is pre-built separately to have jdk.test.lib classes ready
|
||||
* before the test is compiled (see JDK-8242282).
|
||||
*
|
||||
* Launching the process with relative path to an app jar file is not tested
|
||||
*
|
||||
* This test resides in default package, so correct appearance
|
||||
|
@ -318,7 +318,6 @@ module:jdk.naming.rmi
|
||||
module:jdk.net
|
||||
jdk.net
|
||||
module:jdk.pack
|
||||
module:jdk.rmic
|
||||
module:jdk.scripting.nashorn
|
||||
jdk.nashorn.api.scripting
|
||||
jdk.nashorn.api.tree
|
||||
|
@ -261,7 +261,6 @@ module:jdk.net
|
||||
jdk.net
|
||||
jdk.nio
|
||||
module:jdk.pack
|
||||
module:jdk.rmic
|
||||
module:jdk.scripting.nashorn
|
||||
jdk.nashorn.api.scripting
|
||||
jdk.nashorn.api.tree
|
||||
|
@ -2,6 +2,7 @@ enum EnumTest --
|
||||
EnumTest.<init>($enum$name/*synthetic*/, $enum$ordinal/*synthetic*/)
|
||||
EnumTest.<init>($enum$name/*synthetic*/, $enum$ordinal/*synthetic*/, a, ba)
|
||||
EnumTest.ok(c, dc)
|
||||
EnumTest.$values()/*synthetic*/
|
||||
EnumTest.values()
|
||||
EnumTest.valueOf(A, BA)
|
||||
EnumTest.valueOf(name/*implicit*/)
|
||||
EnumTest.valueOf(name/*implicit*/)
|
||||
|
@ -41,6 +41,7 @@
|
||||
@ExpectedClass(className = "EnumTest",
|
||||
expectedMethods = {"values()", "valueOf(java.lang.String)", "<clinit>()", "<init>(java.lang.String, int)"},
|
||||
expectedFields = {"A", "B"},
|
||||
expectedNumberOfSyntheticMethods = 1,
|
||||
expectedNumberOfSyntheticFields = 1)
|
||||
public enum EnumTest {
|
||||
A, B
|
||||
|
437
test/langtools/tools/javac/enum/BigEnum.java
Normal file
437
test/langtools/tools/javac/enum/BigEnum.java
Normal file
@ -0,0 +1,437 @@
|
||||
/*
|
||||
* Copyright (c) 2020, Google LLC. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8241798
|
||||
* @summary test an enum that is close to the maximum size
|
||||
*/
|
||||
|
||||
public enum BigEnum {
|
||||
C0001, C0002, C0003, C0004, C0005, C0006, C0007, C0008, C0009, C0010,
|
||||
C0011, C0012, C0013, C0014, C0015, C0016, C0017, C0018, C0019, C0020,
|
||||
C0021, C0022, C0023, C0024, C0025, C0026, C0027, C0028, C0029, C0030,
|
||||
C0031, C0032, C0033, C0034, C0035, C0036, C0037, C0038, C0039, C0040,
|
||||
C0041, C0042, C0043, C0044, C0045, C0046, C0047, C0048, C0049, C0050,
|
||||
C0051, C0052, C0053, C0054, C0055, C0056, C0057, C0058, C0059, C0060,
|
||||
C0061, C0062, C0063, C0064, C0065, C0066, C0067, C0068, C0069, C0070,
|
||||
C0071, C0072, C0073, C0074, C0075, C0076, C0077, C0078, C0079, C0080,
|
||||
C0081, C0082, C0083, C0084, C0085, C0086, C0087, C0088, C0089, C0090,
|
||||
C0091, C0092, C0093, C0094, C0095, C0096, C0097, C0098, C0099, C0100,
|
||||
C0101, C0102, C0103, C0104, C0105, C0106, C0107, C0108, C0109, C0110,
|
||||
C0111, C0112, C0113, C0114, C0115, C0116, C0117, C0118, C0119, C0120,
|
||||
C0121, C0122, C0123, C0124, C0125, C0126, C0127, C0128, C0129, C0130,
|
||||
C0131, C0132, C0133, C0134, C0135, C0136, C0137, C0138, C0139, C0140,
|
||||
C0141, C0142, C0143, C0144, C0145, C0146, C0147, C0148, C0149, C0150,
|
||||
C0151, C0152, C0153, C0154, C0155, C0156, C0157, C0158, C0159, C0160,
|
||||
C0161, C0162, C0163, C0164, C0165, C0166, C0167, C0168, C0169, C0170,
|
||||
C0171, C0172, C0173, C0174, C0175, C0176, C0177, C0178, C0179, C0180,
|
||||
C0181, C0182, C0183, C0184, C0185, C0186, C0187, C0188, C0189, C0190,
|
||||
C0191, C0192, C0193, C0194, C0195, C0196, C0197, C0198, C0199, C0200,
|
||||
C0201, C0202, C0203, C0204, C0205, C0206, C0207, C0208, C0209, C0210,
|
||||
C0211, C0212, C0213, C0214, C0215, C0216, C0217, C0218, C0219, C0220,
|
||||
C0221, C0222, C0223, C0224, C0225, C0226, C0227, C0228, C0229, C0230,
|
||||
C0231, C0232, C0233, C0234, C0235, C0236, C0237, C0238, C0239, C0240,
|
||||
C0241, C0242, C0243, C0244, C0245, C0246, C0247, C0248, C0249, C0250,
|
||||
C0251, C0252, C0253, C0254, C0255, C0256, C0257, C0258, C0259, C0260,
|
||||
C0261, C0262, C0263, C0264, C0265, C0266, C0267, C0268, C0269, C0270,
|
||||
C0271, C0272, C0273, C0274, C0275, C0276, C0277, C0278, C0279, C0280,
|
||||
C0281, C0282, C0283, C0284, C0285, C0286, C0287, C0288, C0289, C0290,
|
||||
C0291, C0292, C0293, C0294, C0295, C0296, C0297, C0298, C0299, C0300,
|
||||
C0301, C0302, C0303, C0304, C0305, C0306, C0307, C0308, C0309, C0310,
|
||||
C0311, C0312, C0313, C0314, C0315, C0316, C0317, C0318, C0319, C0320,
|
||||
C0321, C0322, C0323, C0324, C0325, C0326, C0327, C0328, C0329, C0330,
|
||||
C0331, C0332, C0333, C0334, C0335, C0336, C0337, C0338, C0339, C0340,
|
||||
C0341, C0342, C0343, C0344, C0345, C0346, C0347, C0348, C0349, C0350,
|
||||
C0351, C0352, C0353, C0354, C0355, C0356, C0357, C0358, C0359, C0360,
|
||||
C0361, C0362, C0363, C0364, C0365, C0366, C0367, C0368, C0369, C0370,
|
||||
C0371, C0372, C0373, C0374, C0375, C0376, C0377, C0378, C0379, C0380,
|
||||
C0381, C0382, C0383, C0384, C0385, C0386, C0387, C0388, C0389, C0390,
|
||||
C0391, C0392, C0393, C0394, C0395, C0396, C0397, C0398, C0399, C0400,
|
||||
C0401, C0402, C0403, C0404, C0405, C0406, C0407, C0408, C0409, C0410,
|
||||
C0411, C0412, C0413, C0414, C0415, C0416, C0417, C0418, C0419, C0420,
|
||||
C0421, C0422, C0423, C0424, C0425, C0426, C0427, C0428, C0429, C0430,
|
||||
C0431, C0432, C0433, C0434, C0435, C0436, C0437, C0438, C0439, C0440,
|
||||
C0441, C0442, C0443, C0444, C0445, C0446, C0447, C0448, C0449, C0450,
|
||||
C0451, C0452, C0453, C0454, C0455, C0456, C0457, C0458, C0459, C0460,
|
||||
C0461, C0462, C0463, C0464, C0465, C0466, C0467, C0468, C0469, C0470,
|
||||
C0471, C0472, C0473, C0474, C0475, C0476, C0477, C0478, C0479, C0480,
|
||||
C0481, C0482, C0483, C0484, C0485, C0486, C0487, C0488, C0489, C0490,
|
||||
C0491, C0492, C0493, C0494, C0495, C0496, C0497, C0498, C0499, C0500,
|
||||
C0501, C0502, C0503, C0504, C0505, C0506, C0507, C0508, C0509, C0510,
|
||||
C0511, C0512, C0513, C0514, C0515, C0516, C0517, C0518, C0519, C0520,
|
||||
C0521, C0522, C0523, C0524, C0525, C0526, C0527, C0528, C0529, C0530,
|
||||
C0531, C0532, C0533, C0534, C0535, C0536, C0537, C0538, C0539, C0540,
|
||||
C0541, C0542, C0543, C0544, C0545, C0546, C0547, C0548, C0549, C0550,
|
||||
C0551, C0552, C0553, C0554, C0555, C0556, C0557, C0558, C0559, C0560,
|
||||
C0561, C0562, C0563, C0564, C0565, C0566, C0567, C0568, C0569, C0570,
|
||||
C0571, C0572, C0573, C0574, C0575, C0576, C0577, C0578, C0579, C0580,
|
||||
C0581, C0582, C0583, C0584, C0585, C0586, C0587, C0588, C0589, C0590,
|
||||
C0591, C0592, C0593, C0594, C0595, C0596, C0597, C0598, C0599, C0600,
|
||||
C0601, C0602, C0603, C0604, C0605, C0606, C0607, C0608, C0609, C0610,
|
||||
C0611, C0612, C0613, C0614, C0615, C0616, C0617, C0618, C0619, C0620,
|
||||
C0621, C0622, C0623, C0624, C0625, C0626, C0627, C0628, C0629, C0630,
|
||||
C0631, C0632, C0633, C0634, C0635, C0636, C0637, C0638, C0639, C0640,
|
||||
C0641, C0642, C0643, C0644, C0645, C0646, C0647, C0648, C0649, C0650,
|
||||
C0651, C0652, C0653, C0654, C0655, C0656, C0657, C0658, C0659, C0660,
|
||||
C0661, C0662, C0663, C0664, C0665, C0666, C0667, C0668, C0669, C0670,
|
||||
C0671, C0672, C0673, C0674, C0675, C0676, C0677, C0678, C0679, C0680,
|
||||
C0681, C0682, C0683, C0684, C0685, C0686, C0687, C0688, C0689, C0690,
|
||||
C0691, C0692, C0693, C0694, C0695, C0696, C0697, C0698, C0699, C0700,
|
||||
C0701, C0702, C0703, C0704, C0705, C0706, C0707, C0708, C0709, C0710,
|
||||
C0711, C0712, C0713, C0714, C0715, C0716, C0717, C0718, C0719, C0720,
|
||||
C0721, C0722, C0723, C0724, C0725, C0726, C0727, C0728, C0729, C0730,
|
||||
C0731, C0732, C0733, C0734, C0735, C0736, C0737, C0738, C0739, C0740,
|
||||
C0741, C0742, C0743, C0744, C0745, C0746, C0747, C0748, C0749, C0750,
|
||||
C0751, C0752, C0753, C0754, C0755, C0756, C0757, C0758, C0759, C0760,
|
||||
C0761, C0762, C0763, C0764, C0765, C0766, C0767, C0768, C0769, C0770,
|
||||
C0771, C0772, C0773, C0774, C0775, C0776, C0777, C0778, C0779, C0780,
|
||||
C0781, C0782, C0783, C0784, C0785, C0786, C0787, C0788, C0789, C0790,
|
||||
C0791, C0792, C0793, C0794, C0795, C0796, C0797, C0798, C0799, C0800,
|
||||
C0801, C0802, C0803, C0804, C0805, C0806, C0807, C0808, C0809, C0810,
|
||||
C0811, C0812, C0813, C0814, C0815, C0816, C0817, C0818, C0819, C0820,
|
||||
C0821, C0822, C0823, C0824, C0825, C0826, C0827, C0828, C0829, C0830,
|
||||
C0831, C0832, C0833, C0834, C0835, C0836, C0837, C0838, C0839, C0840,
|
||||
C0841, C0842, C0843, C0844, C0845, C0846, C0847, C0848, C0849, C0850,
|
||||
C0851, C0852, C0853, C0854, C0855, C0856, C0857, C0858, C0859, C0860,
|
||||
C0861, C0862, C0863, C0864, C0865, C0866, C0867, C0868, C0869, C0870,
|
||||
C0871, C0872, C0873, C0874, C0875, C0876, C0877, C0878, C0879, C0880,
|
||||
C0881, C0882, C0883, C0884, C0885, C0886, C0887, C0888, C0889, C0890,
|
||||
C0891, C0892, C0893, C0894, C0895, C0896, C0897, C0898, C0899, C0900,
|
||||
C0901, C0902, C0903, C0904, C0905, C0906, C0907, C0908, C0909, C0910,
|
||||
C0911, C0912, C0913, C0914, C0915, C0916, C0917, C0918, C0919, C0920,
|
||||
C0921, C0922, C0923, C0924, C0925, C0926, C0927, C0928, C0929, C0930,
|
||||
C0931, C0932, C0933, C0934, C0935, C0936, C0937, C0938, C0939, C0940,
|
||||
C0941, C0942, C0943, C0944, C0945, C0946, C0947, C0948, C0949, C0950,
|
||||
C0951, C0952, C0953, C0954, C0955, C0956, C0957, C0958, C0959, C0960,
|
||||
C0961, C0962, C0963, C0964, C0965, C0966, C0967, C0968, C0969, C0970,
|
||||
C0971, C0972, C0973, C0974, C0975, C0976, C0977, C0978, C0979, C0980,
|
||||
C0981, C0982, C0983, C0984, C0985, C0986, C0987, C0988, C0989, C0990,
|
||||
C0991, C0992, C0993, C0994, C0995, C0996, C0997, C0998, C0999, C1000,
|
||||
C1001, C1002, C1003, C1004, C1005, C1006, C1007, C1008, C1009, C1010,
|
||||
C1011, C1012, C1013, C1014, C1015, C1016, C1017, C1018, C1019, C1020,
|
||||
C1021, C1022, C1023, C1024, C1025, C1026, C1027, C1028, C1029, C1030,
|
||||
C1031, C1032, C1033, C1034, C1035, C1036, C1037, C1038, C1039, C1040,
|
||||
C1041, C1042, C1043, C1044, C1045, C1046, C1047, C1048, C1049, C1050,
|
||||
C1051, C1052, C1053, C1054, C1055, C1056, C1057, C1058, C1059, C1060,
|
||||
C1061, C1062, C1063, C1064, C1065, C1066, C1067, C1068, C1069, C1070,
|
||||
C1071, C1072, C1073, C1074, C1075, C1076, C1077, C1078, C1079, C1080,
|
||||
C1081, C1082, C1083, C1084, C1085, C1086, C1087, C1088, C1089, C1090,
|
||||
C1091, C1092, C1093, C1094, C1095, C1096, C1097, C1098, C1099, C1100,
|
||||
C1101, C1102, C1103, C1104, C1105, C1106, C1107, C1108, C1109, C1110,
|
||||
C1111, C1112, C1113, C1114, C1115, C1116, C1117, C1118, C1119, C1120,
|
||||
C1121, C1122, C1123, C1124, C1125, C1126, C1127, C1128, C1129, C1130,
|
||||
C1131, C1132, C1133, C1134, C1135, C1136, C1137, C1138, C1139, C1140,
|
||||
C1141, C1142, C1143, C1144, C1145, C1146, C1147, C1148, C1149, C1150,
|
||||
C1151, C1152, C1153, C1154, C1155, C1156, C1157, C1158, C1159, C1160,
|
||||
C1161, C1162, C1163, C1164, C1165, C1166, C1167, C1168, C1169, C1170,
|
||||
C1171, C1172, C1173, C1174, C1175, C1176, C1177, C1178, C1179, C1180,
|
||||
C1181, C1182, C1183, C1184, C1185, C1186, C1187, C1188, C1189, C1190,
|
||||
C1191, C1192, C1193, C1194, C1195, C1196, C1197, C1198, C1199, C1200,
|
||||
C1201, C1202, C1203, C1204, C1205, C1206, C1207, C1208, C1209, C1210,
|
||||
C1211, C1212, C1213, C1214, C1215, C1216, C1217, C1218, C1219, C1220,
|
||||
C1221, C1222, C1223, C1224, C1225, C1226, C1227, C1228, C1229, C1230,
|
||||
C1231, C1232, C1233, C1234, C1235, C1236, C1237, C1238, C1239, C1240,
|
||||
C1241, C1242, C1243, C1244, C1245, C1246, C1247, C1248, C1249, C1250,
|
||||
C1251, C1252, C1253, C1254, C1255, C1256, C1257, C1258, C1259, C1260,
|
||||
C1261, C1262, C1263, C1264, C1265, C1266, C1267, C1268, C1269, C1270,
|
||||
C1271, C1272, C1273, C1274, C1275, C1276, C1277, C1278, C1279, C1280,
|
||||
C1281, C1282, C1283, C1284, C1285, C1286, C1287, C1288, C1289, C1290,
|
||||
C1291, C1292, C1293, C1294, C1295, C1296, C1297, C1298, C1299, C1300,
|
||||
C1301, C1302, C1303, C1304, C1305, C1306, C1307, C1308, C1309, C1310,
|
||||
C1311, C1312, C1313, C1314, C1315, C1316, C1317, C1318, C1319, C1320,
|
||||
C1321, C1322, C1323, C1324, C1325, C1326, C1327, C1328, C1329, C1330,
|
||||
C1331, C1332, C1333, C1334, C1335, C1336, C1337, C1338, C1339, C1340,
|
||||
C1341, C1342, C1343, C1344, C1345, C1346, C1347, C1348, C1349, C1350,
|
||||
C1351, C1352, C1353, C1354, C1355, C1356, C1357, C1358, C1359, C1360,
|
||||
C1361, C1362, C1363, C1364, C1365, C1366, C1367, C1368, C1369, C1370,
|
||||
C1371, C1372, C1373, C1374, C1375, C1376, C1377, C1378, C1379, C1380,
|
||||
C1381, C1382, C1383, C1384, C1385, C1386, C1387, C1388, C1389, C1390,
|
||||
C1391, C1392, C1393, C1394, C1395, C1396, C1397, C1398, C1399, C1400,
|
||||
C1401, C1402, C1403, C1404, C1405, C1406, C1407, C1408, C1409, C1410,
|
||||
C1411, C1412, C1413, C1414, C1415, C1416, C1417, C1418, C1419, C1420,
|
||||
C1421, C1422, C1423, C1424, C1425, C1426, C1427, C1428, C1429, C1430,
|
||||
C1431, C1432, C1433, C1434, C1435, C1436, C1437, C1438, C1439, C1440,
|
||||
C1441, C1442, C1443, C1444, C1445, C1446, C1447, C1448, C1449, C1450,
|
||||
C1451, C1452, C1453, C1454, C1455, C1456, C1457, C1458, C1459, C1460,
|
||||
C1461, C1462, C1463, C1464, C1465, C1466, C1467, C1468, C1469, C1470,
|
||||
C1471, C1472, C1473, C1474, C1475, C1476, C1477, C1478, C1479, C1480,
|
||||
C1481, C1482, C1483, C1484, C1485, C1486, C1487, C1488, C1489, C1490,
|
||||
C1491, C1492, C1493, C1494, C1495, C1496, C1497, C1498, C1499, C1500,
|
||||
C1501, C1502, C1503, C1504, C1505, C1506, C1507, C1508, C1509, C1510,
|
||||
C1511, C1512, C1513, C1514, C1515, C1516, C1517, C1518, C1519, C1520,
|
||||
C1521, C1522, C1523, C1524, C1525, C1526, C1527, C1528, C1529, C1530,
|
||||
C1531, C1532, C1533, C1534, C1535, C1536, C1537, C1538, C1539, C1540,
|
||||
C1541, C1542, C1543, C1544, C1545, C1546, C1547, C1548, C1549, C1550,
|
||||
C1551, C1552, C1553, C1554, C1555, C1556, C1557, C1558, C1559, C1560,
|
||||
C1561, C1562, C1563, C1564, C1565, C1566, C1567, C1568, C1569, C1570,
|
||||
C1571, C1572, C1573, C1574, C1575, C1576, C1577, C1578, C1579, C1580,
|
||||
C1581, C1582, C1583, C1584, C1585, C1586, C1587, C1588, C1589, C1590,
|
||||
C1591, C1592, C1593, C1594, C1595, C1596, C1597, C1598, C1599, C1600,
|
||||
C1601, C1602, C1603, C1604, C1605, C1606, C1607, C1608, C1609, C1610,
|
||||
C1611, C1612, C1613, C1614, C1615, C1616, C1617, C1618, C1619, C1620,
|
||||
C1621, C1622, C1623, C1624, C1625, C1626, C1627, C1628, C1629, C1630,
|
||||
C1631, C1632, C1633, C1634, C1635, C1636, C1637, C1638, C1639, C1640,
|
||||
C1641, C1642, C1643, C1644, C1645, C1646, C1647, C1648, C1649, C1650,
|
||||
C1651, C1652, C1653, C1654, C1655, C1656, C1657, C1658, C1659, C1660,
|
||||
C1661, C1662, C1663, C1664, C1665, C1666, C1667, C1668, C1669, C1670,
|
||||
C1671, C1672, C1673, C1674, C1675, C1676, C1677, C1678, C1679, C1680,
|
||||
C1681, C1682, C1683, C1684, C1685, C1686, C1687, C1688, C1689, C1690,
|
||||
C1691, C1692, C1693, C1694, C1695, C1696, C1697, C1698, C1699, C1700,
|
||||
C1701, C1702, C1703, C1704, C1705, C1706, C1707, C1708, C1709, C1710,
|
||||
C1711, C1712, C1713, C1714, C1715, C1716, C1717, C1718, C1719, C1720,
|
||||
C1721, C1722, C1723, C1724, C1725, C1726, C1727, C1728, C1729, C1730,
|
||||
C1731, C1732, C1733, C1734, C1735, C1736, C1737, C1738, C1739, C1740,
|
||||
C1741, C1742, C1743, C1744, C1745, C1746, C1747, C1748, C1749, C1750,
|
||||
C1751, C1752, C1753, C1754, C1755, C1756, C1757, C1758, C1759, C1760,
|
||||
C1761, C1762, C1763, C1764, C1765, C1766, C1767, C1768, C1769, C1770,
|
||||
C1771, C1772, C1773, C1774, C1775, C1776, C1777, C1778, C1779, C1780,
|
||||
C1781, C1782, C1783, C1784, C1785, C1786, C1787, C1788, C1789, C1790,
|
||||
C1791, C1792, C1793, C1794, C1795, C1796, C1797, C1798, C1799, C1800,
|
||||
C1801, C1802, C1803, C1804, C1805, C1806, C1807, C1808, C1809, C1810,
|
||||
C1811, C1812, C1813, C1814, C1815, C1816, C1817, C1818, C1819, C1820,
|
||||
C1821, C1822, C1823, C1824, C1825, C1826, C1827, C1828, C1829, C1830,
|
||||
C1831, C1832, C1833, C1834, C1835, C1836, C1837, C1838, C1839, C1840,
|
||||
C1841, C1842, C1843, C1844, C1845, C1846, C1847, C1848, C1849, C1850,
|
||||
C1851, C1852, C1853, C1854, C1855, C1856, C1857, C1858, C1859, C1860,
|
||||
C1861, C1862, C1863, C1864, C1865, C1866, C1867, C1868, C1869, C1870,
|
||||
C1871, C1872, C1873, C1874, C1875, C1876, C1877, C1878, C1879, C1880,
|
||||
C1881, C1882, C1883, C1884, C1885, C1886, C1887, C1888, C1889, C1890,
|
||||
C1891, C1892, C1893, C1894, C1895, C1896, C1897, C1898, C1899, C1900,
|
||||
C1901, C1902, C1903, C1904, C1905, C1906, C1907, C1908, C1909, C1910,
|
||||
C1911, C1912, C1913, C1914, C1915, C1916, C1917, C1918, C1919, C1920,
|
||||
C1921, C1922, C1923, C1924, C1925, C1926, C1927, C1928, C1929, C1930,
|
||||
C1931, C1932, C1933, C1934, C1935, C1936, C1937, C1938, C1939, C1940,
|
||||
C1941, C1942, C1943, C1944, C1945, C1946, C1947, C1948, C1949, C1950,
|
||||
C1951, C1952, C1953, C1954, C1955, C1956, C1957, C1958, C1959, C1960,
|
||||
C1961, C1962, C1963, C1964, C1965, C1966, C1967, C1968, C1969, C1970,
|
||||
C1971, C1972, C1973, C1974, C1975, C1976, C1977, C1978, C1979, C1980,
|
||||
C1981, C1982, C1983, C1984, C1985, C1986, C1987, C1988, C1989, C1990,
|
||||
C1991, C1992, C1993, C1994, C1995, C1996, C1997, C1998, C1999, C2000,
|
||||
C2001, C2002, C2003, C2004, C2005, C2006, C2007, C2008, C2009, C2010,
|
||||
C2011, C2012, C2013, C2014, C2015, C2016, C2017, C2018, C2019, C2020,
|
||||
C2021, C2022, C2023, C2024, C2025, C2026, C2027, C2028, C2029, C2030,
|
||||
C2031, C2032, C2033, C2034, C2035, C2036, C2037, C2038, C2039, C2040,
|
||||
C2041, C2042, C2043, C2044, C2045, C2046, C2047, C2048, C2049, C2050,
|
||||
C2051, C2052, C2053, C2054, C2055, C2056, C2057, C2058, C2059, C2060,
|
||||
C2061, C2062, C2063, C2064, C2065, C2066, C2067, C2068, C2069, C2070,
|
||||
C2071, C2072, C2073, C2074, C2075, C2076, C2077, C2078, C2079, C2080,
|
||||
C2081, C2082, C2083, C2084, C2085, C2086, C2087, C2088, C2089, C2090,
|
||||
C2091, C2092, C2093, C2094, C2095, C2096, C2097, C2098, C2099, C2100,
|
||||
C2101, C2102, C2103, C2104, C2105, C2106, C2107, C2108, C2109, C2110,
|
||||
C2111, C2112, C2113, C2114, C2115, C2116, C2117, C2118, C2119, C2120,
|
||||
C2121, C2122, C2123, C2124, C2125, C2126, C2127, C2128, C2129, C2130,
|
||||
C2131, C2132, C2133, C2134, C2135, C2136, C2137, C2138, C2139, C2140,
|
||||
C2141, C2142, C2143, C2144, C2145, C2146, C2147, C2148, C2149, C2150,
|
||||
C2151, C2152, C2153, C2154, C2155, C2156, C2157, C2158, C2159, C2160,
|
||||
C2161, C2162, C2163, C2164, C2165, C2166, C2167, C2168, C2169, C2170,
|
||||
C2171, C2172, C2173, C2174, C2175, C2176, C2177, C2178, C2179, C2180,
|
||||
C2181, C2182, C2183, C2184, C2185, C2186, C2187, C2188, C2189, C2190,
|
||||
C2191, C2192, C2193, C2194, C2195, C2196, C2197, C2198, C2199, C2200,
|
||||
C2201, C2202, C2203, C2204, C2205, C2206, C2207, C2208, C2209, C2210,
|
||||
C2211, C2212, C2213, C2214, C2215, C2216, C2217, C2218, C2219, C2220,
|
||||
C2221, C2222, C2223, C2224, C2225, C2226, C2227, C2228, C2229, C2230,
|
||||
C2231, C2232, C2233, C2234, C2235, C2236, C2237, C2238, C2239, C2240,
|
||||
C2241, C2242, C2243, C2244, C2245, C2246, C2247, C2248, C2249, C2250,
|
||||
C2251, C2252, C2253, C2254, C2255, C2256, C2257, C2258, C2259, C2260,
|
||||
C2261, C2262, C2263, C2264, C2265, C2266, C2267, C2268, C2269, C2270,
|
||||
C2271, C2272, C2273, C2274, C2275, C2276, C2277, C2278, C2279, C2280,
|
||||
C2281, C2282, C2283, C2284, C2285, C2286, C2287, C2288, C2289, C2290,
|
||||
C2291, C2292, C2293, C2294, C2295, C2296, C2297, C2298, C2299, C2300,
|
||||
C2301, C2302, C2303, C2304, C2305, C2306, C2307, C2308, C2309, C2310,
|
||||
C2311, C2312, C2313, C2314, C2315, C2316, C2317, C2318, C2319, C2320,
|
||||
C2321, C2322, C2323, C2324, C2325, C2326, C2327, C2328, C2329, C2330,
|
||||
C2331, C2332, C2333, C2334, C2335, C2336, C2337, C2338, C2339, C2340,
|
||||
C2341, C2342, C2343, C2344, C2345, C2346, C2347, C2348, C2349, C2350,
|
||||
C2351, C2352, C2353, C2354, C2355, C2356, C2357, C2358, C2359, C2360,
|
||||
C2361, C2362, C2363, C2364, C2365, C2366, C2367, C2368, C2369, C2370,
|
||||
C2371, C2372, C2373, C2374, C2375, C2376, C2377, C2378, C2379, C2380,
|
||||
C2381, C2382, C2383, C2384, C2385, C2386, C2387, C2388, C2389, C2390,
|
||||
C2391, C2392, C2393, C2394, C2395, C2396, C2397, C2398, C2399, C2400,
|
||||
C2401, C2402, C2403, C2404, C2405, C2406, C2407, C2408, C2409, C2410,
|
||||
C2411, C2412, C2413, C2414, C2415, C2416, C2417, C2418, C2419, C2420,
|
||||
C2421, C2422, C2423, C2424, C2425, C2426, C2427, C2428, C2429, C2430,
|
||||
C2431, C2432, C2433, C2434, C2435, C2436, C2437, C2438, C2439, C2440,
|
||||
C2441, C2442, C2443, C2444, C2445, C2446, C2447, C2448, C2449, C2450,
|
||||
C2451, C2452, C2453, C2454, C2455, C2456, C2457, C2458, C2459, C2460,
|
||||
C2461, C2462, C2463, C2464, C2465, C2466, C2467, C2468, C2469, C2470,
|
||||
C2471, C2472, C2473, C2474, C2475, C2476, C2477, C2478, C2479, C2480,
|
||||
C2481, C2482, C2483, C2484, C2485, C2486, C2487, C2488, C2489, C2490,
|
||||
C2491, C2492, C2493, C2494, C2495, C2496, C2497, C2498, C2499, C2500,
|
||||
C2501, C2502, C2503, C2504, C2505, C2506, C2507, C2508, C2509, C2510,
|
||||
C2511, C2512, C2513, C2514, C2515, C2516, C2517, C2518, C2519, C2520,
|
||||
C2521, C2522, C2523, C2524, C2525, C2526, C2527, C2528, C2529, C2530,
|
||||
C2531, C2532, C2533, C2534, C2535, C2536, C2537, C2538, C2539, C2540,
|
||||
C2541, C2542, C2543, C2544, C2545, C2546, C2547, C2548, C2549, C2550,
|
||||
C2551, C2552, C2553, C2554, C2555, C2556, C2557, C2558, C2559, C2560,
|
||||
C2561, C2562, C2563, C2564, C2565, C2566, C2567, C2568, C2569, C2570,
|
||||
C2571, C2572, C2573, C2574, C2575, C2576, C2577, C2578, C2579, C2580,
|
||||
C2581, C2582, C2583, C2584, C2585, C2586, C2587, C2588, C2589, C2590,
|
||||
C2591, C2592, C2593, C2594, C2595, C2596, C2597, C2598, C2599, C2600,
|
||||
C2601, C2602, C2603, C2604, C2605, C2606, C2607, C2608, C2609, C2610,
|
||||
C2611, C2612, C2613, C2614, C2615, C2616, C2617, C2618, C2619, C2620,
|
||||
C2621, C2622, C2623, C2624, C2625, C2626, C2627, C2628, C2629, C2630,
|
||||
C2631, C2632, C2633, C2634, C2635, C2636, C2637, C2638, C2639, C2640,
|
||||
C2641, C2642, C2643, C2644, C2645, C2646, C2647, C2648, C2649, C2650,
|
||||
C2651, C2652, C2653, C2654, C2655, C2656, C2657, C2658, C2659, C2660,
|
||||
C2661, C2662, C2663, C2664, C2665, C2666, C2667, C2668, C2669, C2670,
|
||||
C2671, C2672, C2673, C2674, C2675, C2676, C2677, C2678, C2679, C2680,
|
||||
C2681, C2682, C2683, C2684, C2685, C2686, C2687, C2688, C2689, C2690,
|
||||
C2691, C2692, C2693, C2694, C2695, C2696, C2697, C2698, C2699, C2700,
|
||||
C2701, C2702, C2703, C2704, C2705, C2706, C2707, C2708, C2709, C2710,
|
||||
C2711, C2712, C2713, C2714, C2715, C2716, C2717, C2718, C2719, C2720,
|
||||
C2721, C2722, C2723, C2724, C2725, C2726, C2727, C2728, C2729, C2730,
|
||||
C2731, C2732, C2733, C2734, C2735, C2736, C2737, C2738, C2739, C2740,
|
||||
C2741, C2742, C2743, C2744, C2745, C2746, C2747, C2748, C2749, C2750,
|
||||
C2751, C2752, C2753, C2754, C2755, C2756, C2757, C2758, C2759, C2760,
|
||||
C2761, C2762, C2763, C2764, C2765, C2766, C2767, C2768, C2769, C2770,
|
||||
C2771, C2772, C2773, C2774, C2775, C2776, C2777, C2778, C2779, C2780,
|
||||
C2781, C2782, C2783, C2784, C2785, C2786, C2787, C2788, C2789, C2790,
|
||||
C2791, C2792, C2793, C2794, C2795, C2796, C2797, C2798, C2799, C2800,
|
||||
C2801, C2802, C2803, C2804, C2805, C2806, C2807, C2808, C2809, C2810,
|
||||
C2811, C2812, C2813, C2814, C2815, C2816, C2817, C2818, C2819, C2820,
|
||||
C2821, C2822, C2823, C2824, C2825, C2826, C2827, C2828, C2829, C2830,
|
||||
C2831, C2832, C2833, C2834, C2835, C2836, C2837, C2838, C2839, C2840,
|
||||
C2841, C2842, C2843, C2844, C2845, C2846, C2847, C2848, C2849, C2850,
|
||||
C2851, C2852, C2853, C2854, C2855, C2856, C2857, C2858, C2859, C2860,
|
||||
C2861, C2862, C2863, C2864, C2865, C2866, C2867, C2868, C2869, C2870,
|
||||
C2871, C2872, C2873, C2874, C2875, C2876, C2877, C2878, C2879, C2880,
|
||||
C2881, C2882, C2883, C2884, C2885, C2886, C2887, C2888, C2889, C2890,
|
||||
C2891, C2892, C2893, C2894, C2895, C2896, C2897, C2898, C2899, C2900,
|
||||
C2901, C2902, C2903, C2904, C2905, C2906, C2907, C2908, C2909, C2910,
|
||||
C2911, C2912, C2913, C2914, C2915, C2916, C2917, C2918, C2919, C2920,
|
||||
C2921, C2922, C2923, C2924, C2925, C2926, C2927, C2928, C2929, C2930,
|
||||
C2931, C2932, C2933, C2934, C2935, C2936, C2937, C2938, C2939, C2940,
|
||||
C2941, C2942, C2943, C2944, C2945, C2946, C2947, C2948, C2949, C2950,
|
||||
C2951, C2952, C2953, C2954, C2955, C2956, C2957, C2958, C2959, C2960,
|
||||
C2961, C2962, C2963, C2964, C2965, C2966, C2967, C2968, C2969, C2970,
|
||||
C2971, C2972, C2973, C2974, C2975, C2976, C2977, C2978, C2979, C2980,
|
||||
C2981, C2982, C2983, C2984, C2985, C2986, C2987, C2988, C2989, C2990,
|
||||
C2991, C2992, C2993, C2994, C2995, C2996, C2997, C2998, C2999, C3000,
|
||||
C3001, C3002, C3003, C3004, C3005, C3006, C3007, C3008, C3009, C3010,
|
||||
C3011, C3012, C3013, C3014, C3015, C3016, C3017, C3018, C3019, C3020,
|
||||
C3021, C3022, C3023, C3024, C3025, C3026, C3027, C3028, C3029, C3030,
|
||||
C3031, C3032, C3033, C3034, C3035, C3036, C3037, C3038, C3039, C3040,
|
||||
C3041, C3042, C3043, C3044, C3045, C3046, C3047, C3048, C3049, C3050,
|
||||
C3051, C3052, C3053, C3054, C3055, C3056, C3057, C3058, C3059, C3060,
|
||||
C3061, C3062, C3063, C3064, C3065, C3066, C3067, C3068, C3069, C3070,
|
||||
C3071, C3072, C3073, C3074, C3075, C3076, C3077, C3078, C3079, C3080,
|
||||
C3081, C3082, C3083, C3084, C3085, C3086, C3087, C3088, C3089, C3090,
|
||||
C3091, C3092, C3093, C3094, C3095, C3096, C3097, C3098, C3099, C3100,
|
||||
C3101, C3102, C3103, C3104, C3105, C3106, C3107, C3108, C3109, C3110,
|
||||
C3111, C3112, C3113, C3114, C3115, C3116, C3117, C3118, C3119, C3120,
|
||||
C3121, C3122, C3123, C3124, C3125, C3126, C3127, C3128, C3129, C3130,
|
||||
C3131, C3132, C3133, C3134, C3135, C3136, C3137, C3138, C3139, C3140,
|
||||
C3141, C3142, C3143, C3144, C3145, C3146, C3147, C3148, C3149, C3150,
|
||||
C3151, C3152, C3153, C3154, C3155, C3156, C3157, C3158, C3159, C3160,
|
||||
C3161, C3162, C3163, C3164, C3165, C3166, C3167, C3168, C3169, C3170,
|
||||
C3171, C3172, C3173, C3174, C3175, C3176, C3177, C3178, C3179, C3180,
|
||||
C3181, C3182, C3183, C3184, C3185, C3186, C3187, C3188, C3189, C3190,
|
||||
C3191, C3192, C3193, C3194, C3195, C3196, C3197, C3198, C3199, C3200,
|
||||
C3201, C3202, C3203, C3204, C3205, C3206, C3207, C3208, C3209, C3210,
|
||||
C3211, C3212, C3213, C3214, C3215, C3216, C3217, C3218, C3219, C3220,
|
||||
C3221, C3222, C3223, C3224, C3225, C3226, C3227, C3228, C3229, C3230,
|
||||
C3231, C3232, C3233, C3234, C3235, C3236, C3237, C3238, C3239, C3240,
|
||||
C3241, C3242, C3243, C3244, C3245, C3246, C3247, C3248, C3249, C3250,
|
||||
C3251, C3252, C3253, C3254, C3255, C3256, C3257, C3258, C3259, C3260,
|
||||
C3261, C3262, C3263, C3264, C3265, C3266, C3267, C3268, C3269, C3270,
|
||||
C3271, C3272, C3273, C3274, C3275, C3276, C3277, C3278, C3279, C3280,
|
||||
C3281, C3282, C3283, C3284, C3285, C3286, C3287, C3288, C3289, C3290,
|
||||
C3291, C3292, C3293, C3294, C3295, C3296, C3297, C3298, C3299, C3300,
|
||||
C3301, C3302, C3303, C3304, C3305, C3306, C3307, C3308, C3309, C3310,
|
||||
C3311, C3312, C3313, C3314, C3315, C3316, C3317, C3318, C3319, C3320,
|
||||
C3321, C3322, C3323, C3324, C3325, C3326, C3327, C3328, C3329, C3330,
|
||||
C3331, C3332, C3333, C3334, C3335, C3336, C3337, C3338, C3339, C3340,
|
||||
C3341, C3342, C3343, C3344, C3345, C3346, C3347, C3348, C3349, C3350,
|
||||
C3351, C3352, C3353, C3354, C3355, C3356, C3357, C3358, C3359, C3360,
|
||||
C3361, C3362, C3363, C3364, C3365, C3366, C3367, C3368, C3369, C3370,
|
||||
C3371, C3372, C3373, C3374, C3375, C3376, C3377, C3378, C3379, C3380,
|
||||
C3381, C3382, C3383, C3384, C3385, C3386, C3387, C3388, C3389, C3390,
|
||||
C3391, C3392, C3393, C3394, C3395, C3396, C3397, C3398, C3399, C3400,
|
||||
C3401, C3402, C3403, C3404, C3405, C3406, C3407, C3408, C3409, C3410,
|
||||
C3411, C3412, C3413, C3414, C3415, C3416, C3417, C3418, C3419, C3420,
|
||||
C3421, C3422, C3423, C3424, C3425, C3426, C3427, C3428, C3429, C3430,
|
||||
C3431, C3432, C3433, C3434, C3435, C3436, C3437, C3438, C3439, C3440,
|
||||
C3441, C3442, C3443, C3444, C3445, C3446, C3447, C3448, C3449, C3450,
|
||||
C3451, C3452, C3453, C3454, C3455, C3456, C3457, C3458, C3459, C3460,
|
||||
C3461, C3462, C3463, C3464, C3465, C3466, C3467, C3468, C3469, C3470,
|
||||
C3471, C3472, C3473, C3474, C3475, C3476, C3477, C3478, C3479, C3480,
|
||||
C3481, C3482, C3483, C3484, C3485, C3486, C3487, C3488, C3489, C3490,
|
||||
C3491, C3492, C3493, C3494, C3495, C3496, C3497, C3498, C3499, C3500,
|
||||
C3501, C3502, C3503, C3504, C3505, C3506, C3507, C3508, C3509, C3510,
|
||||
C3511, C3512, C3513, C3514, C3515, C3516, C3517, C3518, C3519, C3520,
|
||||
C3521, C3522, C3523, C3524, C3525, C3526, C3527, C3528, C3529, C3530,
|
||||
C3531, C3532, C3533, C3534, C3535, C3536, C3537, C3538, C3539, C3540,
|
||||
C3541, C3542, C3543, C3544, C3545, C3546, C3547, C3548, C3549, C3550,
|
||||
C3551, C3552, C3553, C3554, C3555, C3556, C3557, C3558, C3559, C3560,
|
||||
C3561, C3562, C3563, C3564, C3565, C3566, C3567, C3568, C3569, C3570,
|
||||
C3571, C3572, C3573, C3574, C3575, C3576, C3577, C3578, C3579, C3580,
|
||||
C3581, C3582, C3583, C3584, C3585, C3586, C3587, C3588, C3589, C3590,
|
||||
C3591, C3592, C3593, C3594, C3595, C3596, C3597, C3598, C3599, C3600,
|
||||
C3601, C3602, C3603, C3604, C3605, C3606, C3607, C3608, C3609, C3610,
|
||||
C3611, C3612, C3613, C3614, C3615, C3616, C3617, C3618, C3619, C3620,
|
||||
C3621, C3622, C3623, C3624, C3625, C3626, C3627, C3628, C3629, C3630,
|
||||
C3631, C3632, C3633, C3634, C3635, C3636, C3637, C3638, C3639, C3640,
|
||||
C3641, C3642, C3643, C3644, C3645, C3646, C3647, C3648, C3649, C3650,
|
||||
C3651, C3652, C3653, C3654, C3655, C3656, C3657, C3658, C3659, C3660,
|
||||
C3661, C3662, C3663, C3664, C3665, C3666, C3667, C3668, C3669, C3670,
|
||||
C3671, C3672, C3673, C3674, C3675, C3676, C3677, C3678, C3679, C3680,
|
||||
C3681, C3682, C3683, C3684, C3685, C3686, C3687, C3688, C3689, C3690,
|
||||
C3691, C3692, C3693, C3694, C3695, C3696, C3697, C3698, C3699, C3700,
|
||||
C3701, C3702, C3703, C3704, C3705, C3706, C3707, C3708, C3709, C3710,
|
||||
C3711, C3712, C3713, C3714, C3715, C3716, C3717, C3718, C3719, C3720,
|
||||
C3721, C3722, C3723, C3724, C3725, C3726, C3727, C3728, C3729, C3730,
|
||||
C3731, C3732, C3733, C3734, C3735, C3736, C3737, C3738, C3739, C3740,
|
||||
C3741, C3742, C3743, C3744, C3745, C3746, C3747, C3748, C3749, C3750,
|
||||
C3751, C3752, C3753, C3754, C3755, C3756, C3757, C3758, C3759, C3760,
|
||||
C3761, C3762, C3763, C3764, C3765, C3766, C3767, C3768, C3769, C3770,
|
||||
C3771, C3772, C3773, C3774, C3775, C3776, C3777, C3778, C3779, C3780,
|
||||
C3781, C3782, C3783, C3784, C3785, C3786, C3787, C3788, C3789, C3790,
|
||||
C3791, C3792, C3793, C3794, C3795, C3796, C3797, C3798, C3799, C3800,
|
||||
C3801, C3802, C3803, C3804, C3805, C3806, C3807, C3808, C3809, C3810,
|
||||
C3811, C3812, C3813, C3814, C3815, C3816, C3817, C3818, C3819, C3820,
|
||||
C3821, C3822, C3823, C3824, C3825, C3826, C3827, C3828, C3829, C3830,
|
||||
C3831, C3832, C3833, C3834, C3835, C3836, C3837, C3838, C3839, C3840,
|
||||
C3841, C3842, C3843, C3844, C3845, C3846, C3847, C3848, C3849, C3850,
|
||||
C3851, C3852, C3853, C3854, C3855, C3856, C3857, C3858, C3859, C3860,
|
||||
C3861, C3862, C3863, C3864, C3865, C3866, C3867, C3868, C3869, C3870,
|
||||
C3871, C3872, C3873, C3874, C3875, C3876, C3877, C3878, C3879, C3880,
|
||||
C3881, C3882, C3883, C3884, C3885, C3886, C3887, C3888, C3889, C3890,
|
||||
C3891, C3892, C3893, C3894, C3895, C3896, C3897, C3898, C3899, C3900,
|
||||
C3901, C3902, C3903, C3904, C3905, C3906, C3907, C3908, C3909, C3910,
|
||||
C3911, C3912, C3913, C3914, C3915, C3916, C3917, C3918, C3919, C3920,
|
||||
C3921, C3922, C3923, C3924, C3925, C3926, C3927, C3928, C3929, C3930,
|
||||
C3931, C3932, C3933, C3934, C3935, C3936, C3937, C3938, C3939, C3940,
|
||||
C3941, C3942, C3943, C3944, C3945, C3946, C3947, C3948, C3949, C3950,
|
||||
C3951, C3952, C3953, C3954, C3955, C3956, C3957, C3958, C3959, C3960,
|
||||
C3961, C3962, C3963, C3964, C3965, C3966, C3967, C3968, C3969, C3970,
|
||||
C3971, C3972, C3973, C3974, C3975, C3976, C3977, C3978, C3979, C3980,
|
||||
C3981, C3982, C3983, C3984, C3985, C3986, C3987, C3988, C3989, C3990,
|
||||
C3991, C3992, C3993, C3994, C3995, C3996, C3997, C3998, C3999, C4000;
|
||||
|
||||
public static void main(String[] args) {
|
||||
if (values().length != 4000) {
|
||||
throw new AssertionError(values().length);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -92,18 +92,17 @@ public class InverseDeps {
|
||||
@DataProvider(name = "jdkModules")
|
||||
public Object[][] jdkModules() {
|
||||
return new Object[][]{
|
||||
// --require and a subset of dependences
|
||||
// --require and a subset of dependencies
|
||||
{ "jdk.compiler", new String[][] {
|
||||
new String[] {"jdk.compiler", "jdk.jshell"},
|
||||
new String[] {"jdk.compiler", "jdk.rmic"},
|
||||
new String[] {"jdk.compiler", "jdk.javadoc", "jdk.rmic"},
|
||||
new String[] {"jdk.compiler", "jdk.javadoc"},
|
||||
}
|
||||
},
|
||||
{ "java.compiler", new String[][] {
|
||||
new String[] {"java.compiler", "jdk.jshell"},
|
||||
new String[] {"java.compiler", "jdk.compiler", "jdk.jshell"},
|
||||
new String[] {"java.compiler", "jdk.compiler", "jdk.rmic"},
|
||||
new String[] {"java.compiler", "jdk.compiler", "jdk.javadoc", "jdk.rmic"},
|
||||
new String[] {"java.compiler", "jdk.compiler"},
|
||||
new String[] {"java.compiler", "jdk.compiler", "jdk.javadoc"},
|
||||
new String[] {"java.compiler", "java.se"},
|
||||
}
|
||||
},
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -27,6 +27,7 @@ import java.util.*;
|
||||
import java.io.*;
|
||||
import java.security.*;
|
||||
import java.security.cert.*;
|
||||
import java.util.function.Supplier;
|
||||
import javax.net.ssl.*;
|
||||
|
||||
/**
|
||||
@ -50,7 +51,12 @@ public class SimpleSSLContext {
|
||||
* source directory
|
||||
*/
|
||||
public SimpleSSLContext() throws IOException {
|
||||
this(() -> "TLS");
|
||||
}
|
||||
|
||||
private SimpleSSLContext(Supplier<String> protocols) throws IOException {
|
||||
try {
|
||||
final String proto = protocols.get();
|
||||
AccessController.doPrivileged(new PrivilegedExceptionAction<Void>() {
|
||||
@Override
|
||||
public Void run() throws Exception {
|
||||
@ -63,7 +69,7 @@ public class SimpleSSLContext {
|
||||
File f = new File(path, "jdk/test/lib/net/testkeys");
|
||||
if (f.exists()) {
|
||||
try (FileInputStream fis = new FileInputStream(f)) {
|
||||
init(fis);
|
||||
init(fis, proto);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -97,11 +103,11 @@ public class SimpleSSLContext {
|
||||
public SimpleSSLContext(String dir) throws IOException {
|
||||
String file = dir + "/testkeys";
|
||||
try (FileInputStream fis = new FileInputStream(file)) {
|
||||
init(fis);
|
||||
init(fis, "TLS");
|
||||
}
|
||||
}
|
||||
|
||||
private void init(InputStream i) throws IOException {
|
||||
private void init(InputStream i, String protocol) throws IOException {
|
||||
try {
|
||||
char[] passphrase = "passphrase".toCharArray();
|
||||
KeyStore ks = KeyStore.getInstance("PKCS12");
|
||||
@ -113,7 +119,7 @@ public class SimpleSSLContext {
|
||||
TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
|
||||
tmf.init(ks);
|
||||
|
||||
ssl = SSLContext.getInstance("TLS");
|
||||
ssl = SSLContext.getInstance(protocol);
|
||||
ssl.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
|
||||
} catch (KeyManagementException | KeyStoreException |
|
||||
UnrecoverableKeyException | CertificateException |
|
||||
@ -122,6 +128,15 @@ public class SimpleSSLContext {
|
||||
}
|
||||
}
|
||||
|
||||
public static SSLContext getContext(String protocol) throws IOException {
|
||||
if(protocol == null || protocol.isEmpty()) {
|
||||
return new SimpleSSLContext().get();
|
||||
}
|
||||
else {
|
||||
return new SimpleSSLContext(() -> protocol).get();
|
||||
}
|
||||
}
|
||||
|
||||
public SSLContext get() {
|
||||
return ssl;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user