diff --git a/.gitignore b/.gitignore index 7f275add..4f9ff8db 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,4 @@ target/ .classpath .project .settings/ - +.idea/ diff --git a/src/main/java/com/cloudhopper/smpp/impl/DefaultSmppSession.java b/src/main/java/com/cloudhopper/smpp/impl/DefaultSmppSession.java index 66ff11b7..a3852398 100644 --- a/src/main/java/com/cloudhopper/smpp/impl/DefaultSmppSession.java +++ b/src/main/java/com/cloudhopper/smpp/impl/DefaultSmppSession.java @@ -516,6 +516,11 @@ public WindowFuture sendRequestPdu(PduRequest pd } } + if (!this.channel.isOpen()) { + logger.info("Channel closed."); + return future; + } + // we need to log the PDU after encoding since some things only happen // during the encoding process such as looking up the result message if (configuration.getLoggingOptions().isLogPduEnabled()) { diff --git a/src/test/java/com/cloudhopper/smpp/impl/DefaultSmppServerTest.java b/src/test/java/com/cloudhopper/smpp/impl/DefaultSmppServerTest.java index 5520b2f1..46e78b8e 100644 --- a/src/test/java/com/cloudhopper/smpp/impl/DefaultSmppServerTest.java +++ b/src/test/java/com/cloudhopper/smpp/impl/DefaultSmppServerTest.java @@ -35,6 +35,8 @@ import com.cloudhopper.smpp.type.SmppChannelException; import com.cloudhopper.smpp.type.SmppProcessingException; import java.util.HashSet; + +import com.cloudhopper.smpp.type.SmppTimeoutException; import org.junit.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -456,9 +458,9 @@ public void serverSessionTimesOutWithNoBindRequest() throws Exception { BaseBind bindRequest = client0.createBindRequest(sessionConfig0); try { - BaseBindResp bindResponse = session0.bind(bindRequest, 200); + BaseBindResp bindResponse = session0.bind(bindRequest, 50); Assert.fail(); - } catch (SmppChannelException e) { + } catch (SmppTimeoutException e) { // correct behavior }