我正在使用Zendesk Java 客户端。当我提供正确的凭据时,它会按预期工作。但是,我偶然发现了一个场景,如果传入了错误的凭据,线程就会挂起并引发错误。无论我在有或没有调试器的情况下运行代码,代码都会保持运行状态。它不会退出或将控制返回给调试器。
这是图书馆的问题,还是我误解了 AsyncHttpClient 的工作原理?
我的代码如下:
fun zdtestWrongCredentials() {
val client = asyncHttpClient(
config()
.setRequestTimeout(5000)
.setReadTimeout(5000)
.setShutdownTimeout(3000)
.setPooledConnectionIdleTimeout(5000)
.setKeepAlive(false)
)
var zd = Zendesk.Builder("https://website.zendesk.com")
.setClient(client)
.setUsername("john.doe@website.com")
.setPassword("abcd")
.build()
var ticket = Ticket(123, "a", Comment("abc"))
// The code hangs here. It's unclear why it exhibits this behavior.
var test = zd.createTicket(ticket)
// The code does not reach this line.
client.close()
return
}
虽然我使用的是 Kotlin,但我尝试在一个简单的 Java 项目中复制这个问题,但问题仍然存在。
堆栈跟踪如下。底部有一个异常,但即使在这个异常之后,程序也不会退出/将控制权交还给调试器。
达令说
相关分类