Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
0b281792
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看板
提交
0b281792
编写于
9月 27, 2019
作者:
E
egahlin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8216064: -XX:StartFlightRecording:settings= doesn't work properly
Reviewed-by: mgronlun
上级
4e40b598
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
80 addition
and
4 deletion
+80
-4
src/share/classes/jdk/jfr/internal/dcmd/DCmdStart.java
src/share/classes/jdk/jfr/internal/dcmd/DCmdStart.java
+7
-3
src/share/classes/jdk/jfr/internal/jfc/JFC.java
src/share/classes/jdk/jfr/internal/jfc/JFC.java
+5
-1
test/jdk/jfr/startupargs/TestStartNoSettings.java
test/jdk/jfr/startupargs/TestStartNoSettings.java
+68
-0
未找到文件。
src/share/classes/jdk/jfr/internal/dcmd/DCmdStart.java
浏览文件 @
0b281792
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
*/
*/
package
jdk.jfr.internal.dcmd
;
package
jdk.jfr.internal.dcmd
;
import
java.io.FileNotFoundException
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.nio.file.Files
;
import
java.nio.file.Files
;
import
java.nio.file.InvalidPathException
;
import
java.nio.file.InvalidPathException
;
...
@@ -105,8 +106,9 @@ final class DCmdStart extends AbstractDCmd {
...
@@ -105,8 +106,9 @@ final class DCmdStart extends AbstractDCmd {
if
(
duration
==
null
&&
Boolean
.
FALSE
.
equals
(
dumpOnExit
)
&&
path
!=
null
)
{
if
(
duration
==
null
&&
Boolean
.
FALSE
.
equals
(
dumpOnExit
)
&&
path
!=
null
)
{
throw
new
DCmdException
(
"Filename can only be set for a time bound recording or if dumponexit=true. Set duration/dumponexit or omit filename."
);
throw
new
DCmdException
(
"Filename can only be set for a time bound recording or if dumponexit=true. Set duration/dumponexit or omit filename."
);
}
}
if
(
settings
.
length
==
1
&&
settings
[
0
].
length
()
==
0
)
{
throw
new
DCmdException
(
"No settings specified. Use settings=none to start without any settings"
);
}
Map
<
String
,
String
>
s
=
new
HashMap
<>();
Map
<
String
,
String
>
s
=
new
HashMap
<>();
if
(
settings
==
null
||
settings
.
length
==
0
)
{
if
(
settings
==
null
||
settings
.
length
==
0
)
{
...
@@ -116,8 +118,10 @@ final class DCmdStart extends AbstractDCmd {
...
@@ -116,8 +118,10 @@ final class DCmdStart extends AbstractDCmd {
for
(
String
configName
:
settings
)
{
for
(
String
configName
:
settings
)
{
try
{
try
{
s
.
putAll
(
JFC
.
createKnown
(
configName
).
getSettings
());
s
.
putAll
(
JFC
.
createKnown
(
configName
).
getSettings
());
}
catch
(
FileNotFoundException
e
)
{
throw
new
DCmdException
(
"Could not find settings file'"
+
configName
+
"'"
,
e
);
}
catch
(
IOException
|
ParseException
e
)
{
}
catch
(
IOException
|
ParseException
e
)
{
throw
new
DCmdException
(
"Could not parse setting
"
+
settings
[
0
]
,
e
);
throw
new
DCmdException
(
"Could not parse setting
s file '"
+
settings
[
0
]
+
"'"
,
e
);
}
}
}
}
...
...
src/share/classes/jdk/jfr/internal/jfc/JFC.java
浏览文件 @
0b281792
...
@@ -127,7 +127,11 @@ public final class JFC {
...
@@ -127,7 +127,11 @@ public final class JFC {
public
static
String
nameFromPath
(
Path
file
)
throws
IOException
{
public
static
String
nameFromPath
(
Path
file
)
throws
IOException
{
String
f
=
nullSafeFileName
(
file
);
String
f
=
nullSafeFileName
(
file
);
return
f
.
substring
(
0
,
f
.
length
()
-
JFCParser
.
FILE_EXTENSION
.
length
());
if
(
f
.
endsWith
(
JFCParser
.
FILE_EXTENSION
))
{
return
f
.
substring
(
0
,
f
.
length
()
-
JFCParser
.
FILE_EXTENSION
.
length
());
}
else
{
return
f
;
}
}
}
// Invoked by DCmdStart
// Invoked by DCmdStart
...
...
test/jdk/jfr/startupargs/TestStartNoSettings.java
0 → 100644
浏览文件 @
0b281792
/*
* 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* 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.
*/
package
jdk.jfr.startupargs
;
import
jdk.jfr.Event
;
import
jdk.jfr.EventType
;
import
jdk.jfr.FlightRecorder
;
import
jdk.jfr.Name
;
import
jdk.jfr.Recording
;
/**
* @test
* @summary Start a FlightRecording without any settings (not even default).
* @key jfr
* @library /lib /
* @run main/othervm jdk.jfr.startupargs.TestStartNoSettings
* -XX:StartFlightRecording=settings=none
*/
public
class
TestStartNoSettings
{
@Name
(
"UserEvent"
)
static
class
UserEvent
extends
Event
{
}
public
static
void
main
(
String
[]
a
)
throws
Exception
{
boolean
userEnabled
=
false
;
try
(
Recording
r
=
new
Recording
())
{
r
.
start
();
UserEvent
e
=
new
UserEvent
();
e
.
commit
();
for
(
EventType
et
:
FlightRecorder
.
getFlightRecorder
().
getEventTypes
())
{
if
(
et
.
isEnabled
())
{
if
(!
et
.
getName
().
equals
(
"UserEvent"
))
{
throw
new
Exception
(
"Only 'UserEvent' should be enabled"
);
}
userEnabled
=
true
;
}
}
}
if
(!
userEnabled
)
{
throw
new
Exception
(
"Expected 'UserEvent' to be enabled with -XX:StartFlightRecording=settings=none"
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录