首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测委托任务中的异常(SSLEngine)

如何检测委托任务中的异常(SSLEngine)
EN

Stack Overflow用户
提问于 2015-10-06 15:48:13
回答 1查看 218关注 0票数 1

我使用SSLEngine和NIO一起为我的应用程序提供非阻塞的SSL连接。在握手过程中的某个时刻(可能在接收ServerHelloDone之后),SSLEngine要求我处理委托的任务。

因此,我调用getDelegatedTask,并称其为run方法。任务本身调用X509ExtendedKeyManager.getCertificateChain,然后抛出一个NullPointerException。该异常被Handshaker捕获,并存储在以后的报告中。

但是,报告的工作方式是调用私有的checkTaskThrown方法,该方法仅在接收到消息或要发送消息时调用。但是如果没有正确地完成getCertificateChain,就没有什么要发送的,而另一方也没有发送任何东西,所以没有什么可接收的。因此,异常是隐藏的。

由于没有任何一方继续前进,我们有一个生动活泼的地方。我找不到任何方法来防止或发现它,除了

  • 使用反射调用checkTaskThrown
  • 为超时使用一些任务/计时器

这两条路我都不想去..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-11 06:07:19

当任务完成时,应该重试返回NEED_TASK.的操作。

您需要在您的KeyManager.中找到并修复NPE。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32974249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档