我将SSLEngine
与NIO一起使用,为我的应用程序提供非阻塞SSL连接。在握手期间的某个时刻(可能在收到ServerHelloDone
之后),SSLEngine
要求我处理委派任务。
所以我致电getDelegatedTask
并称之为run
方法。任务本身会调用X509ExtendedKeyManager.getCertificateChain
,而NullPointerException
会抛出Handshaker
。该例外由checkTaskThrown
捕获并存储以供以后报告。
但是报告通过调用仅在收到消息或要发送消息时调用的私有getCertificateChain
方法来工作。
但是如果没有checkTaskThrown
正确完成,就没有什么可以发送而另一方也没有发送任何内容,所以没有什么可以收到的。因此异常保持隐藏。
由于没有任何一方进展,我们有一个活锁。 除了
之外,我发现无法阻止或检测到这种情况home_list_item.xml
这两条路线都不是我要去的路线......
答案 0 :(得分:1)
任务完成后,您应该重试返回NEED_TASK.
您需要在KeyManager.