AXIS-2935 apply fix for IOException in multi-threaded end user code
diff --git a/axis-rt-core/src/main/java/org/apache/axis/configuration/FileProvider.java b/axis-rt-core/src/main/java/org/apache/axis/configuration/FileProvider.java
index 41dcf82..7d45594 100644
--- a/axis-rt-core/src/main/java/org/apache/axis/configuration/FileProvider.java
+++ b/axis-rt-core/src/main/java/org/apache/axis/configuration/FileProvider.java
@@ -152,19 +152,20 @@
public void configureEngine(AxisEngine engine)
throws ConfigurationException {
try {
- if (getInputStream() == null) {
+ InputStream configFileInputStream = getInputStream();
+ if (configFileInputStream == null) {
try {
- setInputStream(new FileInputStream(configFile));
+ configFileInputStream = new FileInputStream(configFile);
} catch (Exception e) {
// Ignore and continue
}
}
- if (getInputStream() == null && searchClasspath) {
+ if (configFileInputStream == null && searchClasspath) {
// Attempt to load the file from the classpath
- setInputStream(ClassUtils.getResourceAsStream(filename, engine.getClass().getClassLoader()));
+ configFileInputStream = ClassUtils.getResourceAsStream(filename, engine.getClass().getClassLoader());
}
- if (getInputStream() == null) {
+ if (configFileInputStream == null) {
// Load the default configuration. This piece of code provides compatibility with Axis 1.4,
// which ends up loading org/apache/axis/(client|server)/(client|server)-config.wsdd if
// (1) filename is (client|server)-config.wsdd;
@@ -184,7 +185,7 @@
deployment = defaultConfig.getDeployment();
} else {
WSDDDocument doc = new WSDDDocument(XMLUtils.
- newDocument(getInputStream()));
+ newDocument(configFileInputStream));
deployment = doc.getDeployment();
deployment.configureEngine(engine);