Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
a374f380
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看板
提交
a374f380
编写于
12月 09, 2015
作者:
R
robm
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8141370: com/sun/jndi/ldap/LdapTimeoutTest.java failed intermittently
Reviewed-by: vinnie
上级
8234cbbb
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
217 addition
and
38 deletion
+217
-38
test/ProblemList.txt
test/ProblemList.txt
+7
-0
test/com/sun/jndi/ldap/DeadSSLLdapTimeoutTest.java
test/com/sun/jndi/ldap/DeadSSLLdapTimeoutTest.java
+210
-0
test/com/sun/jndi/ldap/LdapTimeoutTest.java
test/com/sun/jndi/ldap/LdapTimeoutTest.java
+0
-38
未找到文件。
test/ProblemList.txt
浏览文件 @
a374f380
...
@@ -289,3 +289,10 @@ sun/tools/jcmd/TestJcmdSanity.java windows-all
...
@@ -289,3 +289,10 @@ sun/tools/jcmd/TestJcmdSanity.java windows-all
sun/tools/jps/TestJpsJarRelative.java generic-all
sun/tools/jps/TestJpsJarRelative.java generic-all
############################################################################
############################################################################
# jdk_other
############################################################################
# 8141370
com/sun/jndi/ldap/DeadSSLLdapTimeoutTest.java linux-i586,macosx-all
test/com/sun/jndi/ldap/DeadSSLLdapTimeoutTest.java
0 → 100644
浏览文件 @
a374f380
/*
* Copyright (c) 2011, 2014, 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.
*
* 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.
*/
/**
* @test
* @run main/othervm DeadSSLLdapTimeoutTest
* @bug 8141370
* @key intermittent
*/
import
java.net.Socket
;
import
java.net.ServerSocket
;
import
java.net.SocketTimeoutException
;
import
java.io.*
;
import
javax.naming.*
;
import
javax.naming.directory.*
;
import
java.util.List
;
import
java.util.Hashtable
;
import
java.util.ArrayList
;
import
java.util.concurrent.Callable
;
import
java.util.concurrent.ExecutionException
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Future
;
import
java.util.concurrent.ScheduledExecutorService
;
import
java.util.concurrent.ScheduledFuture
;
import
java.util.concurrent.TimeoutException
;
import
java.util.concurrent.TimeUnit
;
import
javax.net.ssl.SSLHandshakeException
;
import
static
java
.
util
.
concurrent
.
TimeUnit
.
MILLISECONDS
;
import
static
java
.
util
.
concurrent
.
TimeUnit
.
NANOSECONDS
;
class
DeadServerTimeoutSSLTest
implements
Callable
{
Hashtable
env
;
DeadSSLServer
server
;
boolean
passed
=
false
;
private
int
HANGING_TEST_TIMEOUT
=
20_000
;
public
DeadServerTimeoutSSLTest
(
Hashtable
env
)
throws
IOException
{
this
.
server
=
new
DeadSSLServer
();
this
.
env
=
env
;
}
public
void
performOp
(
InitialContext
ctx
)
throws
NamingException
{}
public
void
handleNamingException
(
NamingException
e
,
long
start
,
long
end
)
{
if
(
e
.
getCause
()
instanceof
SocketTimeoutException
)
{
// SSL connect will timeout via readReply using
// SocketTimeoutException
e
.
printStackTrace
();
pass
();
}
else
if
(
e
.
getCause
()
instanceof
SSLHandshakeException
&&
e
.
getCause
().
getCause
()
instanceof
EOFException
)
{
// test seems to be failing intermittently on some
// platforms.
pass
();
}
else
{
fail
(
e
);
}
}
public
void
pass
()
{
this
.
passed
=
true
;
}
public
void
fail
()
{
throw
new
RuntimeException
(
"Test failed"
);
}
public
void
fail
(
Exception
e
)
{
throw
new
RuntimeException
(
"Test failed"
,
e
);
}
boolean
shutItDown
(
InitialContext
ctx
)
{
try
{
if
(
ctx
!=
null
)
ctx
.
close
();
return
true
;
}
catch
(
NamingException
ex
)
{
return
false
;
}
}
public
Boolean
call
()
{
InitialContext
ctx
=
null
;
ScheduledFuture
killer
=
null
;
long
start
=
System
.
nanoTime
();
try
{
while
(!
server
.
accepting
())
Thread
.
sleep
(
200
);
// allow the server to start up
Thread
.
sleep
(
200
);
// to be sure
env
.
put
(
Context
.
PROVIDER_URL
,
"ldap://localhost:"
+
server
.
getLocalPort
());
try
{
ctx
=
new
InitialDirContext
(
env
);
performOp
(
ctx
);
fail
();
}
catch
(
NamingException
e
)
{
long
end
=
System
.
nanoTime
();
System
.
out
.
println
(
this
.
getClass
().
toString
()
+
" - elapsed: "
+
NANOSECONDS
.
toMillis
(
end
-
start
));
handleNamingException
(
e
,
start
,
end
);
}
finally
{
if
(
killer
!=
null
&&
!
killer
.
isDone
())
killer
.
cancel
(
true
);
shutItDown
(
ctx
);
server
.
close
();
}
return
passed
;
}
catch
(
IOException
|
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
}
class
DeadSSLServer
extends
Thread
{
ServerSocket
serverSock
;
boolean
accepting
=
false
;
public
DeadSSLServer
()
throws
IOException
{
this
.
serverSock
=
new
ServerSocket
(
0
);
start
();
}
public
void
run
()
{
while
(
true
)
{
try
{
accepting
=
true
;
Socket
socket
=
serverSock
.
accept
();
}
catch
(
Exception
e
)
{
break
;
}
}
}
public
int
getLocalPort
()
{
return
serverSock
.
getLocalPort
();
}
public
boolean
accepting
()
{
return
accepting
;
}
public
void
close
()
throws
IOException
{
serverSock
.
close
();
}
}
public
class
DeadSSLLdapTimeoutTest
{
static
Hashtable
createEnv
()
{
Hashtable
env
=
new
Hashtable
(
11
);
env
.
put
(
Context
.
INITIAL_CONTEXT_FACTORY
,
"com.sun.jndi.ldap.LdapCtxFactory"
);
return
env
;
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
InitialContext
ctx
=
null
;
//
// Running this test serially as it seems to tickle a problem
// on older kernels
//
// run the DeadServerTest with connect / read timeouts set
// and ssl enabled
// this should exit with a SocketTimeoutException as the root cause
// it should also use the connect timeout instead of the read timeout
System
.
out
.
println
(
"Running connect timeout test with 10ms connect timeout, 3000ms read timeout & SSL"
);
Hashtable
sslenv
=
createEnv
();
sslenv
.
put
(
"com.sun.jndi.ldap.connect.timeout"
,
"10"
);
sslenv
.
put
(
"com.sun.jndi.ldap.read.timeout"
,
"3000"
);
sslenv
.
put
(
Context
.
SECURITY_PROTOCOL
,
"ssl"
);
boolean
testFailed
=
(
new
DeadServerTimeoutSSLTest
(
sslenv
).
call
())
?
false
:
true
;
if
(
testFailed
)
{
throw
new
AssertionError
(
"some tests failed"
);
}
}
}
test/com/sun/jndi/ldap/LdapTimeoutTest.java
浏览文件 @
a374f380
...
@@ -224,29 +224,6 @@ class DeadServerTimeoutTest extends DeadServerTest {
...
@@ -224,29 +224,6 @@ class DeadServerTimeoutTest extends DeadServerTest {
}
}
}
}
class
DeadServerTimeoutSSLTest
extends
DeadServerTest
{
public
DeadServerTimeoutSSLTest
(
Hashtable
env
)
throws
IOException
{
super
(
env
);
}
public
void
handleNamingException
(
NamingException
e
,
long
start
,
long
end
)
{
if
(
e
.
getCause
()
instanceof
SocketTimeoutException
)
{
// SSL connect will timeout via readReply using
// SocketTimeoutException
e
.
printStackTrace
();
pass
();
}
else
if
(
e
.
getCause
()
instanceof
SSLHandshakeException
&&
e
.
getCause
().
getCause
()
instanceof
EOFException
)
{
// test seems to be failing intermittently on some
// platforms.
pass
();
}
else
{
fail
(
e
);
}
}
}
class
ReadServerNoTimeoutTest
extends
ReadServerTest
{
class
ReadServerNoTimeoutTest
extends
ReadServerTest
{
...
@@ -453,21 +430,6 @@ public class LdapTimeoutTest {
...
@@ -453,21 +430,6 @@ public class LdapTimeoutTest {
}
}
}
}
//
// Running this test serially as it seems to tickle a problem
// on older kernels
//
// run the DeadServerTest with connect / read timeouts set
// and ssl enabled
// this should exit with a SocketTimeoutException as the root cause
// it should also use the connect timeout instead of the read timeout
System
.
out
.
println
(
"Running connect timeout test with 10ms connect timeout, 3000ms read timeout & SSL"
);
Hashtable
sslenv
=
createEnv
();
sslenv
.
put
(
"com.sun.jndi.ldap.connect.timeout"
,
"10"
);
sslenv
.
put
(
"com.sun.jndi.ldap.read.timeout"
,
"3000"
);
sslenv
.
put
(
Context
.
SECURITY_PROTOCOL
,
"ssl"
);
testFailed
=
(
new
DeadServerTimeoutSSLTest
(
sslenv
).
call
())
?
false
:
true
;
if
(
testFailed
)
{
if
(
testFailed
)
{
throw
new
AssertionError
(
"some tests failed"
);
throw
new
AssertionError
(
"some tests failed"
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录