From cbe24267f985f984d1d0a6d3472a990473a4d4c0 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 10 Feb 2005 02:43:45 +0000 Subject: [PATCH] Connection.java (getJarFile): Open jar file with OPEN_DELETE. * 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 | 7 +++++++ libjava/gnu/java/net/protocol/jar/Connection.java | 7 +++---- libjava/java/util/zip/ZipFile.java | 11 ++++------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index bfb9c00..4053eb7 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,12 @@ 2005-02-09 Tom Tromey + * 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 + * java/util/zip/InflaterInputStream.java (markSupported): Override. (mark, reset): Likewise. diff --git a/libjava/gnu/java/net/protocol/jar/Connection.java b/libjava/gnu/java/net/protocol/jar/Connection.java index 9ba2e3f..1d27e44 100644 --- a/libjava/gnu/java/net/protocol/jar/Connection.java +++ b/libjava/gnu/java/net/protocol/jar/Connection.java @@ -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; diff --git a/libjava/java/util/zip/ZipFile.java b/libjava/java/util/zip/ZipFile.java index 38ec9e6..b2dbe70 100644 --- a/libjava/java/util/zip/ZipFile.java +++ b/libjava/java/util/zip/ZipFile.java @@ -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(); } -- 2.7.4