- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的基于 JDMK 的应用程序在 com.sun.jdmk.comm.HttpSendSocket 的第 313 行间歇性出现 IOException,我不明白为什么。我从 Javadoc 中了解到的是,如果在创建输入流时发生 I/O 错误,您将收到 IOException,但我不知道发生了哪种 I/O 错误或为什么会发生。该代码实际上在该错误发生之前和之后都有效。
任何有关如何调试此间歇性问题的提示将不胜感激。
我不想在此处粘贴 HttpSendSocket 的源代码,因为它不属于我,但我知道当抛出 IOException 异常时,它正在执行 HttpURLConnection conn.getInputStream() 。
我想过尝试创建我自己的 HttpSendSocket 版本,并在其中添加诊断,但不知道如何实现,因为它是一个受包保护的类。
堆栈跟踪如下:
com.sun.jdmk.comm.CommunicationException: java.io.IOException: HTTP request failed
at com.sun.jdmk.comm.HttpSendSocket.readNotify(HttpSendSocket.java:313)
at com.sun.jdmk.comm.HttpSendInputStream.read(HttpSendInputStream.java:95)
at java.io.FilterInputStream.read(FilterInputStream.java:94)
at java.io.PushbackInputStream.read(PushbackInputStream.java:150)
at com.sun.jdmk.comm.GenericHttpConnectorClient.sendHttp(GenericHttpConnectorClient.java:486)
at com.sun.jdmk.comm.GenericHttpConnectorClient.invokeRemoteOperation(GenericHttpConnectorClient.java:2234)
at com.sun.jdmk.comm.GenericHttpConnectorClient.invoke(GenericHttpConnectorClient.java:1366)
正如我所说,任何有用的建议将不胜感激。
最佳答案
通信异常是由于使用ArrayList方法subList引起的。 ArrayList 是可序列化的,但 subList 数据不可序列化,因此您无法通过 HttpConnector 检索数据。解决方案是更改:
List<UserProcessInfo> values = new ArrayList<UserProcessInfo>();
...
values.size() <= 1000 ? values : values.subList(0,1000);
至:
List<UserProcessInfo> values = new ArrayList<UserProcessInfo>();
...
return values.size() <= 1000 ? values : new ArrayList<UserProcessInfo>(values.subList(0,1000));
关于java - 我如何知道为什么我在 com.sun.jdmk.comm.HttpSendSocket 的第 113 行收到 IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391903/
我的基于 JDMK 的应用程序在 com.sun.jdmk.comm.HttpSendSocket 的第 313 行间歇性出现 IOException,我不明白为什么。我从 Javadoc 中了解到的
我是一名优秀的程序员,十分优秀!