OSDN Git Service

2005-12-27 Tom Tromey <tromey@redhat.com>
authorgreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Dec 2005 17:46:21 +0000 (17:46 +0000)
committergreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Dec 2005 17:46:21 +0000 (17:46 +0000)
* gnu/java/nio/SelectorImpl.java: Added import.

2005-12-26  Anthony Green  <green@redhat.com>

        * java/net/Socket.java (connect): Don't close the socket on
        exceptions.

        * gnu/java/nio/SocketChannelImpl.java (read): Compute the right amount
        of data to read (dst.remaining()).
        * gnu/java/nio/DatagramChannelImpl.java (receive): Ditto.

        * gnu/java/nio/SelectorImpl.java (select): Handle OP_CONNECT
        properly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109114 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/classpath/ChangeLog
libjava/classpath/gnu/java/nio/DatagramChannelImpl.java
libjava/classpath/gnu/java/nio/SelectorImpl.java
libjava/classpath/gnu/java/nio/SocketChannelImpl.java
libjava/classpath/java/net/Socket.java

index 125388f..85df787 100644 (file)
@@ -1,3 +1,19 @@
+2005-12-27  Tom Tromey  <tromey@redhat.com>
+
+       * gnu/java/nio/SelectorImpl.java: Added import.
+
+2005-12-26  Anthony Green  <green@redhat.com>
+
+        * java/net/Socket.java (connect): Don't close the socket on
+        exceptions.
+
+        * gnu/java/nio/SocketChannelImpl.java (read): Compute the right amount
+        of data to read (dst.remaining()).
+        * gnu/java/nio/DatagramChannelImpl.java (receive): Ditto.
+
+        * gnu/java/nio/SelectorImpl.java (select): Handle OP_CONNECT
+        properly.
+
 2005-11-17  Roman Kennke  <kennke@aicas.com>
 
        * javax/swing/JEditorPane.java
index 51c7031..4687bf3 100644 (file)
@@ -201,7 +201,7 @@ public final class DatagramChannelImpl extends DatagramChannel
     try
       {
         DatagramPacket packet;
-        int len = dst.capacity() - dst.position();
+        int len = dst.remaining();
         
         if (dst.hasArray())
           {
index dcafede..e10f715 100644 (file)
@@ -43,6 +43,7 @@ import java.nio.channels.ClosedSelectorException;
 import java.nio.channels.SelectableChannel;
 import java.nio.channels.SelectionKey;
 import java.nio.channels.Selector;
+import java.nio.channels.SocketChannel;
 import java.nio.channels.spi.AbstractSelectableChannel;
 import java.nio.channels.spi.AbstractSelector;
 import java.nio.channels.spi.SelectorProvider;
@@ -284,19 +285,18 @@ public class SelectorImpl extends AbstractSelector
                 // Set new ready write ops
                 for (int i = 0; i < write.length; i++)
                   {
-                    if (key.getNativeFD() == write[i])
-                      {
-                        ops = ops | SelectionKey.OP_WRITE;
-
-        //                 if (key.channel ().isConnected ())
-        //                   {
-        //                     ops = ops | SelectionKey.OP_WRITE;
-        //                   }
-        //                 else
-        //                   {
-        //                     ops = ops | SelectionKey.OP_CONNECT;
-        //                   }
-                     }
+                   if (key.getNativeFD() == write[i])
+                     {
+                       if (key.channel() instanceof SocketChannel)
+                         {
+                           if (((SocketChannel) key.channel ()).isConnected ())
+                             ops = ops | SelectionKey.OP_WRITE;
+                           else
+                             ops = ops | SelectionKey.OP_CONNECT;
+                         }
+                       else
+                         ops = ops | SelectionKey.OP_WRITE;
+                     }
                   }
 
                 // FIXME: We dont handle exceptional file descriptors yet.
index fcddbd6..680eba2 100644 (file)
@@ -220,7 +220,7 @@ public final class SocketChannelImpl extends SocketChannel
     int offset = 0;
     InputStream input = socket.getInputStream();
     int available = input.available();
-    int len = dst.capacity() - dst.position();
+    int len = dst.remaining();
        
     if ((! isBlocking()) && available == 0)
       return 0;
index 0ff6e6e..b2249ff 100644 (file)
@@ -437,25 +437,7 @@ public class Socket
     if (! isBound())
       bind(null);
 
-    try
-      {
-       getImpl().connect(endpoint, timeout);
-      }
-    catch (IOException exception)
-      {
-       close();
-       throw exception;
-      }
-    catch (RuntimeException exception)
-      {
-       close();
-       throw exception;
-      }
-    catch (Error error)
-      {
-       close();
-       throw error;
-      }
+    getImpl().connect(endpoint, timeout);
   }
 
   /**