You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2013/03/30 07:21:43 UTC
svn commit: r1462710 - in /commons/proper/codec/trunk/src:
changes/changes.xml
main/java/org/apache/commons/codec/digest/DigestUtils.java
Author: ggregory
Date: Sat Mar 30 06:21:43 2013
New Revision: 1462710
URL: http://svn.apache.org/r1462710
Log:
[CODEC-168] Reported by Daniel Cassidy: Add DigestUtils.updateDigest(MessageDigest, InputStream). No need for additional tests as the method is used by Codec itself.
Modified:
commons/proper/codec/trunk/src/changes/changes.xml
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
Modified: commons/proper/codec/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/changes/changes.xml?rev=1462710&r1=1462709&r2=1462710&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/changes/changes.xml (original)
+++ commons/proper/codec/trunk/src/changes/changes.xml Sat Mar 30 06:21:43 2013
@@ -48,6 +48,7 @@ The <action> type attribute can be add,u
</release>
-->
<release version="1.8" date="TBA" description="Feature and fix release.">
+ <action dev="ggregory" type="add" issue="CODEC-168" due-to="Daniel Cassidy">Add DigestUtils.updateDigest(MessageDigest, InputStream).</action>
<action dev="julius" type="add" issue="CODEC-167">Add JUnit to test our decode with pad character in the middle.</action>
<action dev="ggregory" type="add" issue="CODEC-161" due-to="crice">Add Match Rating Approach (MRA) phonetic algorithm encoder.</action>
<action dev="ggregory" type="fix" issue="CODEC-163" due-to="leo141">ColognePhonetic encoder unnecessarily creates many char arrays on every loop run.</action>
Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java?rev=1462710&r1=1462709&r2=1462710&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java Sat Mar 30 06:21:43 2013
@@ -46,15 +46,7 @@ public class DigestUtils {
* On error reading from the stream
*/
private static byte[] digest(final MessageDigest digest, final InputStream data) throws IOException {
- final byte[] buffer = new byte[STREAM_BUFFER_LENGTH];
- int read = data.read(buffer, 0, STREAM_BUFFER_LENGTH);
-
- while (read > -1) {
- digest.update(buffer, 0, read);
- read = data.read(buffer, 0, STREAM_BUFFER_LENGTH);
- }
-
- return digest.digest();
+ return updateDigest(digest, data).digest();
}
/**
@@ -785,6 +777,30 @@ public class DigestUtils {
}
/**
+ * Reads through an InputStream and updates the digest for the data
+ *
+ * @param digest
+ * The MessageDigest to use (e.g. MD5)
+ * @param data
+ * Data to digest
+ * @return MD5 digest
+ * @throws IOException
+ * On error reading from the stream
+ * @since 1.8
+ */
+ public static MessageDigest updateDigest(final MessageDigest digest, final InputStream data) throws IOException {
+ final byte[] buffer = new byte[STREAM_BUFFER_LENGTH];
+ int read = data.read(buffer, 0, STREAM_BUFFER_LENGTH);
+
+ while (read > -1) {
+ digest.update(buffer, 0, read);
+ read = data.read(buffer, 0, STREAM_BUFFER_LENGTH);
+ }
+
+ return digest;
+ }
+
+ /**
* Updates the given {@link MessageDigest}.
*
* @param messageDigest