Browse Source

When loading resources from jars it seems to be advisable to disable

caching.  PR 54473.  Combining patches by René Krell and Antoine
Levy-Lambert.



git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@1554684 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 11 years ago
parent
commit
6ea9dc1024
8 changed files with 32 additions and 5 deletions
  1. +1
    -0
      CONTRIBUTORS
  2. +4
    -0
      WHATSNEW
  3. +4
    -0
      contributors.xml
  4. +4
    -1
      src/main/org/apache/tools/ant/ArgumentProcessorRegistry.java
  5. +4
    -1
      src/main/org/apache/tools/ant/ProjectHelperRepository.java
  6. +4
    -1
      src/main/org/apache/tools/ant/helper/ProjectHelper2.java
  7. +4
    -1
      src/main/org/apache/tools/ant/taskdefs/Antlib.java
  8. +7
    -1
      src/main/org/apache/tools/ant/types/XMLCatalog.java

+ 1
- 0
CONTRIBUTORS View File

@@ -299,6 +299,7 @@ Randy Watler
Raphael Pierquin
Ray Waldin
Remie Bolte
René Krell
Richard Evans
Richard Steele
Rick Beton


+ 4
- 0
WHATSNEW View File

@@ -36,6 +36,10 @@ Fixed bugs:
readers.
Bugzilla Report 54672

* several places where resources are read from jars will now
explicitly disable caching to avoid problems with reloading jars.
Bugzilla Report 54473

Other changes:
--------------



+ 4
- 0
contributors.xml View File

@@ -1209,6 +1209,10 @@
<first>Remie</first>
<last>Bolte</last>
</name>
<name>
<first>René</first>
<last>Krell</last>
</name>
<name>
<first>Richard</first>
<last>Evans</last>


+ 4
- 1
src/main/org/apache/tools/ant/ArgumentProcessorRegistry.java View File

@@ -22,6 +22,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
@@ -74,7 +75,9 @@ public class ArgumentProcessorRegistry {
Enumeration<URL> resources = classLoader.getResources(SERVICE_ID);
while (resources.hasMoreElements()) {
URL resource = resources.nextElement();
ArgumentProcessor processor = getProcessorByService(resource.openStream());
URLConnection conn = resource.openConnection();
conn.setDefaultUseCaches(false);
ArgumentProcessor processor = getProcessorByService(conn.getInputStream());
registerArgumentProcessor(processor);
}
}


+ 4
- 1
src/main/org/apache/tools/ant/ProjectHelperRepository.java View File

@@ -22,6 +22,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Constructor;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
@@ -87,8 +88,10 @@ public class ProjectHelperRepository {
classLoader.getResources(ProjectHelper.SERVICE_ID);
while (resources.hasMoreElements()) {
URL resource = resources.nextElement();
URLConnection conn = resource.openConnection();
conn.setDefaultUseCaches(false);
projectHelper =
getProjectHelperByService(resource.openStream());
getProjectHelperByService(conn.getInputStream());
registerProjectHelper(projectHelper);
}
}


+ 4
- 1
src/main/org/apache/tools/ant/helper/ProjectHelper2.java View File

@@ -48,6 +48,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
@@ -257,7 +258,9 @@ public class ProjectHelper2 extends ProjectHelper {
inputStream =
zf.getInputStream(zf.getEntry(uri.substring(pling + 1)));
} else {
inputStream = url.openStream();
URLConnection conn = url.openConnection();
conn.setDefaultUseCaches(false);
inputStream = conn.getInputStream();
}
}



+ 4
- 1
src/main/org/apache/tools/ant/taskdefs/Antlib.java View File

@@ -20,6 +20,7 @@ package org.apache.tools.ant.taskdefs;

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -63,7 +64,9 @@ public class Antlib extends Task implements TaskContainer {
String uri) {
// Check if we can contact the URL
try {
antlibUrl.openConnection().connect();
URLConnection conn = antlibUrl.openConnection();
conn.setDefaultUseCaches(false);
conn.connect();
} catch (IOException ex) {
throw new BuildException(
"Unable to find " + antlibUrl, ex);


+ 7
- 1
src/main/org/apache/tools/ant/types/XMLCatalog.java View File

@@ -26,6 +26,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Stack;
import java.util.Vector;
import javax.xml.parsers.ParserConfigurationException;
@@ -763,7 +764,12 @@ public class XMLCatalog extends DataType

if (url != null) {
try {
InputStream is = url.openStream();
InputStream is = null;
URLConnection conn = url.openConnection();
if (conn != null) {
conn.setDefaultUseCaches(false);
is = conn.getInputStream();
}
if (is != null) {
source = new InputSource(is);
String sysid = url.toExternalForm();


Loading…
Cancel
Save