YamlProcessor defensively closes InputStream

Issue: SPR-12487
master
Juergen Hoeller 10 years ago
parent 2496d68e9f
commit 9a71a0c6c9
  1. 9
      spring-beans/src/main/java/org/springframework/beans/factory/config/YamlProcessor.java

@ -17,6 +17,7 @@
package org.springframework.beans.factory.config;
import java.io.IOException;
import java.io.InputStream;
import java.util.AbstractMap;
import java.util.Arrays;
import java.util.Collection;
@ -146,7 +147,9 @@ public abstract class YamlProcessor {
if (this.logger.isDebugEnabled()) {
this.logger.debug("Loading from YAML: " + resource);
}
for (Object object : yaml.loadAll(resource.getInputStream())) {
InputStream stream = resource.getInputStream();
try {
for (Object object : yaml.loadAll(stream)) {
if (object != null && process(asMap(object), callback)) {
count++;
if (this.resolutionMethod == ResolutionMethod.FIRST_FOUND) {
@ -159,6 +162,10 @@ public abstract class YamlProcessor {
" from YAML resource: " + resource);
}
}
finally {
stream.close();
}
}
catch (IOException ex) {
handleProcessError(resource, ex);
}

Loading…
Cancel
Save