[MRESOLVER-158] Simplify SimpleDigest
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java
index daf56fc..0040cf2 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java
@@ -22,6 +22,7 @@
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
/**
* A simple digester for strings. It will traverse through a list of digest algorithms and pick the
@@ -32,26 +33,27 @@
private static final String[] HASH_ALGOS = new String[] { "SHA-1", "MD5" };
- private MessageDigest digest;
-
- private long hash;
+ private final MessageDigest digest;
SimpleDigest()
{
+ MessageDigest md = null;
for ( String hashAlgo : HASH_ALGOS )
{
try
{
- digest = MessageDigest.getInstance( hashAlgo );
- hash = 0;
+ md = MessageDigest.getInstance( hashAlgo );
break;
}
catch ( NoSuchAlgorithmException ne )
{
- digest = null;
- hash = 13;
}
}
+ if ( md == null )
+ {
+ throw new IllegalStateException( "Not supported digests: " + Arrays.toString( HASH_ALGOS ) );
+ }
+ this.digest = md;
}
public void update( String data )
@@ -60,42 +62,27 @@
{
return;
}
- if ( digest != null )
- {
- digest.update( data.getBytes( StandardCharsets.UTF_8 ) );
- }
- else
- {
- hash = hash * 31 + data.hashCode();
- }
+ digest.update( data.getBytes( StandardCharsets.UTF_8 ) );
}
@SuppressWarnings( "checkstyle:magicnumber" )
public String digest()
{
- if ( digest != null )
+ StringBuilder buffer = new StringBuilder( 64 );
+
+ byte[] bytes = digest.digest();
+ for ( byte aByte : bytes )
{
- StringBuilder buffer = new StringBuilder( 64 );
+ int b = aByte & 0xFF;
- byte[] bytes = digest.digest();
- for ( byte aByte : bytes )
+ if ( b < 0x10 )
{
- int b = aByte & 0xFF;
-
- if ( b < 0x10 )
- {
- buffer.append( '0' );
- }
-
- buffer.append( Integer.toHexString( b ) );
+ buffer.append( '0' );
}
- return buffer.toString();
+ buffer.append( Integer.toHexString( b ) );
}
- else
- {
- return Long.toHexString( hash );
- }
- }
+ return buffer.toString();
+ }
}