You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by df...@apache.org on 2006/04/23 18:59:51 UTC

svn commit: r396292 - in /jakarta/commons/proper/net/trunk: project.xml src/java/org/apache/commons/net/telnet/TelnetInputStream.java xdocs/changes.xml

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>mario@ops.co.at</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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org