Java 错误堆栈跟踪累积

标签 java exception

我开发 smpp 客户端,当我一次又一次收到 InvalidResponseException 时,我的堆栈跟踪增加:

org.jsmpp.extra.NegativeResponseException: Negative response 0000000f found
    at org.jsmpp.session.AbstractSession.validateResponse(AbstractSession.java:162)
    at org.jsmpp.session.AbstractSession.executeSendCommand(AbstractSession.java:203)
    at org.jsmpp.session.SMPPSession.sendBind(SMPPSession.java:143)
    at org.jsmpp.session.SMPPSession.connectAndBind(SMPPSession.java:86)
    at com.sms.client.gw.Gateway.newSession(Gateway.java:107)
    at com.sms.client.gw.Gateway.getSession(Gateway.java:81)
    at com.sms.client.gw.Gateway.access$300(Gateway.java:33)
    at com.sms.client.gw.Gateway$SessionStateListenerImpl.onStateChange(Gateway.java:196)
    at org.jsmpp.session.AbstractSessionContext.fireStateChanged(AbstractSessionContext.java:69)
    at org.jsmpp.session.SMPPSessionContext.changeState(SMPPSessionContext.java:44)
    at org.jsmpp.session.AbstractSessionContext.close(AbstractSessionContext.java:58)
    at org.jsmpp.session.SMPPSessionContext.close(SMPPSessionContext.java:10)
    at org.jsmpp.session.AbstractSession.close(AbstractSession.java:141)

然后堆栈跟踪增加:

org.jsmpp.extra.NegativeResponseException: Negative response 0000000f found
    at org.jsmpp.session.AbstractSession.validateResponse(AbstractSession.java:162)
    at org.jsmpp.session.AbstractSession.executeSendCommand(AbstractSession.java:203)
    at org.jsmpp.session.SMPPSession.sendBind(SMPPSession.java:143)
    at org.jsmpp.session.SMPPSession.connectAndBind(SMPPSession.java:86)
    at com.sms.client.gw.Gateway.newSession(Gateway.java:107)
    at com.sms.client.gw.Gateway.getSession(Gateway.java:81)
    at com.sms.client.gw.Gateway.access$300(Gateway.java:33)
    at com.sms.client.gw.Gateway$SessionStateListenerImpl.onStateChange(Gateway.java:196)
    at org.jsmpp.session.AbstractSessionContext.fireStateChanged(AbstractSessionContext.java:69)
    at org.jsmpp.session.SMPPSessionContext.changeState(SMPPSessionContext.java:44)
    at org.jsmpp.session.AbstractSessionContext.close(AbstractSessionContext.java:58)
    at org.jsmpp.session.SMPPSessionContext.close(SMPPSessionContext.java:10)
    at org.jsmpp.session.AbstractSession.close(AbstractSession.java:141)
    at org.jsmpp.session.SMPPSession.connectAndBind(SMPPSession.java:100)
    at com.sms.client.gw.Gateway.newSession(Gateway.java:107)
    at com.sms.client.gw.Gateway.getSession(Gateway.java:81)
    at com.sms.client.gw.Gateway.access$300(Gateway.java:33)
    at com.sms.client.gw.Gateway$SessionStateListenerImpl.onStateChange(Gateway.java:196)
    at org.jsmpp.session.AbstractSessionContext.fireStateChanged(AbstractSessionContext.java:69)
    at org.jsmpp.session.SMPPSessionContext.changeState(SMPPSessionContext.java:44)
    at org.jsmpp.session.AbstractSessionContext.close(AbstractSessionContext.java:58)
    at org.jsmpp.session.SMPPSessionContext.close(SMPPSessionContext.java:10)
    at org.jsmpp.session.AbstractSession.close(AbstractSession.java:141)
    at org.jsmpp.session.SMPPSession$EnquireLinkSender.run(SMPPSession.java:394)

越来越大。怎么可能呢?为什么堆栈跟踪会累积? 在响应之间,我将 SMPPSessionContext 变量设置为 null,并将 SMPPSession 设置为 null

最佳答案

据我所知,有一个尝试打开新 session 的 close session 事件的监听器。同时,connectAndBind 方法在检测到失败时会尝试关闭 session ,从而触发另一个递归循环。因此,停止这样做,停止尝试在 close 事件回调中打开 session (这是您的类 Gateway$SessionStateListenerImpl)。

关于Java 错误堆栈跟踪累积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10760891/

相关文章:

java - 使用现有 Hazelcast 实例初始化 SessionFactory

python - 属性错误: 'property' object has no attribute

python - 为什么我的 `else` block 的 `try` 部分的代码没有运行?

javascript - 如何处理导致未解决 promise 的异常

java - Android 网页 View 控件

java - 将我的代码从标签更改为 JLabel 有何作用?

java - 发送十六进制命令到 ESC/POS 打印机 Android

java - 如何将 JTextField[][] 作为参数传递给动态加载的 java 类方法?

unit-testing - 异常消息的单元测试

java - java中如何通过hashcode获取对象?有现成的方法吗?