summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/filetransfer/util/HashChecker.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-19 17:17:58 +0200
committerSimon Rettberg2015-08-19 17:17:58 +0200
commit6b3d669bc55432dbc2a4d3a5b1238ad8939c3eac (patch)
tree71370e55cc2a8c10ac046d3e4b99d5f8dbd8fc61 /src/main/java/org/openslx/filetransfer/util/HashChecker.java
parentFirst working version with SSL support (diff)
downloadmaster-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.java9
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 );
}
}