Author: dfs
Date: Sun Apr 23 09:59:49 2006
New Revision: 396292

URL: http://svn.apache.org/viewcvs?rev=396292&view=rev
Log:
Applied Rob Hasselbaum's (rhasselbaum at alumni.ithaca.edu) patch for
PR 38688 fixing a TelnetInputStream hang.

Modified:
    jakarta/commons/proper/net/trunk/project.xml
    
jakarta/commons/proper/net/trunk/src/java/org/apache/commons/net/telnet/TelnetInputStream.java
    jakarta/commons/proper/net/trunk/xdocs/changes.xml

Modified: jakarta/commons/proper/net/trunk/project.xml
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/net/trunk/project.xml?rev=396292&r1=396291&r2=396292&view=diff
==============================================================================
--- jakarta/commons/proper/net/trunk/project.xml (original)
+++ jakarta/commons/proper/net/trunk/project.xml Sun Apr 23 09:59:49 2006
@@ -145,6 +145,10 @@
 
        <contributors>
                <contributor>
+                       <name>Rob Hasselbaum</name>
+                       <email>rhasselbaum -> alumni.ithaca.edu</email>
+               </contributor>
+               <contributor>
                        <name>Mario Ivankovits</name>
                        <email>[EMAIL PROTECTED]</email>
                </contributor>

Modified: 
jakarta/commons/proper/net/trunk/src/java/org/apache/commons/net/telnet/TelnetInputStream.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/net/trunk/src/java/org/apache/commons/net/telnet/TelnetInputStream.java?rev=396292&r1=396291&r2=396292&view=diff
==============================================================================
--- 
jakarta/commons/proper/net/trunk/src/java/org/apache/commons/net/telnet/TelnetInputStream.java
 (original)
+++ 
jakarta/commons/proper/net/trunk/src/java/org/apache/commons/net/telnet/TelnetInputStream.java
 Sun Apr 23 09:59:49 2006
@@ -277,6 +277,8 @@
         {
             while (__bytesAvailable >= __queue.length - 1)
             {
+                // The queue is full. We need to wait before adding any more 
data to it. Hopefully the stream owner
+                // will consume some data soon! 
                 if(__threaded)
                 {
                     __queue.notify();
@@ -289,6 +291,12 @@
                         throw e;
                     }
                 }
+                else
+                {
+                    // We've been asked to add another character to the queue, 
but it is already full and there's
+                    // no other thread to drain it. This should not have 
happened! 
+                    throw new IllegalStateException("Queue is full! Cannot 
process another character.");
+                }
             }
 
             // Need to do this in case we're not full, but block on a read
@@ -389,8 +397,9 @@
                                     return (-1);
                             }
                         }
-                        while (super.available() > 0);
-
+                        // Continue reading as long as there is data available 
and the queue is not full.
+                        while (super.available() > 0 && __bytesAvailable < 
__queue.length - 1);
+                        
                         __readIsWaiting = false;
                     }
                     continue;

Modified: jakarta/commons/proper/net/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/net/trunk/xdocs/changes.xml?rev=396292&r1=396291&r2=396292&view=diff
==============================================================================
--- jakarta/commons/proper/net/trunk/xdocs/changes.xml (original)
+++ jakarta/commons/proper/net/trunk/xdocs/changes.xml Sun Apr 23 09:59:49 2006
@@ -23,6 +23,12 @@
 
        <body>
                <release version="1.4.x" date="" description="">
+                       <action dev="dfs" type="fix">
+                               Applied Rob Hasselbaum's
+                               &lt;rhasselbaum -> alumni.ithaca.edu&gt;
+                               patch for PR 38688 fixing a
+                               TelnetInputStream hang.
+                       </action>
                        <action dev="dfs" type="update">
                                Exposed control connection of FTP
                                class via _controlInput_ and _controlOutput_



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to