Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
LinuxSuRen
jenkins
提交
8109b9e8
J
jenkins
项目概览
LinuxSuRen
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jenkins
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8109b9e8
编写于
3月 27, 2014
作者:
J
Jesse Glick
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[FIXED JENKINS-22398] RobustMapConverter
上级
606d84c5
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
73 addition
and
0 deletion
+73
-0
changelog.html
changelog.html
+3
-0
core/src/main/java/hudson/util/RobustMapConverter.java
core/src/main/java/hudson/util/RobustMapConverter.java
+69
-0
core/src/main/java/hudson/util/XStream2.java
core/src/main/java/hudson/util/XStream2.java
+1
-0
未找到文件。
changelog.html
浏览文件 @
8109b9e8
...
...
@@ -67,6 +67,9 @@ Upcoming changes</a>
<li
class=
bug
>
Fixed NPE in
<tt>
UserCause
</tt>
(
<a
href=
"https://issues.jenkins-ci.org/browse/JENKINS-21875"
>
issue 21875
</a>
)
<li
class=
rfe
>
Added
<code>
RobustMapConverter
</code>
.
(
<a
href=
"https://issues.jenkins-ci.org/browse/JENKINS-22398"
>
issue 22398
</a>
)
</ul>
</div>
<!--=TRUNK-END=-->
...
...
core/src/main/java/hudson/util/RobustMapConverter.java
0 → 100644
浏览文件 @
8109b9e8
/*
* The MIT License
*
* Copyright 2014 Jesse Glick.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package
hudson.util
;
import
com.thoughtworks.xstream.XStreamException
;
import
com.thoughtworks.xstream.converters.UnmarshallingContext
;
import
com.thoughtworks.xstream.converters.collections.MapConverter
;
import
com.thoughtworks.xstream.io.HierarchicalStreamReader
;
import
com.thoughtworks.xstream.mapper.Mapper
;
import
java.util.Map
;
/**
* Loads a {@link Map} while tolerating read errors on its keys and values.
*/
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
final
class
RobustMapConverter
extends
MapConverter
{
private
static
final
Object
ERROR
=
new
Object
();
RobustMapConverter
(
Mapper
mapper
)
{
super
(
mapper
);
}
@Override
protected
void
putCurrentEntryIntoMap
(
HierarchicalStreamReader
reader
,
UnmarshallingContext
context
,
Map
map
,
Map
target
)
{
Object
key
=
read
(
reader
,
context
,
map
);
Object
value
=
read
(
reader
,
context
,
map
);
if
(
key
!=
ERROR
&&
value
!=
ERROR
)
{
target
.
put
(
key
,
value
);
}
}
private
Object
read
(
HierarchicalStreamReader
reader
,
UnmarshallingContext
context
,
Map
map
)
{
reader
.
moveDown
();
try
{
return
readItem
(
reader
,
context
,
map
);
}
catch
(
XStreamException
x
)
{
RobustReflectionConverter
.
addErrorInContext
(
context
,
x
);
return
ERROR
;
}
catch
(
LinkageError
x
)
{
RobustReflectionConverter
.
addErrorInContext
(
context
,
x
);
return
ERROR
;
}
finally
{
reader
.
moveUp
();
}
}
}
core/src/main/java/hudson/util/XStream2.java
浏览文件 @
8109b9e8
...
...
@@ -145,6 +145,7 @@ public class XStream2 extends XStream {
addImmutableType
(
Result
.
class
);
registerConverter
(
new
RobustCollectionConverter
(
getMapper
(),
getReflectionProvider
()),
10
);
registerConverter
(
new
RobustMapConverter
(
getMapper
()),
10
);
registerConverter
(
new
ImmutableMapConverter
(
getMapper
(),
getReflectionProvider
()),
10
);
registerConverter
(
new
ImmutableSortedSetConverter
(
getMapper
(),
getReflectionProvider
()),
10
);
registerConverter
(
new
ImmutableSetConverter
(
getMapper
(),
getReflectionProvider
()),
10
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录