Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
1589d57e
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看板
提交
1589d57e
编写于
12月 09, 2008
作者:
J
jfdenise
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6501362: DescriptorSupport(String) could recognize "name=value" as well as XML format
Reviewed-by: emcmanus
上级
918b0732
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
82 addition
and
14 deletion
+82
-14
src/share/classes/javax/management/modelmbean/DescriptorSupport.java
...lasses/javax/management/modelmbean/DescriptorSupport.java
+36
-14
test/javax/management/descriptor/DescriptorConstructorTest.java
...avax/management/descriptor/DescriptorConstructorTest.java
+46
-0
未找到文件。
src/share/classes/javax/management/modelmbean/DescriptorSupport.java
浏览文件 @
1589d57e
...
...
@@ -229,9 +229,10 @@ public class DescriptorSupport
init
(
inDescr
.
descriptorMap
);
}
/**
* <p>Descriptor constructor taking an XML String.</p>
* <p>Descriptor constructor taking an XML String or a
* <i>fieldName=fieldValue</i> format String. The String parameter is
* parsed as XML if it begins with a '<' character.</p>
*
* <p>The format of the XML string is not defined, but an
* implementation must ensure that the string returned by
...
...
@@ -244,17 +245,20 @@ public class DescriptorSupport
* programmer will have to reset or convert these fields
* correctly.</p>
*
* @param inStr An XML-format
ted string used to populate this
*
Descriptor. The
format is not defined, but any
* @param inStr An XML-format
or a fieldName=fieldValue formatted string
*
used to populate this Descriptor. The XML
format is not defined, but any
* implementation must ensure that the string returned by
* method {@link #toXMLString toXMLString} on an existing
* descriptor can be used to instantiate an equivalent
* descriptor when instantiated using this constructor.
*
* @exception RuntimeOperationsException If the String inStr
* passed in parameter is null
* @exception RuntimeOperationsException If the String inStr passed in
* parameter is null or, when it is not an XML string, if the field name or
* field value is illegal. If inStr is not an XML string then it must
* contain an "=". "fieldValue", "fieldName", and "fieldValue" are illegal.
* FieldName cannot be empty. "fieldName=" will cause the value to be empty.
* @exception XMLParseException XML parsing problem while parsing
* the input String
* the
XML-format
input String
* @exception MBeanException Wraps a distributed communication Exception.
*/
/* At some stage we should rewrite this code to be cleverer. Using
...
...
@@ -283,14 +287,27 @@ public class DescriptorSupport
throw
new
RuntimeOperationsException
(
iae
,
msg
);
}
// parse parameter string into structures
init
(
null
);
if
(!
inStr
.
startsWith
(
"<"
))
{
parseNamesValues
(
inStr
);
if
(
MODELMBEAN_LOGGER
.
isLoggable
(
Level
.
FINEST
))
{
MODELMBEAN_LOGGER
.
logp
(
Level
.
FINEST
,
DescriptorSupport
.
class
.
getName
(),
"Descriptor(name=value)"
,
"Exit"
);
}
return
;
}
final
String
lowerInStr
=
inStr
.
toLowerCase
();
if
(!
lowerInStr
.
startsWith
(
"<descriptor>"
)
||
!
lowerInStr
.
endsWith
(
"</descriptor>"
))
{
throw
new
XMLParseException
(
"No <descriptor>, </descriptor> pair"
);
}
// parse xmlstring into structures
init
(
null
);
// create dummy descriptor: should have same size
// as number of fields in xmlstring
// loop through structures and put them in descriptor
...
...
@@ -454,6 +471,16 @@ public class DescriptorSupport
init
(
null
);
parseNamesValues
(
fields
);
if
(
MODELMBEAN_LOGGER
.
isLoggable
(
Level
.
FINEST
))
{
MODELMBEAN_LOGGER
.
logp
(
Level
.
FINEST
,
DescriptorSupport
.
class
.
getName
(),
"Descriptor(String... fields)"
,
"Exit"
);
}
}
private
void
parseNamesValues
(
String
...
fields
)
{
for
(
int
i
=
0
;
i
<
fields
.
length
;
i
++)
{
if
((
fields
[
i
]
==
null
)
||
(
fields
[
i
].
equals
(
""
)))
{
continue
;
...
...
@@ -495,11 +522,6 @@ public class DescriptorSupport
setField
(
fieldName
,
fieldValue
);
}
if
(
MODELMBEAN_LOGGER
.
isLoggable
(
Level
.
FINEST
))
{
MODELMBEAN_LOGGER
.
logp
(
Level
.
FINEST
,
DescriptorSupport
.
class
.
getName
(),
"Descriptor(String... fields)"
,
"Exit"
);
}
}
private
void
init
(
Map
<
String
,
?>
initMap
)
{
...
...
test/javax/management/descriptor/DescriptorConstructorTest.java
0 → 100644
浏览文件 @
1589d57e
/*
* Copyright 2004-2005 Sun Microsystems, 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/*
* @test
* @bug 6501362
* @summary DescriptorSupport(String) could recognize "name=value" as well as XML format
* @author Jean-Francois Denise
* @run clean DescriptorConstructorTest
* @run build DescriptorConstructorTest
* @run main DescriptorConstructorTest
*/
import
javax.management.modelmbean.DescriptorSupport
;
public
class
DescriptorConstructorTest
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
DescriptorSupport
d1
=
new
DescriptorSupport
(
"MyName1=MyValue1"
);
if
(!
d1
.
getFieldValue
(
"MyName1"
).
equals
(
"MyValue1"
))
throw
new
Exception
(
"Invalid parsing"
);
DescriptorSupport
d2
=
new
DescriptorSupport
(
"<Descriptor>"
+
"<field name=\"MyName2\" value=\"MyValue2\"></field></Descriptor>"
);
if
(!
d2
.
getFieldValue
(
"MyName2"
).
equals
(
"MyValue2"
))
throw
new
Exception
(
"Invalid parsing"
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录