You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by co...@apache.org on 2001/07/18 05:16:05 UTC
cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs Available.java ExecuteJava.java
conor 01/07/17 20:16:05
Modified: src/main/org/apache/tools/ant AntClassLoader.java
src/main/org/apache/tools/ant/taskdefs Available.java
ExecuteJava.java
Log:
More classloader improvements
Revision Changes Path
1.30 +19 -22 jakarta-ant/src/main/org/apache/tools/ant/AntClassLoader.java
Index: AntClassLoader.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/AntClassLoader.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- AntClassLoader.java 2001/07/18 02:29:34 1.29
+++ AntClassLoader.java 2001/07/18 03:16:05 1.30
@@ -629,10 +629,6 @@
return useParentFirst;
}
-
-
-
-
/**
* Finds the resource with the given name. A resource is
* some data (images, audio, text, etc)
@@ -730,22 +726,18 @@
}
}
else {
- ZipFile zipFile = null;
- try {
+ ZipFile zipFile = (ZipFile)zipFiles.get(file);
+ if (zipFile == null) {
zipFile = new ZipFile(file);
-
- ZipEntry entry = zipFile.getEntry(resourceName);
- if (entry != null) {
- try {
- return new URL("jar:file:"+file.toString()+"!/"+entry);
- } catch (MalformedURLException ex) {
- return null;
- }
- }
+ zipFiles.put(file, zipFile);
}
- finally {
- if (zipFile != null) {
- zipFile.close();
+
+ ZipEntry entry = zipFile.getEntry(resourceName);
+ if (entry != null) {
+ try {
+ return new URL("jar:file:"+file.toString()+"!/"+entry);
+ } catch (MalformedURLException ex) {
+ return null;
}
}
}
@@ -937,10 +929,7 @@
}
}
- public void buildStarted(BuildEvent event) {
- }
-
- public void buildFinished(BuildEvent event) {
+ public void cleanup() {
pathComponents = null;
project = null;
for (Enumeration e = zipFiles.elements(); e.hasMoreElements(); ) {
@@ -952,6 +941,14 @@
// ignore
}
}
+ zipFiles = new Hashtable();
+ }
+
+ public void buildStarted(BuildEvent event) {
+ }
+
+ public void buildFinished(BuildEvent event) {
+ cleanup();
}
public void targetStarted(BuildEvent event) {
1.23 +3 -0 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Available.java
Index: Available.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Available.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- Available.java 2001/07/12 13:26:42 1.22
+++ Available.java 2001/07/18 03:16:05 1.23
@@ -164,6 +164,9 @@
}
this.project.setProperty(property, value);
+ if (loader != null) {
+ loader.cleanup();
+ }
}
private boolean checkFile() {
1.13 +1 -0 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/ExecuteJava.java
Index: ExecuteJava.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/ExecuteJava.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ExecuteJava.java 2001/07/18 02:29:34 1.12
+++ ExecuteJava.java 2001/07/18 03:16:05 1.13
@@ -145,6 +145,7 @@
} finally {
if (loader != null) {
loader.resetThreadContextLoader();
+ loader.cleanup();
}
if (sysProperties != null) {
sysProperties.restoreSystem();