Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
30d9e010
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
30d9e010
编写于
3月 24, 2020
作者:
A
andrew
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
48197d31
67f10f93
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
73 addition
and
236 deletion
+73
-236
.hgtags
.hgtags
+2
-0
src/share/classes/java/lang/ClassLoader.java
src/share/classes/java/lang/ClassLoader.java
+10
-22
src/share/classes/java/lang/Runtime.java
src/share/classes/java/lang/Runtime.java
+3
-4
src/share/classes/java/lang/System.java
src/share/classes/java/lang/System.java
+0
-2
src/share/classes/javax/swing/text/html/ImageView.java
src/share/classes/javax/swing/text/html/ImageView.java
+12
-5
src/share/classes/sun/security/pkcs11/P11Signature.java
src/share/classes/sun/security/pkcs11/P11Signature.java
+13
-8
test/java/lang/Runtime/loadLibrary/LoadLibraryTest.java
test/java/lang/Runtime/loadLibrary/LoadLibraryTest.java
+0
-156
test/java/lang/Runtime/loadLibrary/src/Target2.java
test/java/lang/Runtime/loadLibrary/src/Target2.java
+0
-29
test/javax/swing/text/html/TestJLabelWithHTMLText.java
test/javax/swing/text/html/TestJLabelWithHTMLText.java
+27
-10
test/sun/security/lib/cacerts/VerifyCACerts.java
test/sun/security/lib/cacerts/VerifyCACerts.java
+6
-0
未找到文件。
.hgtags
浏览文件 @
30d9e010
...
...
@@ -1027,3 +1027,5 @@ c63c2923e1f99c1f350bd24b42daf885023f18b7 jdk8u242-ga
b67f77679d02d6634666578983103ce5d16a3a9b jdk8u252-b04
b959971e0a5a609453c3a122755fc987c36f0566 jdk8u252-b05
b959971e0a5a609453c3a122755fc987c36f0566 jdk8u262-b00
6f7370a85071d54772615abab532264dba461c51 jdk8u252-b06
2a93ed39a4e92e02bd59a02aac6cd9ed6defd386 jdk8u252-b07
src/share/classes/java/lang/ClassLoader.java
浏览文件 @
30d9e010
/*
* Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2019, Azul Systems, Inc. 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
...
...
@@ -1468,17 +1467,6 @@ public abstract class ClassLoader {
}
}
/*
* Initialize default paths for native libraries search.
* Must be done early as JDK may load libraries during bootstrap.
*
* @see java.lang.System#initPhase1
*/
static
void
initLibraryPaths
()
{
usr_paths
=
initializePath
(
"java.library.path"
);
sys_paths
=
initializePath
(
"sun.boot.library.path"
);
}
// Returns true if the specified class loader can be found in this class
// loader's delegation chain.
boolean
isAncestor
(
ClassLoader
cl
)
{
...
...
@@ -1821,9 +1809,10 @@ public abstract class ClassLoader {
boolean
isAbsolute
)
{
ClassLoader
loader
=
(
fromClass
==
null
)
?
null
:
fromClass
.
getClassLoader
();
assert
sys_paths
!=
null
:
"should be initialized at this point"
;
assert
usr_paths
!=
null
:
"should be initialized at this point"
;
if
(
sys_paths
==
null
)
{
usr_paths
=
initializePath
(
"java.library.path"
);
sys_paths
=
initializePath
(
"sun.boot.library.path"
);
}
if
(
isAbsolute
)
{
if
(
loadLibrary0
(
fromClass
,
new
File
(
name
)))
{
return
;
...
...
@@ -1913,14 +1902,13 @@ public abstract class ClassLoader {
name
+
" already loaded in another classloader"
);
}
/*
* When a library is being loaded, JNI_OnLoad function can cause
* another loadLibrary invocation that should succeed.
/* If the library is being loaded (must be by the same thread,
* because Runtime.load and Runtime.loadLibrary are
* synchronous). The reason is can occur is that the JNI_OnLoad
* function can cause another loadLibrary invocation.
*
* We use a static stack to hold the list of libraries we are
* loading because this can happen only when called by the
* same thread because Runtime.load and Runtime.loadLibrary
* are synchronous.
* Thus we can use a static stack to hold the list of libraries
* we are loading.
*
* If there is a pending load operation for the library, we
* immediately return success; otherwise, we raise
...
...
src/share/classes/java/lang/Runtime.java
浏览文件 @
30d9e010
/*
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2019, Azul Systems, Inc. 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
...
...
@@ -799,7 +798,7 @@ public class Runtime {
load0
(
Reflection
.
getCallerClass
(),
filename
);
}
void
load0
(
Class
<?>
fromClass
,
String
filename
)
{
synchronized
void
load0
(
Class
<?>
fromClass
,
String
filename
)
{
SecurityManager
security
=
System
.
getSecurityManager
();
if
(
security
!=
null
)
{
security
.
checkLink
(
filename
);
...
...
@@ -860,14 +859,14 @@ public class Runtime {
loadLibrary0
(
Reflection
.
getCallerClass
(),
libname
);
}
void
loadLibrary0
(
Class
<?>
fromClass
,
String
libname
)
{
synchronized
void
loadLibrary0
(
Class
<?>
fromClass
,
String
libname
)
{
SecurityManager
security
=
System
.
getSecurityManager
();
if
(
security
!=
null
)
{
security
.
checkLink
(
libname
);
}
if
(
libname
.
indexOf
((
int
)
File
.
separatorChar
)
!=
-
1
)
{
throw
new
UnsatisfiedLinkError
(
"Directory separator should not appear in library name: "
+
libname
);
"Directory separator should not appear in library name: "
+
libname
);
}
ClassLoader
.
loadLibrary
(
fromClass
,
libname
,
false
);
}
...
...
src/share/classes/java/lang/System.java
浏览文件 @
30d9e010
...
...
@@ -1195,8 +1195,6 @@ public final class System {
setOut0
(
newPrintStream
(
fdOut
,
props
.
getProperty
(
"sun.stdout.encoding"
)));
setErr0
(
newPrintStream
(
fdErr
,
props
.
getProperty
(
"sun.stderr.encoding"
)));
ClassLoader
.
initLibraryPaths
();
// Load the zip library now in order to keep java.util.zip.ZipFile
// from trying to use itself to load this library later.
loadLibrary
(
"zip"
);
...
...
src/share/classes/javax/swing/text/html/ImageView.java
浏览文件 @
30d9e010
...
...
@@ -741,11 +741,18 @@ public class ImageView extends View {
appropriately.
*/
if
(
getLoadsSynchronously
())
{
Dimension
d
=
adjustWidthHeight
(
image
.
getWidth
(
imageObserver
),
image
.
getHeight
(
imageObserver
));
newWidth
=
d
.
width
;
newHeight
=
d
.
height
;
newState
|=
(
WIDTH_FLAG
|
HEIGHT_FLAG
);
Image
img
;
synchronized
(
this
)
{
img
=
image
;
}
int
w
=
img
.
getWidth
(
imageObserver
);
int
h
=
img
.
getHeight
(
imageObserver
);
if
(
w
>
0
&&
h
>
0
)
{
Dimension
d
=
adjustWidthHeight
(
w
,
h
);
newWidth
=
d
.
width
;
newHeight
=
d
.
height
;
newState
|=
(
WIDTH_FLAG
|
HEIGHT_FLAG
);
}
}
// Make sure the image starts loading:
...
...
src/share/classes/sun/security/pkcs11/P11Signature.java
浏览文件 @
30d9e010
...
...
@@ -379,14 +379,19 @@ final class P11Signature extends SignatureSpi {
if
(
key
instanceof
P11Key
)
{
keySize
=
((
P11Key
)
key
).
length
();
}
else
{
if
(
keyAlgo
.
equals
(
"RSA"
))
{
keySize
=
((
RSAKey
)
key
).
getModulus
().
bitLength
();
}
else
if
(
keyAlgo
.
equals
(
"DSA"
))
{
keySize
=
((
DSAKey
)
key
).
getParams
().
getP
().
bitLength
();
}
else
if
(
keyAlgo
.
equals
(
"EC"
))
{
keySize
=
((
ECKey
)
key
).
getParams
().
getCurve
().
getField
().
getFieldSize
();
}
else
{
throw
new
ProviderException
(
"Error: unsupported algo "
+
keyAlgo
);
try
{
if
(
keyAlgo
.
equals
(
"RSA"
))
{
keySize
=
((
RSAKey
)
key
).
getModulus
().
bitLength
();
}
else
if
(
keyAlgo
.
equals
(
"DSA"
))
{
keySize
=
((
DSAKey
)
key
).
getParams
().
getP
().
bitLength
();
}
else
if
(
keyAlgo
.
equals
(
"EC"
))
{
keySize
=
((
ECKey
)
key
).
getParams
().
getCurve
().
getField
().
getFieldSize
();
}
else
{
throw
new
ProviderException
(
"Error: unsupported algo "
+
keyAlgo
);
}
}
catch
(
ClassCastException
cce
)
{
throw
new
InvalidKeyException
(
keyAlgo
+
" key must be the right type"
,
cce
);
}
}
if
((
minKeySize
!=
-
1
)
&&
(
keySize
<
minKeySize
))
{
...
...
test/java/lang/Runtime/loadLibrary/LoadLibraryTest.java
已删除
100644 → 0
浏览文件 @
48197d31
/*
* Copyright (c) 2018, Amazon and/or its affiliates. All rights reserved.
* Copyright (c) 2019, Azul Systems, Inc. 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 8231584
* @library /lib/testlibrary
* @run main/othervm LoadLibraryTest
*/
import
java.nio.file.FileSystems
;
import
java.nio.file.Files
;
import
java.nio.file.Paths
;
import
java.nio.file.Path
;
import
java.net.MalformedURLException
;
import
java.net.URLClassLoader
;
import
java.net.URL
;
public
class
LoadLibraryTest
{
static
Thread
thread1
=
null
;
static
Thread
thread2
=
null
;
static
volatile
boolean
thread1Ready
=
false
;
private
static
final
String
TEST_SRC
=
System
.
getProperty
(
"test.src"
);
private
static
final
Path
SRC_DIR
=
Paths
.
get
(
TEST_SRC
,
"src"
);
private
static
final
Path
CLS_DIR
=
Paths
.
get
(
"classes"
);
static
TestClassLoader
loader
;
static
void
someLibLoad
()
{
try
{
/*
FileSystems.getDefault();
// jdk/jdk: loads directly from Bootstrap Classloader (doesn't take lock on Runtime)
java.net.NetworkInterface.getNetworkInterfaces();
System.out.println(jdk.net.ExtendedSocketOptions.SO_FLOW_SLA);
*/
Class
c
=
Class
.
forName
(
"Target2"
,
true
,
loader
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
static
class
TestClassLoader
extends
URLClassLoader
{
boolean
passed
=
false
;
public
boolean
passed
()
{
return
passed
;
}
TestClassLoader
()
throws
MalformedURLException
{
super
(
new
URL
[]
{
new
URL
(
"file://"
+
CLS_DIR
.
toAbsolutePath
().
toString
()
+
'/'
)
});
}
public
String
findLibrary
(
String
name
)
{
System
.
out
.
println
(
"findLibrary "
+
name
);
if
(
"someLibrary"
.
equals
(
name
))
{
try
{
synchronized
(
thread1
)
{
while
(!
thread1Ready
)
{
thread1
.
wait
();
}
thread1
.
notifyAll
();
}
Thread
.
sleep
(
10000
);
System
.
out
.
println
(
"Thread2 load"
);
someLibLoad
();
// no deadlock happened
passed
=
true
;
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
return
null
;
}
return
super
.
findLibrary
(
name
);
}
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
loader
=
new
TestClassLoader
();
if
(!
CompilerUtils
.
compile
(
SRC_DIR
,
CLS_DIR
))
{
throw
new
Exception
(
"Can't compile"
);
}
thread1
=
new
Thread
()
{
public
void
run
()
{
try
{
synchronized
(
this
)
{
thread1Ready
=
true
;
thread1
.
notifyAll
();
thread1
.
wait
();
}
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
System
.
out
.
println
(
"Thread1 load"
);
someLibLoad
();
};
};
thread2
=
new
Thread
()
{
public
void
run
()
{
try
{
Class
c
=
Class
.
forName
(
"Target"
,
true
,
loader
);
System
.
out
.
println
(
c
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
};
};
thread1
.
setDaemon
(
true
);
thread2
.
setDaemon
(
true
);
thread1
.
start
();
thread2
.
start
();
thread1
.
join
();
thread2
.
join
();
if
(!
loader
.
passed
())
{
throw
new
RuntimeException
(
"FAIL"
);
}
}
}
test/java/lang/Runtime/loadLibrary/src/Target2.java
已删除
100644 → 0
浏览文件 @
48197d31
/*
* Copyright (c) 2019, Azul Systems, Inc. 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.
*/
class
Target2
{
static
{
System
.
loadLibrary
(
"awt"
);
}
}
test/java
/lang/Runtime/loadLibrary/src/Targe
t.java
→
test/java
x/swing/text/html/TestJLabelWithHTMLTex
t.java
浏览文件 @
30d9e010
/*
* Copyright (c) 2019,
Azul Systems, Inc
. All rights reserved.
* Copyright (c) 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
...
...
@@ -21,14 +21,31 @@
* questions.
*/
class
Target
{
static
{
try
{
System
.
loadLibrary
(
"someLibrary"
);
throw
new
RuntimeException
(
"someLibrary was loaded"
);
}
catch
(
UnsatisfiedLinkError
e
)
{
// expected: we do not have a someLibrary
}
/**
* @test
* @bug 8230235 8235744
* @summary Tests if JLabel with HTML text having empty img tag and
* documentBaseKey set renders properly without NPE
* @run main TestJLabelWithHTMLText
*/
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
javax.swing.JLabel
;
import
javax.swing.SwingUtilities
;
import
javax.swing.plaf.basic.BasicHTML
;
public
class
TestJLabelWithHTMLText
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
SwingUtilities
.
invokeAndWait
(()
->
{
JLabel
label
=
new
JLabel
();
try
{
label
.
putClientProperty
(
BasicHTML
.
documentBaseKey
,
new
URL
(
"http://localhost"
));
}
catch
(
MalformedURLException
e
)
{
e
.
printStackTrace
();
}
label
.
setText
(
"<html><img src=''></html>"
);
});
}
}
test/sun/security/lib/cacerts/VerifyCACerts.java
浏览文件 @
30d9e010
...
...
@@ -262,6 +262,12 @@ public class VerifyCACerts {
add
(
"utnuserfirstobjectca [jdk]"
);
// Valid until: Tue May 26 00:00:00 GMT 2020
add
(
"keynectisrootca [jdk]"
);
// Valid until: Sat May 30 10:38:31 GMT 2020
add
(
"addtrustexternalca [jdk]"
);
// Valid until: Sat May 30 10:48:38 GMT 2020
add
(
"addtrustclass1ca [jdk]"
);
// Valid until: Sat May 30 10:44:50 GMT 2020
add
(
"addtrustqualifiedca [jdk]"
);
}
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录