Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
fa33fb21
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看板
提交
fa33fb21
编写于
5月 22, 2015
作者:
P
poonam
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
bea91c86
0c955880
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
37 addition
and
2 deletion
+37
-2
.hgtags
.hgtags
+2
-0
make/hotspot_version
make/hotspot_version
+1
-1
src/share/vm/oops/instanceKlass.cpp
src/share/vm/oops/instanceKlass.cpp
+7
-0
src/share/vm/prims/jvm.cpp
src/share/vm/prims/jvm.cpp
+5
-1
src/share/vm/prims/jvmtiExport.cpp
src/share/vm/prims/jvmtiExport.cpp
+9
-0
src/share/vm/prims/jvmtiExport.hpp
src/share/vm/prims/jvmtiExport.hpp
+1
-0
src/share/vm/runtime/reflection.cpp
src/share/vm/runtime/reflection.cpp
+12
-0
未找到文件。
.hgtags
浏览文件 @
fa33fb21
...
...
@@ -642,3 +642,5 @@ c9f8b7319d0a5ab07310cf53507642a8fd91589b jdk8u60-b14
4187dc92e90b16b4097627b8af4f5e6e63f3b497 hs25.60-b15
b99f1bf208f385277b03a985d35b6614b4095f3e jdk8u60-b15
f5800068c61d0627c14e99836e9ce5cf0ef00075 hs25.60-b16
ab2353694ea7fd4907c5c88b8334f8feaafca8c7 jdk8u60-b16
5efc25c367164b6856554b0d625f3c422fdf9558 hs25.60-b17
make/hotspot_version
浏览文件 @
fa33fb21
...
...
@@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2015
HS_MAJOR_VER=25
HS_MINOR_VER=60
HS_BUILD_NUMBER=1
7
HS_BUILD_NUMBER=1
8
JDK_MAJOR_VER=1
JDK_MINOR_VER=8
...
...
src/share/vm/oops/instanceKlass.cpp
浏览文件 @
fa33fb21
...
...
@@ -50,6 +50,7 @@
#include "prims/jvmtiExport.hpp"
#include "prims/jvmtiRedefineClassesTrace.hpp"
#include "prims/jvmtiRedefineClasses.hpp"
#include "prims/jvmtiThreadState.hpp"
#include "prims/methodComparator.hpp"
#include "runtime/fieldDescriptor.hpp"
#include "runtime/handles.inline.hpp"
...
...
@@ -928,10 +929,16 @@ void InstanceKlass::initialize_impl(instanceKlassHandle this_oop, TRAPS) {
// Step 10 and 11
Handle
e
(
THREAD
,
PENDING_EXCEPTION
);
CLEAR_PENDING_EXCEPTION
;
// JVMTI has already reported the pending exception
// JVMTI internal flag reset is needed in order to report ExceptionInInitializerError
JvmtiExport
::
clear_detected_exception
((
JavaThread
*
)
THREAD
);
{
EXCEPTION_MARK
;
this_oop
->
set_initialization_state_and_notify
(
initialization_error
,
THREAD
);
CLEAR_PENDING_EXCEPTION
;
// ignore any exception thrown, class initialization error is thrown below
// JVMTI has already reported the pending exception
// JVMTI internal flag reset is needed in order to report ExceptionInInitializerError
JvmtiExport
::
clear_detected_exception
((
JavaThread
*
)
THREAD
);
}
DTRACE_CLASSINIT_PROBE_WAIT
(
error
,
InstanceKlass
::
cast
(
this_oop
()),
-
1
,
wait
);
if
(
e
->
is_a
(
SystemDictionary
::
Error_klass
()))
{
...
...
src/share/vm/prims/jvm.cpp
浏览文件 @
fa33fb21
...
...
@@ -1372,7 +1372,11 @@ JVM_ENTRY(jobject, JVM_DoPrivileged(JNIEnv *env, jclass cls, jobject action, job
if
(
HAS_PENDING_EXCEPTION
)
{
pending_exception
=
Handle
(
THREAD
,
PENDING_EXCEPTION
);
CLEAR_PENDING_EXCEPTION
;
// JVMTI has already reported the pending exception
// JVMTI internal flag reset is needed in order to report PrivilegedActionException
if
(
THREAD
->
is_Java_thread
())
{
JvmtiExport
::
clear_detected_exception
((
JavaThread
*
)
THREAD
);
}
if
(
pending_exception
->
is_a
(
SystemDictionary
::
Exception_klass
())
&&
!
pending_exception
->
is_a
(
SystemDictionary
::
RuntimeException_klass
()))
{
// Throw a java.security.PrivilegedActionException(Exception e) exception
...
...
src/share/vm/prims/jvmtiExport.cpp
浏览文件 @
fa33fb21
...
...
@@ -2163,6 +2163,15 @@ void JvmtiExport::cleanup_thread(JavaThread* thread) {
}
}
void
JvmtiExport
::
clear_detected_exception
(
JavaThread
*
thread
)
{
assert
(
JavaThread
::
current
()
==
thread
,
"thread is not current"
);
JvmtiThreadState
*
state
=
thread
->
jvmti_thread_state
();
if
(
state
!=
NULL
)
{
state
->
clear_exception_detected
();
}
}
void
JvmtiExport
::
oops_do
(
OopClosure
*
f
)
{
JvmtiCurrentBreakpoints
::
oops_do
(
f
);
JvmtiVMObjectAllocEventCollector
::
oops_do_for_all_threads
(
f
);
...
...
src/share/vm/prims/jvmtiExport.hpp
浏览文件 @
fa33fb21
...
...
@@ -363,6 +363,7 @@ class JvmtiExport : public AllStatic {
}
static
void
cleanup_thread
(
JavaThread
*
thread
)
NOT_JVMTI_RETURN
;
static
void
clear_detected_exception
(
JavaThread
*
thread
)
NOT_JVMTI_RETURN
;
static
void
oops_do
(
OopClosure
*
f
)
NOT_JVMTI_RETURN
;
static
void
weak_oops_do
(
BoolObjectClosure
*
b
,
OopClosure
*
f
)
NOT_JVMTI_RETURN
;
...
...
src/share/vm/runtime/reflection.cpp
浏览文件 @
fa33fb21
...
...
@@ -36,6 +36,7 @@
#include "oops/objArrayKlass.hpp"
#include "oops/objArrayOop.hpp"
#include "prims/jvm.h"
#include "prims/jvmtiExport.hpp"
#include "runtime/arguments.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/javaCalls.hpp"
...
...
@@ -942,6 +943,11 @@ oop Reflection::invoke(instanceKlassHandle klass, methodHandle reflected_method,
// Method resolution threw an exception; wrap it in an InvocationTargetException
oop
resolution_exception
=
PENDING_EXCEPTION
;
CLEAR_PENDING_EXCEPTION
;
// JVMTI has already reported the pending exception
// JVMTI internal flag reset is needed in order to report InvocationTargetException
if
(
THREAD
->
is_Java_thread
())
{
JvmtiExport
::
clear_detected_exception
((
JavaThread
*
)
THREAD
);
}
JavaCallArguments
args
(
Handle
(
THREAD
,
resolution_exception
));
THROW_ARG_0
(
vmSymbols
::
java_lang_reflect_InvocationTargetException
(),
vmSymbols
::
throwable_void_signature
(),
...
...
@@ -1074,6 +1080,12 @@ oop Reflection::invoke(instanceKlassHandle klass, methodHandle reflected_method,
// Method threw an exception; wrap it in an InvocationTargetException
oop
target_exception
=
PENDING_EXCEPTION
;
CLEAR_PENDING_EXCEPTION
;
// JVMTI has already reported the pending exception
// JVMTI internal flag reset is needed in order to report InvocationTargetException
if
(
THREAD
->
is_Java_thread
())
{
JvmtiExport
::
clear_detected_exception
((
JavaThread
*
)
THREAD
);
}
JavaCallArguments
args
(
Handle
(
THREAD
,
target_exception
));
THROW_ARG_0
(
vmSymbols
::
java_lang_reflect_InvocationTargetException
(),
vmSymbols
::
throwable_void_signature
(),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录