Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
858445c2
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
858445c2
编写于
2月 11, 2011
作者:
N
never
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7018506: CTW swallowing OOMs after symbol changes
Reviewed-by: kvn, iveresov, coleenp
上级
482d20f3
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
13 addition
and
4 deletion
+13
-4
src/share/vm/classfile/classLoader.cpp
src/share/vm/classfile/classLoader.cpp
+13
-4
未找到文件。
src/share/vm/classfile/classLoader.cpp
浏览文件 @
858445c2
...
...
@@ -1290,6 +1290,15 @@ void ClassLoader::compile_the_world() {
int
ClassLoader
::
_compile_the_world_counter
=
0
;
static
int
_codecache_sweep_counter
=
0
;
// Filter out all exceptions except OOMs
static
void
clear_pending_exception_if_not_oom
(
TRAPS
)
{
if
(
HAS_PENDING_EXCEPTION
&&
!
PENDING_EXCEPTION
->
is_a
(
SystemDictionary
::
OutOfMemoryError_klass
()))
{
CLEAR_PENDING_EXCEPTION
;
}
// The CHECK at the caller will propagate the exception out
}
void
ClassLoader
::
compile_the_world_in
(
char
*
name
,
Handle
loader
,
TRAPS
)
{
int
len
=
(
int
)
strlen
(
name
);
if
(
len
>
6
&&
strcmp
(
".class"
,
name
+
len
-
6
)
==
0
)
{
...
...
@@ -1312,12 +1321,12 @@ void ClassLoader::compile_the_world_in(char* name, Handle loader, TRAPS) {
k
->
initialize
(
THREAD
);
}
bool
exception_occurred
=
HAS_PENDING_EXCEPTION
;
CLEAR_PENDING_EXCEPTION
;
clear_pending_exception_if_not_oom
(
CHECK
)
;
if
(
CompileTheWorldPreloadClasses
&&
k
.
not_null
())
{
constantPoolKlass
::
preload_and_initialize_all_classes
(
k
->
constants
(),
THREAD
);
if
(
HAS_PENDING_EXCEPTION
)
{
// If something went wrong in preloading we just ignore it
CLEAR_PENDING_EXCEPTION
;
clear_pending_exception_if_not_oom
(
CHECK
)
;
tty
->
print_cr
(
"Preloading failed for (%d) %s"
,
_compile_the_world_counter
,
buffer
);
}
}
...
...
@@ -1344,7 +1353,7 @@ void ClassLoader::compile_the_world_in(char* name, Handle loader, TRAPS) {
CompileBroker
::
compile_method
(
m
,
InvocationEntryBci
,
CompLevel_initial_compile
,
methodHandle
(),
0
,
"CTW"
,
THREAD
);
if
(
HAS_PENDING_EXCEPTION
)
{
CLEAR_PENDING_EXCEPTION
;
clear_pending_exception_if_not_oom
(
CHECK
)
;
tty
->
print_cr
(
"CompileTheWorld (%d) : Skipping method: %s"
,
_compile_the_world_counter
,
m
->
name
()
->
as_C_string
());
}
if
(
TieredCompilation
)
{
...
...
@@ -1358,7 +1367,7 @@ void ClassLoader::compile_the_world_in(char* name, Handle loader, TRAPS) {
CompileBroker
::
compile_method
(
m
,
InvocationEntryBci
,
CompLevel_full_optimization
,
methodHandle
(),
0
,
"CTW"
,
THREAD
);
if
(
HAS_PENDING_EXCEPTION
)
{
CLEAR_PENDING_EXCEPTION
;
clear_pending_exception_if_not_oom
(
CHECK
)
;
tty
->
print_cr
(
"CompileTheWorld (%d) : Skipping method: %s"
,
_compile_the_world_counter
,
m
->
name
()
->
as_C_string
());
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录