diff options
author | Simon Rettberg | 2015-08-19 17:17:58 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-08-19 17:17:58 +0200 |
commit | 6b3d669bc55432dbc2a4d3a5b1238ad8939c3eac (patch) | |
tree | 71370e55cc2a8c10ac046d3e4b99d5f8dbd8fc61 /src/main/java/org/openslx/filetransfer/util/HashChecker.java | |
parent | First working version with SSL support (diff) | |
download | master-sync-shared-6b3d669bc55432dbc2a4d3a5b1238ad8939c3eac.tar.gz master-sync-shared-6b3d669bc55432dbc2a4d3a5b1238ad8939c3eac.tar.xz master-sync-shared-6b3d669bc55432dbc2a4d3a5b1238ad8939c3eac.zip |
Changes to chunk list related classes, support hash handling better
Diffstat (limited to 'src/main/java/org/openslx/filetransfer/util/HashChecker.java')
-rw-r--r-- | src/main/java/org/openslx/filetransfer/util/HashChecker.java | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/main/java/org/openslx/filetransfer/util/HashChecker.java b/src/main/java/org/openslx/filetransfer/util/HashChecker.java index 2e2d72f..3c173fb 100644 --- a/src/main/java/org/openslx/filetransfer/util/HashChecker.java +++ b/src/main/java/org/openslx/filetransfer/util/HashChecker.java @@ -1,6 +1,5 @@ package org.openslx.filetransfer.util; -import java.security.InvalidParameterException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; @@ -67,10 +66,9 @@ public class HashChecker public void queue( FileChunk chunk, byte[] data, HashCheckCallback callback ) throws InterruptedException { - if ( chunk.sha1sum == null ) + byte[] sha1Sum = chunk.getSha1Sum(); + if ( sha1Sum == null ) throw new NullPointerException( "Chunk has no sha1 hash" ); - if ( chunk.sha1sum.length != 20 ) - throw new InvalidParameterException( "Given chunk sha1 is not 20 bytes but " + chunk.sha1sum.length ); HashTask task = new HashTask( data, chunk, callback ); synchronized ( threads ) { if ( invalid ) { @@ -129,7 +127,7 @@ public class HashChecker // Calculate digest md.update( task.data, 0, task.chunk.range.getLength() ); byte[] digest = md.digest(); - HashResult result = Arrays.equals( digest, task.chunk.sha1sum ) ? HashResult.VALID : HashResult.INVALID; + HashResult result = Arrays.equals( digest, task.chunk.getSha1Sum() ) ? HashResult.VALID : HashResult.INVALID; execCallback( task, result ); if ( extraThread && queue.isEmpty() ) { LOGGER.info( "Stopping additional hash checker" ); @@ -157,6 +155,7 @@ public class HashChecker this.data = data; this.chunk = chunk; this.callback = callback; + chunk.setStatus( ChunkStatus.HASHING ); } } |