Connection.java (getJarFile): Open jar file with OPEN_DELETE.
authorTom Tromey <tromey@redhat.com>
Thu, 10 Feb 2005 02:43:45 +0000 (02:43 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Thu, 10 Feb 2005 02:43:45 +0000 (02:43 +0000)
* gnu/java/net/protocol/jar/Connection.java (getJarFile): Open
jar file with OPEN_DELETE.
* java/util/zip/ZipFile.java (ZipFile): Call deleteOnExit when
OPEN_DELETE is used.

From-SVN: r94793

libjava/ChangeLog
libjava/gnu/java/net/protocol/jar/Connection.java
libjava/java/util/zip/ZipFile.java

index bfb9c00..4053eb7 100644 (file)
@@ -1,5 +1,12 @@
 2005-02-09  Tom Tromey  <tromey@redhat.com>
 
+       * gnu/java/net/protocol/jar/Connection.java (getJarFile): Open
+       jar file with OPEN_DELETE.
+       * java/util/zip/ZipFile.java (ZipFile): Call deleteOnExit when
+       OPEN_DELETE is used.
+
+2005-02-09  Tom Tromey  <tromey@redhat.com>
+
        * java/util/zip/InflaterInputStream.java (markSupported):
        Override.
        (mark, reset): Likewise.
index 9ba2e3f..1d27e44 100644 (file)
@@ -1,5 +1,5 @@
 /* Connection - jar url connection for java.net
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -222,9 +222,8 @@ public final class Connection extends JarURLConnection
          fos.write(buf, 0, len);
         fos.close();
        // Always verify the Manifest, open read only and delete when done.
-       // XXX ZipFile.OPEN_DELETE not yet implemented.
-       // jf = new JarFile(f, true, ZipFile.OPEN_READ | ZipFile.OPEN_DELETE);
-       jar_file = new JarFile (f, true, ZipFile.OPEN_READ);
+       jar_file = new JarFile (f, true,
+                               ZipFile.OPEN_READ | ZipFile.OPEN_DELETE);
       }
 
     return jar_file;
index 38ec9e6..b2dbe70 100644 (file)
@@ -1,5 +1,5 @@
 /* ZipFile.java --
-   Copyright (C) 2001, 2002, 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -117,8 +117,6 @@ public class ZipFile implements ZipConstants
    * 
    * The contents of the zip file will be accessible until it is closed.
    *
-   * The OPEN_DELETE mode is currently unimplemented in this library
-   * 
    * @since JDK1.3
    * @param mode Must be one of OPEN_READ or OPEN_READ | OPEN_DELETE
    *
@@ -128,11 +126,10 @@ public class ZipFile implements ZipConstants
    */
   public ZipFile(File file, int mode) throws ZipException, IOException
   {
+    if (mode != OPEN_READ && mode != (OPEN_READ | OPEN_DELETE))
+      throw new IllegalArgumentException("invalid mode");
     if ((mode & OPEN_DELETE) != 0)
-      {
-       throw new IllegalArgumentException
-         ("OPEN_DELETE mode not supported yet in java.util.zip.ZipFile");
-      }
+      file.deleteOnExit();
     this.raf = new RandomAccessFile(file, "r");
     this.name = file.getPath();
   }