You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2012/09/18 18:27:22 UTC
svn commit: r1387235 - in
/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security:
signature/XMLSignatureInput.java utils/UnsyncByteArrayOutputStream.java
Author: coheigea
Date: Tue Sep 18 16:27:21 2012
New Revision: 1387235
URL: http://svn.apache.org/viewvc?rev=1387235&view=rev
Log:
[SANTUARIO-344] - Close the internal InputStream of XMLSignatureInput on an Exception
Conflicts:
src/main/java/org/apache/xml/security/stax/impl/transformer/TransformIdentity.java
Modified:
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/utils/UnsyncByteArrayOutputStream.java
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java?rev=1387235&r1=1387234&r2=1387235&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java Tue Sep 18 16:27:21 2012
@@ -487,8 +487,13 @@ public class XMLSignatureInput {
} else {
byte[] buffer = new byte[4 * 1024];
int bytesread = 0;
- while ((bytesread = inputOctetStreamProxy.read(buffer)) != -1) {
- diOs.write(buffer, 0, bytesread);
+ try {
+ while ((bytesread = inputOctetStreamProxy.read(buffer)) != -1) {
+ diOs.write(buffer, 0, bytesread);
+ }
+ } catch (IOException ex) {
+ inputOctetStreamProxy.close();
+ throw ex;
}
}
}
@@ -507,8 +512,11 @@ public class XMLSignatureInput {
if (inputOctetStreamProxy == null) {
return null;
}
- bytes = JavaUtils.getBytesFromStream(inputOctetStreamProxy);
- inputOctetStreamProxy.close();
+ try {
+ bytes = JavaUtils.getBytesFromStream(inputOctetStreamProxy);
+ } finally {
+ inputOctetStreamProxy.close();
+ }
return bytes;
}
@@ -568,9 +576,13 @@ public class XMLSignatureInput {
byte result[] = baos.toByteArray();
Document document = db.parse(new ByteArrayInputStream(result));
this.subNode = document.getDocumentElement().getFirstChild().getFirstChild();
+ } finally {
+ if (this.inputOctetStreamProxy != null) {
+ this.inputOctetStreamProxy.close();
+ }
+ this.inputOctetStreamProxy = null;
+ this.bytes = null;
}
- this.inputOctetStreamProxy = null;
- this.bytes = null;
}
}
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/utils/UnsyncByteArrayOutputStream.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/utils/UnsyncByteArrayOutputStream.java?rev=1387235&r1=1387234&r2=1387235&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/utils/UnsyncByteArrayOutputStream.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/utils/UnsyncByteArrayOutputStream.java Tue Sep 18 16:27:21 2012
@@ -93,6 +93,7 @@ public class UnsyncByteArrayOutputStream
@Override
public void close() throws IOException {
bufCache.remove();
+ buf = null;
}
private void expandSize(int newPos) {