Closed GoogleCodeExporter closed 8 years ago
Hi,
Are you sure about that. SMPPSession#notifyNoActivity:void is only call when
SocketTimeoutException occured. Checking isReadPDU on method notifyNoActivity
seems
will give a same result when SocketTimeoutException occured, no one will change
the
session state (see the isReadPDU implementation).
SO Timeout conn.setSoTimeout(getEnquireLinkTimer()) already been done on
SMPPSesssion.BoundSessionStateListener, it was called when the state change to
BOUND.
See at connectAndBind(String host, int port, BindParam param, long timeout),
there
was sessionContext.bound(bindParam.getBindType()) that will raise event that
invoke SMPPSesssion.BoundSessionStateListener#onStateChange(SessionState,
SessionState,
Object).
I think these (below) two lines of code will be invoked sequentially, even in a
multi-processor.
sessionContext.bound(bindParam.getBindType());
enquireLinkSender = new EnquireLinkSender();
CMIIW
How often this race condition happen? Is there any other indication that
support your
statement.
Regards,
uudashr
Original comment by uuda...@gmail.com
on 12 Dec 2008 at 11:56
The problem is unclear, so I'll close this case
Original comment by uuda...@gmail.com
on 22 Jan 2009 at 4:57
Original issue reported on code.google.com by
cerua...@gmail.com
on 12 Dec 2008 at 10:58Attachments: