Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
dfd5d64b
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看板
提交
dfd5d64b
编写于
4月 23, 2018
作者:
A
aefimov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8196491: Newlines in JAXB string values of SOAP-requests are escaped to "
"
Reviewed-by: lancea, rgrigoriadi
上级
5aae5b10
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
62 addition
and
8 deletion
+62
-8
test/javax/xml/ws/8172297/Main.java
test/javax/xml/ws/8172297/Main.java
+62
-8
未找到文件。
test/javax/xml/ws/8172297/Main.java
浏览文件 @
dfd5d64b
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017,
2018,
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
...
...
@@ -23,7 +23,7 @@
/*
* @test
* @bug 8172297
* @bug 8172297
8196491
* @summary Test that carriage-return and new-line characters
* are preserved in webservice parameters
* @compile ws/HelloWorld.java ws/HelloWorldImpl.java Main.java
...
...
@@ -33,13 +33,21 @@
import
java.io.IOException
;
import
java.net.ServerSocket
;
import
java.net.URL
;
import
java.util.Collections
;
import
java.util.Set
;
import
java.util.concurrent.CountDownLatch
;
import
javax.xml.namespace.QName
;
import
javax.xml.soap.SOAPMessage
;
import
javax.xml.ws.Endpoint
;
import
javax.xml.ws.Service
;
import
javax.xml.ws.handler.Handler
;
import
javax.xml.ws.handler.MessageContext
;
import
javax.xml.ws.handler.soap.SOAPHandler
;
import
javax.xml.ws.handler.soap.SOAPMessageContext
;
import
org.testng.Assert
;
import
org.testng.annotations.DataProvider
;
import
org.testng.annotations.Test
;
import
ws.HelloWorld
;
...
...
@@ -47,9 +55,8 @@ import ws.HelloWorldImpl;
public
class
Main
{
@Test
public
void
runTest
()
throws
Exception
{
//
@Test
(
dataProvider
=
"callHandlerDataProvider"
)
public
void
runTest
(
boolean
callGetMessageInHandler
)
throws
Exception
{
CountDownLatch
serverInitSignal
=
new
CountDownLatch
(
1
);
CountDownLatch
testDoneSignal
=
new
CountDownLatch
(
1
);
...
...
@@ -58,23 +65,31 @@ public class Main {
serverInitSignal
.
await
();
boolean
paramModified
=
runClientCode
(
serverThread
.
getPort
());
boolean
paramModified
=
runClientCode
(
serverThread
.
getPort
()
,
callGetMessageInHandler
);
testDoneSignal
.
countDown
();
Assert
.
assertFalse
(
paramModified
,
"WS parameter was modified during round trip."
);
Assert
.
assertEquals
(
callGetMessageInHandler
,
paramModified
,
"WS parameter has not been processed as expected"
);
}
@DataProvider
public
Object
[][]
callHandlerDataProvider
()
{
return
new
Object
[][]{{
true
},
{
false
}};
}
/*
* Connects to launched web service endpoint, sends message with CR/NL symbols and
* checks if it was modified during the round trip client/server communication.
*/
private
boolean
runClientCode
(
int
port
)
throws
Exception
{
private
boolean
runClientCode
(
int
port
,
boolean
callGetMessage
)
throws
Exception
{
System
.
out
.
println
(
"Launching WS client connection on "
+
port
+
" port"
);
URL
url
=
new
URL
(
"http://localhost:"
+
port
+
"/ws/hello?wsdl"
);
QName
qname
=
new
QName
(
"http://ws/"
,
"HelloWorldImplService"
);
Service
service
=
Service
.
create
(
url
,
qname
);
registerHandler
(
service
,
callGetMessage
);
HelloWorld
hello
=
(
HelloWorld
)
service
.
getPort
(
HelloWorld
.
class
);
logStringContent
(
"Client input parameter"
,
WS_PARAM_VALUE
);
...
...
@@ -85,6 +100,45 @@ public class Main {
return
!
WS_PARAM_VALUE
.
equals
(
response
);
}
/*
* Register message handler and call SOAPMessageContext.getMessage
* to emulate issue reported in JDK-8196491
*/
private
void
registerHandler
(
Service
service
,
final
boolean
callGetMessage
)
{
System
.
out
.
printf
(
"Client %s call getMessage inside message handler%n"
,
callGetMessage
?
"will"
:
"will not"
);
// Set custom SOAP message handler resolver
service
.
setHandlerResolver
(
portInfo
->
{
Handler
h
=
new
SOAPHandler
<
SOAPMessageContext
>()
{
@Override
public
boolean
handleMessage
(
SOAPMessageContext
context
)
{
if
(
callGetMessage
)
{
// Trigger exception from JDK-8196491
SOAPMessage
msg
=
context
.
getMessage
();
}
return
true
;
}
@Override
public
boolean
handleFault
(
SOAPMessageContext
context
)
{
return
true
;
}
@Override
public
void
close
(
MessageContext
context
)
{
}
@Override
public
Set
<
QName
>
getHeaders
()
{
return
null
;
}
};
return
Collections
.
singletonList
(
h
);
});
}
/*
* Outputs the parameter value with newline and carriage-return symbols
* replaced with #CR and #NL text abbreviations.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录