summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java b/src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java
index db3702d..bf21c71 100644
--- a/src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java
+++ b/src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java
@@ -55,11 +55,10 @@ public class ImageProcessor
String uuid = imageData.uuid;
- // check if image is already uploading TODO: what if two clients call this at the same time?
+ // check if image is already uploading TODO: what if two clients call this at the same time? -> Good question.. (Thought about not sending the last requested. But then the upload will never finish...)
if ( uploadingImages.containsKey( uuid ) ) {
List<Integer> missing = getMissingBlocks( uuid, AMOUNT );
if ( missing.isEmpty() ) {
- String token = uploadingImages.get( uuid ).getToken();
uploadDone( uuid );
return new UploadInfos( null, missing );
}
@@ -158,7 +157,8 @@ public class ImageProcessor
*/
private static List<Integer> getMissingBlocks( String imageUUID, int amount )
{
- List<Integer> list = uploadingImages.get( imageUUID ).getMissingBlocks();
+ UploadingImageInfos image = uploadingImages.get( imageUUID );
+ List<Integer> list = image.getMissingBlocks();
List<Integer> result = new LinkedList<>();
if ( amount > list.size() )
@@ -167,6 +167,11 @@ public class ImageProcessor
for ( int i = 0; i < amount; i++ ) {
result.add( list.get( i ) );
}
+
+ synchronized( image ) {
+ image.setLastSentBlocks( result );
+ }
+
return result;
}