This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Bug (old?) in ZipEntry?


Hi there,

I'm seing quite an odd thing (read: maybe a bug) with the modification-dates returned from ZipEntry.
This may be an old bug fixed in a gcj version newer than my 3.4.3.


Nevertheless, I have the simple source given below that just enumerates each entry in a zip file and prints out the modification date.

I'm using both WinZip and "zip" from (a recent) Cygwin.

When running the program with Sun's Java I get:

=== SUN ===
$ java -cp . men.zipdate.ZipDates fromzip.zip
ZipDates.java   date: 1126260112000     Fri Sep 09 12:01:52 CEST 2005

$ java -cp . men.zipdate.ZipDates fromwinzip.zip
ZipDates.java   date: 1126260114000     Fri Sep 09 12:01:54 CEST 2005

Hence, the same dates. As expected... However, when I try with GCJ I get:

=== GCJ ===
# ./zipdates fromzip.zip
ZipDates.java   date: 313906034000      Thu Dec 13 03:07:14 GMT-01:00 1979
# ./zipdates fromwinzip.zip
ZipDates.java   date: 1126270914231     Fri Sep 09 12:01:54 GMT-01:00 2005

That is, only the winzip-archive's entry-date is reported correctly.
The archives are identical to the ones used in the Sun test above...

But as I say, may an old bug?!

BR,
 Martin Egholm

=== File: ZipDates.java ===
package men.zipdate;

import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

public class ZipDates
{
  public static void main(String[] args) throws IOException
  {
    if (args.length < 1)
    {
      System.out.println("Missing filename argument...");
      return;
    } // if
    else
    {
      ZipFile zf = new ZipFile(args[0]);

Enumeration entries = zf.entries();

      while (entries.hasMoreElements())
      {
        ZipEntry entry = (ZipEntry) entries.nextElement();
        System.out.println(entry.getName() + "\tdate: " + entry.getTime()
            + "\t" + new java.util.Date(entry.getTime()));
      } // while
    } // else
  } // main
} // ZipDates


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]