Author: jkf
Date: Sun Apr 29 06:00:17 2007
New Revision: 533498
URL: http://svn.apache.org/viewvc?view=rev&rev=533498
Log:
Pr: 42259 inspired on optimization suggested by Tom Brus
Modified:
ant/core/trunk/CONTRIBUTORS
ant/core/trunk/WHATSNEW
ant/core/trunk/src/main/org/apache/tools/ant/AntClassLoader.java
Modified: ant/core/trunk/CONTRIBUTORS
URL:
http://svn.apache.org/viewvc/ant/core/trunk/CONTRIBUTORS?view=diff&rev=533498&r1=533497&r2=533498
==============================================================================
Binary files - no diff available.
Modified: ant/core/trunk/WHATSNEW
URL:
http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?view=diff&rev=533498&r1=533497&r2=533498
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Sun Apr 29 06:00:17 2007
@@ -11,6 +11,9 @@
Fixed bugs:
-----------
+* Improvements in AntClassLoader Speed.
+ Bugzilla report 42259
+
* Error in handling of some permissions, most notably the AllPermission on
jdk 1.5
Bugzilla report 41776
Modified: ant/core/trunk/src/main/org/apache/tools/ant/AntClassLoader.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/AntClassLoader.java?view=diff&rev=533498&r1=533497&r2=533498
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/AntClassLoader.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/AntClassLoader.java Sun Apr 29
06:00:17 2007
@@ -812,22 +812,22 @@
*/
private InputStream getResourceStream(File file, String resourceName) {
try {
- if (!file.exists()) {
- return null;
- }
-
- if (file.isDirectory()) {
+ ZipFile zipFile = (ZipFile) zipFiles.get(file);
+ if (zipFile == null && file.isDirectory()) {
File resource = new File(file, resourceName);
if (resource.exists()) {
return new FileInputStream(resource);
}
} else {
- // is the zip file in the cache
- ZipFile zipFile = (ZipFile) zipFiles.get(file);
if (zipFile == null) {
- zipFile = new ZipFile(file);
- zipFiles.put(file, zipFile);
+ if (file.exists()) {
+
+ zipFile = new ZipFile(file);
+ zipFiles.put(file, zipFile);
+ } else {
+ return null;
+ }
//to eliminate a race condition, retrieve the entry
//that is in the hash table under that filename
zipFile = (ZipFile) zipFiles.get(file);
@@ -838,23 +838,24 @@
}
}
} catch (Exception e) {
- log("Ignoring Exception " + e.getClass().getName()
- + ": " + e.getMessage() + " reading resource " + resourceName
- + " from " + file, Project.MSG_VERBOSE);
+ log("Ignoring Exception " + e.getClass().getName() + ": "
+ + e.getMessage() + " reading resource " + resourceName
+ + " from " + file, Project.MSG_VERBOSE);
}
return null;
}
/**
- * Tests whether or not the parent classloader should be checked for
- * a resource before this one. If the resource matches both the
- * "use parent classloader first" and the "use this classloader first"
- * lists, the latter takes priority.
- *
- * @param resourceName The name of the resource to check.
- * Must not be <code>null</code>.
- *
+ * Tests whether or not the parent classloader should be checked for a
+ * resource before this one. If the resource matches both the "use parent
+ * classloader first" and the "use this classloader first" lists, the
latter
+ * takes priority.
+ *
+ * @param resourceName
+ * The name of the resource to check. Must not be
+ * <code>null</code>.
+ *
* @return whether or not the parent classloader should be checked for a
* resource before this one is.
*/
@@ -1010,11 +1011,8 @@
*/
protected URL getResourceURL(File file, String resourceName) {
try {
- if (!file.exists()) {
- return null;
- }
-
- if (file.isDirectory()) {
+ ZipFile zipFile = (ZipFile) zipFiles.get(file);
+ if (zipFile == null && file.isDirectory()) {
File resource = new File(file, resourceName);
if (resource.exists()) {
@@ -1025,12 +1023,14 @@
}
}
} else {
- ZipFile zipFile = (ZipFile) zipFiles.get(file);
if (zipFile == null) {
- zipFile = new ZipFile(file);
- zipFiles.put(file, zipFile);
+ if (file.exists()) {
+ zipFile = new ZipFile(file);
+ zipFiles.put(file, zipFile);
+ } else {
+ return null;
+ }
}
-
ZipEntry entry = zipFile.getEntry(resourceName);
if (entry != null) {
try {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]