TimeZone.java opens too many files?
Godmar Back
gback at cs.utah.edu
Thu Oct 12 08:34:23 PDT 2000
I fixed this in the current CVS tree a while ago.
- Godmar
>
>
> 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)
> $
>
More information about the kaffe
mailing list