[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cp-patches] Patch: FYI: ZipFile and OPEN_DELETE
From: |
Tom Tromey |
Subject: |
[cp-patches] Patch: FYI: ZipFile and OPEN_DELETE |
Date: |
09 Feb 2005 19:40:37 -0700 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50 |
I'm checking this in to libgcj and classpath.
We can implement ZipFile.OPEN_DELETE these days using
File.deleteOnExit. This isn't the very best approach, in that the
file stays around until the VM exits, but it is better than leaving
it lying there forever.
The actual Classpath patch differs slightly, as Classpath apparently
has a different jar url provider implementation.
Tom
Index: ChangeLog
from Tom Tromey <address@hidden>
* 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.
Index: gnu/java/net/protocol/jar/Connection.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/net/protocol/jar/Connection.java,v
retrieving revision 1.7
diff -u -r1.7 Connection.java
--- gnu/java/net/protocol/jar/Connection.java 23 Jul 2004 01:21:40 -0000 1.7
+++ gnu/java/net/protocol/jar/Connection.java 10 Feb 2005 02:11:46 -0000
@@ -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 @@
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: java/util/zip/ZipFile.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/util/zip/ZipFile.java,v
retrieving revision 1.28
diff -u -r1.28 ZipFile.java
--- java/util/zip/ZipFile.java 7 Nov 2004 01:25:48 -0000 1.28
+++ java/util/zip/ZipFile.java 10 Feb 2005 02:11:46 -0000
@@ -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 @@
*
* 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 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();
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cp-patches] Patch: FYI: ZipFile and OPEN_DELETE,
Tom Tromey <=