[net] TelnetClient hangs when reader-thread startup delays ----------------------------------------------------------
Key: NET-456 URL: https://issues.apache.org/jira/browse/NET-456 Project: Commons Net Issue Type: Bug Components: Telnet Affects Versions: 3.1 Reporter: MarikoSekiguchi I'm trying to use TelnetClient(commons-net-3.1) with the reader-thread enabled, but it sometimes hangs. I tracked "__receiveState", and found that the state sometimes changes to invalid ones. In threaded-mode, TelnetInputStream.__read(boolean mayBlock) is normally called only by TelnetInputStream.run(). But if the read-thread startup delays, it may also called by TelnetInputStream.read() beacues the value of __threaded is still false. example of hang-up pattern 1. // user-thread telnetClient._connectAction() TelnetInputStream._start() __thread.start(); ... try to start read-thread 2. // user-thread TelnetInputStream.read() ... __threaded is still false, so TelnetInputStream.__read() is called. 3. // read-thread starts (before __read() above dosen't end ) TelnetInputStream.run( ) ... sets __threaded to true, and calls TelnetInputStream.__read() I think __threaded flag should be set to true just after __thread.start(), not at the begining of run(). __thread.start(); __threaded = true; // add This problem may related to NET-73 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira