Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
6b6e7b8b
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
3
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6b6e7b8b
编写于
7月 30, 2013
作者:
H
henryjen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8020977: StringJoiner merges with itself not as expected
Reviewed-by: psandoz, chegar, mduigou, smarks
上级
0cc1d3f3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
6 deletion
+16
-6
src/share/classes/java/util/StringJoiner.java
src/share/classes/java/util/StringJoiner.java
+5
-4
test/java/util/StringJoiner/MergeTest.java
test/java/util/StringJoiner/MergeTest.java
+11
-2
未找到文件。
src/share/classes/java/util/StringJoiner.java
浏览文件 @
6b6e7b8b
...
...
@@ -206,11 +206,12 @@ public final class StringJoiner {
public
StringJoiner
merge
(
StringJoiner
other
)
{
Objects
.
requireNonNull
(
other
);
if
(
other
.
value
!=
null
)
{
final
int
length
=
other
.
value
.
length
();
// lock the length so that we can seize the data to be appended
// before initiate copying to avoid interference, especially when
// merge 'this'
StringBuilder
builder
=
prepareBuilder
();
StringBuilder
otherBuilder
=
other
.
value
;
if
(
other
.
prefix
.
length
()
<
otherBuilder
.
length
())
{
builder
.
append
(
otherBuilder
,
other
.
prefix
.
length
(),
otherBuilder
.
length
());
}
builder
.
append
(
other
.
value
,
other
.
prefix
.
length
(),
length
);
}
return
this
;
}
...
...
test/java/util/StringJoiner/MergeTest.java
浏览文件 @
6b6e7b8b
...
...
@@ -23,7 +23,7 @@
/**
* @test
* @bug 8017231
* @bug 8017231
8020977
* @summary test StringJoiner::merge
* @run testng MergeTest
*/
...
...
@@ -121,4 +121,13 @@ public class MergeTest {
sj
.
merge
(
other
);
assertEquals
(
sj
.
toString
(),
"{a,b,c,d:e:f}"
);
}
}
\ No newline at end of file
public
void
testMergeSelf
()
{
final
StringJoiner
sj
=
new
StringJoiner
(
","
,
"["
,
"]"
).
add
(
"a"
).
add
(
"b"
);
assertEquals
(
sj
.
merge
(
sj
).
toString
(),
"[a,b,a,b]"
);
assertEquals
(
sj
.
merge
(
sj
).
toString
(),
"[a,b,a,b,a,b,a,b]"
);
final
StringJoiner
sj2
=
new
StringJoiner
(
","
).
add
(
"c"
).
add
(
"d"
);
assertEquals
(
sj2
.
merge
(
sj2
).
toString
(),
"c,d,c,d"
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录