You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ra...@apache.org on 2008/10/03 20:17:58 UTC
svn commit: r701476 - in /hadoop/core/trunk: CHANGES.txt
src/core/org/apache/hadoop/net/SocketInputStream.java
src/test/org/apache/hadoop/net/TestSocketIOWithTimeout.java
Author: rangadi
Date: Fri Oct 3 11:17:57 2008
New Revision: 701476
URL: http://svn.apache.org/viewvc?rev=701476&view=rev
Log:
HADOOP-4325. SocketInputStream.read() should return -1 in case EOF.
(Raghu Angadi)
Modified:
hadoop/core/trunk/CHANGES.txt
hadoop/core/trunk/src/core/org/apache/hadoop/net/SocketInputStream.java
hadoop/core/trunk/src/test/org/apache/hadoop/net/TestSocketIOWithTimeout.java
Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=701476&r1=701475&r2=701476&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Fri Oct 3 11:17:57 2008
@@ -44,6 +44,9 @@
HADOOP-4207. Update derby jar file to release 10.4.2 release.
(Prasad Chakka via dhruba)
+ HADOOP-4325. SocketInputStream.read() should return -1 in case EOF.
+ (Raghu Angadi)
+
Release 0.19.0 - Unreleased
INCOMPATIBLE CHANGES
Modified: hadoop/core/trunk/src/core/org/apache/hadoop/net/SocketInputStream.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/core/org/apache/hadoop/net/SocketInputStream.java?rev=701476&r1=701475&r2=701476&view=diff
==============================================================================
--- hadoop/core/trunk/src/core/org/apache/hadoop/net/SocketInputStream.java (original)
+++ hadoop/core/trunk/src/core/org/apache/hadoop/net/SocketInputStream.java Fri Oct 3 11:17:57 2008
@@ -113,10 +113,15 @@
* probably no need to optimize or encourage single byte read.
*/
byte[] buf = new byte[1];
- if (read(buf, 0, 1) > 0) {
+ int ret = read(buf, 0, 1);
+ if (ret > 0) {
return (byte)buf[0];
}
- throw new IOException("Could not read from stream");
+ if (ret != -1) {
+ // unexpected
+ throw new IOException("Could not read from stream");
+ }
+ return ret;
}
public int read(byte[] b, int off, int len) throws IOException {
Modified: hadoop/core/trunk/src/test/org/apache/hadoop/net/TestSocketIOWithTimeout.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/test/org/apache/hadoop/net/TestSocketIOWithTimeout.java?rev=701476&r1=701475&r2=701476&view=diff
==============================================================================
--- hadoop/core/trunk/src/test/org/apache/hadoop/net/TestSocketIOWithTimeout.java (original)
+++ hadoop/core/trunk/src/test/org/apache/hadoop/net/TestSocketIOWithTimeout.java Fri Oct 3 11:17:57 2008
@@ -132,12 +132,16 @@
//make sure the channels are still open
assertTrue(source.isOpen());
assertTrue(sink.isOpen());
+
+ out.close();
+ assertFalse(sink.isOpen());
+
+ // close sink and expect -1 from source.read()
+ assertEquals(-1, in.read());
// make sure close() closes the underlying channel.
in.close();
assertFalse(source.isOpen());
- out.close();
- assertFalse(sink.isOpen());
} finally {
if (source != null) {