You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2005/08/20 19:23:06 UTC

svn commit: r234099 - in /jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io: NIOSocketHttpDataReceiver.java NIOSocketHttpDataTransmitter.java OldIOSocketHttpDataReceiver.java OldIOSocketHttpDataTransmitter.java

Author: olegk
Date: Sat Aug 20 10:23:00 2005
New Revision: 234099

URL: http://svn.apache.org/viewcvs?rev=234099&view=rev
Log:
Constructors made public

Modified:
    jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataReceiver.java
    jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataTransmitter.java
    jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/OldIOSocketHttpDataReceiver.java
    jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/OldIOSocketHttpDataTransmitter.java

Modified: jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataReceiver.java
URL: http://svn.apache.org/viewcvs/jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataReceiver.java?rev=234099&r1=234098&r2=234099&view=diff
==============================================================================
--- jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataReceiver.java (original)
+++ jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataReceiver.java Sat Aug 20 10:23:00 2005
@@ -31,10 +31,7 @@
 
 import java.io.IOException;
 import java.net.Socket;
-import java.net.SocketTimeoutException;
 import java.nio.ByteBuffer;
-import java.nio.channels.SelectionKey;
-import java.nio.channels.Selector;
 import java.nio.channels.SocketChannel;
 
 import org.apache.http.params.HttpConnectionParams;
@@ -52,11 +49,8 @@
 public class NIOSocketHttpDataReceiver extends NIOHttpDataReceiver {
 
     private final SocketChannel channel;
-    private final Selector selector;
     
-    private long readTimeout = 0;
-    
-    protected NIOSocketHttpDataReceiver(final Socket socket) throws IOException {
+    public NIOSocketHttpDataReceiver(final Socket socket) throws IOException {
         super();
         if (socket == null) {
             throw new IllegalArgumentException("Socket may not be null");
@@ -65,14 +59,13 @@
             throw new IllegalArgumentException("Socket does not implement NIO channel");
         }
         this.channel = socket.getChannel();
-        this.channel.configureBlocking(false);
-        this.selector = Selector.open();
-        this.channel.register(this.selector, SelectionKey.OP_READ);
         initBuffer(socket.getReceiveBufferSize());
     }
     
     public void reset(final HttpParams params) {
-        this.readTimeout = HttpConnectionParams.getSoTimeout(params);
+        if (HttpConnectionParams.getSoTimeout(params) > 0) {
+        	throw new IllegalStateException("Socket timeout not supported by NIO connections");
+        }
         super.reset(params); 
     }
 
@@ -80,22 +73,11 @@
         if (dst == null) {
             throw new IllegalArgumentException("Byte buffer may not be null");
         }
-        this.selector.select(this.readTimeout);
-        int result = this.channel.read(dst);
-        if (result == 0) {
-            throw new SocketTimeoutException("Socket read timeout after " 
-                    + this.readTimeout + " ms");
-        }
-        return result;
+        return this.channel.read(dst);
     }
   
     public boolean isDataAvailable(int timeout) throws IOException {
-        if (hasDataInBuffer()) {
-            return true;
-        } else {
-            this.selector.select(timeout);
-            return !this.selector.selectedKeys().isEmpty();
-        }
+        return hasDataInBuffer();
     }    
         
 }

Modified: jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataTransmitter.java
URL: http://svn.apache.org/viewcvs/jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataTransmitter.java?rev=234099&r1=234098&r2=234099&view=diff
==============================================================================
--- jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataTransmitter.java (original)
+++ jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataTransmitter.java Sat Aug 20 10:23:00 2005
@@ -48,7 +48,7 @@
 
     private final SocketChannel channel;
     
-    protected NIOSocketHttpDataTransmitter(final Socket socket) throws SocketException {
+    public NIOSocketHttpDataTransmitter(final Socket socket) throws SocketException {
         super();
         if (socket == null) {
             throw new IllegalArgumentException("Socket may not be null");

Modified: jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/OldIOSocketHttpDataReceiver.java
URL: http://svn.apache.org/viewcvs/jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/OldIOSocketHttpDataReceiver.java?rev=234099&r1=234098&r2=234099&view=diff
==============================================================================
--- jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/OldIOSocketHttpDataReceiver.java (original)
+++ jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/OldIOSocketHttpDataReceiver.java Sat Aug 20 10:23:00 2005
@@ -85,7 +85,7 @@
         return new BufferedInputStream(socket.getInputStream(), buffersize);
     }
     
-    protected OldIOSocketHttpDataReceiver(final Socket socket) throws IOException {
+    public OldIOSocketHttpDataReceiver(final Socket socket) throws IOException {
         super(createInputStream(socket));
         this.socket = socket;
     }

Modified: jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/OldIOSocketHttpDataTransmitter.java
URL: http://svn.apache.org/viewcvs/jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/OldIOSocketHttpDataTransmitter.java?rev=234099&r1=234098&r2=234099&view=diff
==============================================================================
--- jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/OldIOSocketHttpDataTransmitter.java (original)
+++ jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/OldIOSocketHttpDataTransmitter.java Sat Aug 20 10:23:00 2005
@@ -58,7 +58,7 @@
         return new BufferedOutputStream(socket.getOutputStream(), buffersize);
     }
     
-    protected OldIOSocketHttpDataTransmitter(final Socket socket) throws IOException {
+    public OldIOSocketHttpDataTransmitter(final Socket socket) throws IOException {
         super(createOutputStream(socket));
     }
     



Re: svn commit: r234099 - in /jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io: NIOSocketHttpDataReceiver.java NIOSocketHttpDataTransmitter.java OldIOSocketHttpDataReceiver.java OldIOSocketHttpDataTransmitter.java

Posted by Oleg Kalnichevski <ol...@apache.org>.
Damn, it did not want to commit this one yet. Sorry about it. I'll roll
this change back if required.

Oleg

On Sat, 2005-08-20 at 17:23 +0000, olegk@apache.org wrote:
> Author: olegk
> Date: Sat Aug 20 10:23:00 2005
> New Revision: 234099
> 
> URL: http://svn.apache.org/viewcvs?rev=234099&view=rev
> Log:
> Constructors made public
...
> Modified: jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataReceiver.java
> URL: http://svn.apache.org/viewcvs/jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataReceiver.java?rev=234099&r1=234098&r2=234099&view=diff
> ==============================================================================
> --- jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataReceiver.java (original)
> +++ jakarta/httpclient/trunk/http-common/src/java/org/apache/http/impl/io/NIOSocketHttpDataReceiver.java Sat Aug 20 10:23:00 2005
> @@ -31,10 +31,7 @@
>  
>  import java.io.IOException;
>  import java.net.Socket;
> -import java.net.SocketTimeoutException;
>  import java.nio.ByteBuffer;
> -import java.nio.channels.SelectionKey;
> -import java.nio.channels.Selector;
>  import java.nio.channels.SocketChannel;
>  
>  import org.apache.http.params.HttpConnectionParams;
> @@ -52,11 +49,8 @@
>  public class NIOSocketHttpDataReceiver extends NIOHttpDataReceiver {
>  
>      private final SocketChannel channel;
> -    private final Selector selector;
>      
> -    private long readTimeout = 0;
> -    
> -    protected NIOSocketHttpDataReceiver(final Socket socket) throws IOException {
> +    public NIOSocketHttpDataReceiver(final Socket socket) throws IOException {
>          super();
>          if (socket == null) {
>              throw new IllegalArgumentException("Socket may not be null");
> @@ -65,14 +59,13 @@
>              throw new IllegalArgumentException("Socket does not implement NIO channel");
>          }
>          this.channel = socket.getChannel();
> -        this.channel.configureBlocking(false);
> -        this.selector = Selector.open();
> -        this.channel.register(this.selector, SelectionKey.OP_READ);
>          initBuffer(socket.getReceiveBufferSize());
>      }
>      
>      public void reset(final HttpParams params) {
> -        this.readTimeout = HttpConnectionParams.getSoTimeout(params);
> +        if (HttpConnectionParams.getSoTimeout(params) > 0) {
> +        	throw new IllegalStateException("Socket timeout not supported by NIO connections");
> +        }
>          super.reset(params); 
>      }
>  
> @@ -80,22 +73,11 @@
>          if (dst == null) {
>              throw new IllegalArgumentException("Byte buffer may not be null");
>          }
> -        this.selector.select(this.readTimeout);
> -        int result = this.channel.read(dst);
> -        if (result == 0) {
> -            throw new SocketTimeoutException("Socket read timeout after " 
> -                    + this.readTimeout + " ms");
> -        }
> -        return result;
> +        return this.channel.read(dst);
>      }
>    
>      public boolean isDataAvailable(int timeout) throws IOException {
> -        if (hasDataInBuffer()) {
> -            return true;
> -        } else {
> -            this.selector.select(timeout);
> -            return !this.selector.selectedKeys().isEmpty();
> -        }
> +        return hasDataInBuffer();
>      }    
>          
>  }
> 
...


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org