8255559: Leak File Descriptors Because of ResolverLocalFilesystem#engineResolveURI()
Reviewed-by: weijun
This commit is contained in:
parent
129ff97fe6
commit
6e8b862811
@ -500,38 +500,44 @@ public final class DOMReference extends DOMStructure
|
||||
}
|
||||
|
||||
boolean secVal = Utils.secureValidation(context);
|
||||
xi.setSecureValidation(secVal);
|
||||
if (context instanceof XMLSignContext && c14n11
|
||||
&& !xi.isOctetStream() && !xi.isOutputStreamSet()) {
|
||||
TransformService spi = null;
|
||||
if (provider == null) {
|
||||
spi = TransformService.getInstance(c14nalg, "DOM");
|
||||
} else {
|
||||
try {
|
||||
spi = TransformService.getInstance(c14nalg, "DOM", provider);
|
||||
} catch (NoSuchAlgorithmException nsae) {
|
||||
try {
|
||||
xi.setSecureValidation(secVal);
|
||||
if (context instanceof XMLSignContext && c14n11
|
||||
&& !xi.isOctetStream() && !xi.isOutputStreamSet()) {
|
||||
TransformService spi = null;
|
||||
if (provider == null) {
|
||||
spi = TransformService.getInstance(c14nalg, "DOM");
|
||||
} else {
|
||||
try {
|
||||
spi = TransformService.getInstance(c14nalg, "DOM", provider);
|
||||
} catch (NoSuchAlgorithmException nsae) {
|
||||
spi = TransformService.getInstance(c14nalg, "DOM");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DOMTransform t = new DOMTransform(spi);
|
||||
Element transformsElem = null;
|
||||
String dsPrefix = DOMUtils.getSignaturePrefix(context);
|
||||
if (allTransforms.isEmpty()) {
|
||||
transformsElem = DOMUtils.createElement(
|
||||
refElem.getOwnerDocument(),
|
||||
"Transforms", XMLSignature.XMLNS, dsPrefix);
|
||||
refElem.insertBefore(transformsElem,
|
||||
DOMUtils.getFirstChildElement(refElem));
|
||||
DOMTransform t = new DOMTransform(spi);
|
||||
Element transformsElem = null;
|
||||
String dsPrefix = DOMUtils.getSignaturePrefix(context);
|
||||
if (allTransforms.isEmpty()) {
|
||||
transformsElem = DOMUtils.createElement(
|
||||
refElem.getOwnerDocument(),
|
||||
"Transforms", XMLSignature.XMLNS, dsPrefix);
|
||||
refElem.insertBefore(transformsElem,
|
||||
DOMUtils.getFirstChildElement(refElem));
|
||||
} else {
|
||||
transformsElem = DOMUtils.getFirstChildElement(refElem);
|
||||
}
|
||||
t.marshal(transformsElem, dsPrefix,
|
||||
(DOMCryptoContext) context);
|
||||
allTransforms.add(t);
|
||||
xi.updateOutputStream(os, true);
|
||||
} else {
|
||||
transformsElem = DOMUtils.getFirstChildElement(refElem);
|
||||
xi.updateOutputStream(os);
|
||||
}
|
||||
} finally {
|
||||
if(xi.getOctetStreamReal() != null) {
|
||||
xi.getOctetStreamReal().close();
|
||||
}
|
||||
t.marshal(transformsElem, dsPrefix,
|
||||
(DOMCryptoContext)context);
|
||||
allTransforms.add(t);
|
||||
xi.updateOutputStream(os, true);
|
||||
} else {
|
||||
xi.updateOutputStream(os);
|
||||
}
|
||||
}
|
||||
os.flush();
|
||||
|
Loading…
x
Reference in New Issue
Block a user