In my environment where
   OS = Linux 2.0.38 #2 Sun Jan 2 11:44:53 JST 2000,
   Kaffe = kaffe-1.0.6,
the following simple program does not run as expected.
It prints nothing.

$ cat TestTimeZone.java
import java.util.TimeZone;
import java.io.*;
public class TestTimeZone {
    public static void main(String[] args) {
       TimeZone tz = TimeZone.getDefault();
       System.out.println("timezone="+tz.getID());
       System.out.println("=========================");
    }
}
$ java TestTimeZone
$

After applying a patch for debugging to java/util/TimeZone.java,
the program shows "Too many open files".  What is the best way
to solve this problem?  Should I delete unnecessary files in
/usr/share/zoneinfo?  Well, I do not want to.

$ diff -u java/util/TimeZone.java.orig java/util/TimeZone.java
--- java/util/TimeZone.java.orig        Sat May 20 08:24:33 2000
+++ java/util/TimeZone.java     Thu Oct 12 13:31:56 2000
@@ -94,6 +94,7 @@
 // Recurse through a directory tree adding any UNIX zone files found
 private static void addZoneFiles(String prefix, File dir) {
        String[] files = dir.list();
+       if (files == null) System.err.println(dir.getName()+" cannot be listed");
        for (int i = 0; i < files.length; i++) {
                File file = new File(dir, files[i]);
                String filePrefix = (prefix == null) ?
@@ -103,6 +104,7 @@
                                zones.put(filePrefix,
                                    new UNIXTimeZone(filePrefix, file));
                        } catch (IOException e) {
+                               System.err.println(file.getName()+":"+e);
                        }
                } else if (file.isDirectory()) {
                        addZoneFiles(filePrefix, file);
$
$ CLASSPATH=. java TestTimeZone
leapseconds:java.io.IOException: invalid file contents
zone.tab:java.io.IOException: invalid file contents
South_Georgia:java.io.FileNotFoundException: 
/usr/share/zoneinfo/right/Atlantic/South_Georgia: Too many open files
Madeira:java.io.FileNotFoundException: /usr/share/zoneinfo/right/Atlantic/Madeira: Too 
many open files
Jan_Mayen:java.io.FileNotFoundException: /usr/share/zoneinfo/right/Atlantic/Jan_Mayen: 
Too many open files
Faeroe:java.io.FileNotFoundException: /usr/share/zoneinfo/right/Atlantic/Faeroe: Too 
many open files
Cape_Verde:java.io.FileNotFoundException: 
/usr/share/zoneinfo/right/Atlantic/Cape_Verde: Too many open files
Canary:java.io.FileNotFoundException: /usr/share/zoneinfo/right/Atlantic/Canary: Too 
many open files
Bermuda:java.io.FileNotFoundException: /usr/share/zoneinfo/right/Atlantic/Bermuda: Too 
many open files
Azores:java.io.FileNotFoundException: /usr/share/zoneinfo/right/Atlantic/Azores: Too 
many open files
Asia cannot be listed
java.lang.NullPointerException
        at java.util.TimeZone.addZoneFiles(TimeZone.java:98)
        at java.util.TimeZone.addZoneFiles(TimeZone.java:110)
        at java.util.TimeZone.addZoneFiles(TimeZone.java:110)
        at java.util.TimeZone.loadTimeZones(TimeZone.java:77)
        at java.util.TimeZone.getTimeZone(TimeZone.java:172)
        at java.util.TimeZone.getDefault(TimeZone.java:149)
        at TestTimeZone.main(TestTimeZone.java:5)
$

Reply via email to