PatchSet 4488 
Date: 2004/03/08 13:49:08
Author: dalibor
Branch: HEAD
Tag: (none) 
Log:
Resynced with GNU Classpath: Various small networking and nio fixes

2004-03-08  Dalibor Topic <[EMAIL PROTECTED]>

        Resynced with GNU Classpath

        2004-02-12  Michael Koch  <[EMAIL PROTECTED]>

        * java/net/MulticastSocket.java
        (setLoopbackMode): Use Boolean.valueOf() instead of creating a new
        Boolean object.

        2004-02-27  Michael Koch  <[EMAIL PROTECTED]>

        * java/net/URLConnection.java
        (dateFormat1, dateformat2, dateformat3): New fields.
        (dateformats_initialized): New field for lazy initialization of date
        format fields.
        (getHeaderFieldDate): Rewritten to use DateFormat.parse() instead of
        the deprecated Date(String) constructor. This implementation
        (initializeDateFormats): New method,

        2004-02-27  Michael Koch  <[EMAIL PROTECTED]>

        * java/nio/channels/FileChannel.java
        (MapMode.READ_ONLY): Made final.
        (MapMode.READ_WRITE): Made final.
        (MapMode.PRIVATE): Made final.
        * java/nio/channels/SocketChannel.java
        (open): Simplified code.
        * java/nio/channels/spi/AbstractSelectableChannel.java
        (registered): Unused, removed.
        (keyFor): Check channel is open, only locate key
        and not add a new one.
        (register): Don't delete attachments.

Members: 
        ChangeLog:1.2068->1.2069 
        libraries/javalib/java/net/MulticastSocket.java:1.12->1.13 
        libraries/javalib/java/net/URLConnection.java:1.16->1.17 
        libraries/javalib/java/nio/ByteOrder.java:1.5->1.6 
        libraries/javalib/java/nio/channels/FileChannel.java:1.5->1.6 
        libraries/javalib/java/nio/channels/SocketChannel.java:1.2->1.3 
        
libraries/javalib/java/nio/channels/spi/AbstractSelectableChannel.java:1.6->1.7 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.2068 kaffe/ChangeLog:1.2069
--- kaffe/ChangeLog:1.2068      Sun Mar  7 17:10:52 2004
+++ kaffe/ChangeLog     Mon Mar  8 13:49:08 2004
@@ -1,3 +1,37 @@
+2004-03-08  Dalibor Topic <[EMAIL PROTECTED]>
+
+        Resynced with GNU Classpath
+
+       2004-02-12  Michael Koch  <[EMAIL PROTECTED]>
+
+        * java/net/MulticastSocket.java
+        (setLoopbackMode): Use Boolean.valueOf() instead of creating a new
+        Boolean object.
+
+       2004-02-27  Michael Koch  <[EMAIL PROTECTED]>
+
+        * java/net/URLConnection.java
+        (dateFormat1, dateformat2, dateformat3): New fields.
+        (dateformats_initialized): New field for lazy initialization of date
+        format fields.
+        (getHeaderFieldDate): Rewritten to use DateFormat.parse() instead of
+        the deprecated Date(String) constructor. This implementation
+        (initializeDateFormats): New method,
+
+       2004-02-27  Michael Koch  <[EMAIL PROTECTED]>
+
+        * java/nio/channels/FileChannel.java
+        (MapMode.READ_ONLY): Made final.
+        (MapMode.READ_WRITE): Made final.
+        (MapMode.PRIVATE): Made final.
+        * java/nio/channels/SocketChannel.java
+        (open): Simplified code.
+        * java/nio/channels/spi/AbstractSelectableChannel.java
+        (registered): Unused, removed.
+        (keyFor): Check channel is open, only locate key
+        and not add a new one.
+        (register): Don't delete attachments.
+
 2004-03-07  Dalibor Topic <[EMAIL PROTECTED]>
 
         Resynced with GNU Classpath
Index: kaffe/libraries/javalib/java/net/MulticastSocket.java
diff -u kaffe/libraries/javalib/java/net/MulticastSocket.java:1.12 
kaffe/libraries/javalib/java/net/MulticastSocket.java:1.13
--- kaffe/libraries/javalib/java/net/MulticastSocket.java:1.12  Wed Dec  3 23:18:03 
2003
+++ kaffe/libraries/javalib/java/net/MulticastSocket.java       Mon Mar  8 13:49:09 
2004
@@ -255,7 +255,7 @@
     if (isClosed())
       throw new SocketException("socket is closed");
 
-    getImpl().setOption (SocketOptions.IP_MULTICAST_LOOP, new Boolean (disable));
+    getImpl().setOption (SocketOptions.IP_MULTICAST_LOOP, Boolean.valueOf(disable));
   }
 
   /**
Index: kaffe/libraries/javalib/java/net/URLConnection.java
diff -u kaffe/libraries/javalib/java/net/URLConnection.java:1.16 
kaffe/libraries/javalib/java/net/URLConnection.java:1.17
--- kaffe/libraries/javalib/java/net/URLConnection.java:1.16    Mon Feb  2 18:13:53 
2004
+++ kaffe/libraries/javalib/java/net/URLConnection.java Mon Mar  8 13:49:09 2004
@@ -43,6 +43,8 @@
 import java.io.OutputStream;
 import java.security.AllPermission;
 import java.security.Permission;
+import java.text.ParsePosition;
+import java.text.SimpleDateFormat;
 import java.util.Collections;
 import java.util.Date;
 import java.util.Hashtable;
@@ -161,6 +163,8 @@
    */
   protected URL url;
 
+  private static SimpleDateFormat dateFormat1, dateFormat2, dateFormat3;
+  private static boolean dateformats_initialized = false;
 
   /**
    * Creates a URL connection to a given URL. A real connection is not made.
@@ -352,23 +356,24 @@
    */
   public long getHeaderFieldDate (String name, long defaultValue)
   {
+    if (! dateformats_initialized)
+      initializeDateFormats ();
+    
+    long result = defaultValue;
     String str = getHeaderField (name);
     
-    if (str == null)
-      return defaultValue;
+    if (str != null)
+      {
+       Date date;
+       if ((date = dateFormat1.parse (str, new ParsePosition (0))) != null)
+         result = date.getTime ();
+       else if ((date = dateFormat2.parse (str, new ParsePosition (0))) != null)
+         result = date.getTime ();
+       else if ((date = dateFormat3.parse (str, new ParsePosition (0))) != null)
+         result = date.getTime ();
+      }
     
-    // This needs to change since Date(String) is deprecated, but DateFormat
-    // doesn't seem to be working for some reason
-    //DateFormat df = DateFormat.getDateInstance (DateFormat.FULL, Locale.US);
-    //df.setLenient (true);
-
-    //Date date = df.parse (value, new ParsePosition (0));
-    Date date = new Date (str);
-
-    if (date == null)
-      return defaultValue;
-       
-    return (date.getTime() / 1000);
+    return result;
   }
 
   /**
@@ -952,5 +957,22 @@
       s.checkSetFactory();
 
     fileNameMap = map;
+  }
+  
+  // We don't put these in a static initializer, because it creates problems
+  // with initializer co-dependency: SimpleDateFormat's constructors eventually 
+  // depend on URLConnection (via the java.text.*Symbols classes).
+  private synchronized void initializeDateFormats()
+  {
+    if (dateformats_initialized)
+      return;
+
+    Locale locale = new Locale("En", "Us", "Unix");
+    dateFormat1 = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss 'GMT'", 
+                                       locale);
+    dateFormat2 = new SimpleDateFormat("EEEE, dd-MMM-yy hh:mm:ss 'GMT'", 
+                                       locale);
+    dateFormat3 = new SimpleDateFormat("EEE MMM d hh:mm:ss yyyy", locale);
+    dateformats_initialized = true;
   }
 }
Index: kaffe/libraries/javalib/java/nio/ByteOrder.java
diff -u kaffe/libraries/javalib/java/nio/ByteOrder.java:1.5 
kaffe/libraries/javalib/java/nio/ByteOrder.java:1.6
--- kaffe/libraries/javalib/java/nio/ByteOrder.java:1.5 Sat Dec 27 21:15:59 2003
+++ kaffe/libraries/javalib/java/nio/ByteOrder.java     Mon Mar  8 13:49:10 2004
@@ -63,7 +63,7 @@
    */
   public static ByteOrder nativeOrder ()
   {
-    return (System.getProperty ("gnu.cpu.endian") == "big"
+    return (System.getProperty ("gnu.cpu.endian").equals("big")
             ? BIG_ENDIAN : LITTLE_ENDIAN);
   }
 
Index: kaffe/libraries/javalib/java/nio/channels/FileChannel.java
diff -u kaffe/libraries/javalib/java/nio/channels/FileChannel.java:1.5 
kaffe/libraries/javalib/java/nio/channels/FileChannel.java:1.6
--- kaffe/libraries/javalib/java/nio/channels/FileChannel.java:1.5      Sun Aug 10 
18:47:53 2003
+++ kaffe/libraries/javalib/java/nio/channels/FileChannel.java  Mon Mar  8 13:49:10 
2004
@@ -53,9 +53,9 @@
   {
     int m;
 
-    public static MapMode READ_ONLY  = new MapMode(0);
-    public static MapMode READ_WRITE = new MapMode(1);
-    public static MapMode PRIVATE    = new MapMode(2);
+    public static final MapMode READ_ONLY  = new MapMode(0);
+    public static final MapMode READ_WRITE = new MapMode(1);
+    public static final MapMode PRIVATE    = new MapMode(2);
 
     /**
      * Initializes the MapMode.
Index: kaffe/libraries/javalib/java/nio/channels/SocketChannel.java
diff -u kaffe/libraries/javalib/java/nio/channels/SocketChannel.java:1.2 
kaffe/libraries/javalib/java/nio/channels/SocketChannel.java:1.3
--- kaffe/libraries/javalib/java/nio/channels/SocketChannel.java:1.2    Sat Dec 21 
16:40:40 2002
+++ kaffe/libraries/javalib/java/nio/channels/SocketChannel.java        Mon Mar  8 
13:49:10 2004
@@ -87,11 +87,7 @@
   public static SocketChannel open (SocketAddress remote) throws IOException
   {
     SocketChannel ch = open ();
-       
-    if (ch.connect (remote))
-      {
-      }
-    
+    ch.connect(remote);
     return ch;
   }
     
Index: kaffe/libraries/javalib/java/nio/channels/spi/AbstractSelectableChannel.java
diff -u 
kaffe/libraries/javalib/java/nio/channels/spi/AbstractSelectableChannel.java:1.6 
kaffe/libraries/javalib/java/nio/channels/spi/AbstractSelectableChannel.java:1.7
--- kaffe/libraries/javalib/java/nio/channels/spi/AbstractSelectableChannel.java:1.6   
 Mon Feb 23 22:56:38 2004
+++ kaffe/libraries/javalib/java/nio/channels/spi/AbstractSelectableChannel.java       
 Mon Mar  8 13:49:10 2004
@@ -48,7 +48,6 @@
 
 public abstract class AbstractSelectableChannel extends SelectableChannel
 {
-  private int registered;
   private boolean blocking = true;
   private Object LOCK = new Object();
   private SelectorProvider provider;
@@ -135,9 +134,15 @@
    */
   public final SelectionKey keyFor(Selector selector)
   {
+    if (! isOpen())
+      return null;
+    
     try
       {
-        return register (selector, 0, null);
+        synchronized(blockingLock())
+         {
+           return locate (selector);
+         }
       }
     catch (Exception e)
       {
@@ -196,7 +201,8 @@
 
         if (key != null)
           {
-            key.attach (att);
+           if (att != null)
+             key.attach (att);
           }
         else
           {

_______________________________________________
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to