diff options
author | Nils Schwabe | 2014-07-11 16:29:56 +0200 |
---|---|---|
committer | Nils Schwabe | 2014-07-11 16:29:56 +0200 |
commit | 3a0b989f9bc36c93f637b1ed07fd272ed410251f (patch) | |
tree | f83e61f391f29871346b2edcc3e96ad969bf4447 /src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java | |
parent | Add download mode (diff) | |
download | masterserver-3a0b989f9bc36c93f637b1ed07fd272ed410251f.tar.gz masterserver-3a0b989f9bc36c93f637b1ed07fd272ed410251f.tar.xz masterserver-3a0b989f9bc36c93f637b1ed07fd272ed410251f.zip |
Fix some todos
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java')
-rw-r--r-- | src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java b/src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java index 8e7c011..b86c8b5 100644 --- a/src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java +++ b/src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java @@ -16,6 +16,8 @@ import org.openslx.imagemaster.crcchecker.CRCFile; import org.openslx.imagemaster.db.DbImage; import org.openslx.imagemaster.thrift.iface.DownloadInfos; import org.openslx.imagemaster.thrift.iface.ImageData; +import org.openslx.imagemaster.thrift.iface.UploadError; +import org.openslx.imagemaster.thrift.iface.UploadException; import org.openslx.imagemaster.thrift.iface.UploadInfos; import org.openslx.imagemaster.util.RandomString; @@ -58,8 +60,9 @@ public class ImageProcessor * @param serverSessionId The uploading server * @param imageData The data of the image * @return + * @throws UploadException If some error occured during the process */ - public static UploadInfos getUploadInfos( String serverSessionId, ImageData imageData, List<Integer> crcSums ) + public static UploadInfos getUploadInfos( String serverSessionId, ImageData imageData, List<Integer> crcSums ) throws UploadException { // check image data // TODO: do security checks @@ -73,7 +76,7 @@ public class ImageProcessor UploadingImage image; synchronized ( uploadingImages ) { - // 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...) + // check if image is already uploading if ( ( image = uploadingImages.get( uuid ) ) != null ) { log.debug( "Image is already uploading.. returning some missing blocks" ); List<Integer> missing = getNMissingBlocks( image, AMOUNT ); @@ -85,6 +88,7 @@ public class ImageProcessor } // insert new image + if ( !CRCFile.sumsAreValid( crcSums ) ) throw new UploadException(UploadError.INVALID_CRC, "CRC sums were invalid."); filepath = Globals.getImageDir() + "/" + uuid + ".vmdk"; token = RandomString.generate( 100, false ); crcPath = Globals.getImageDir() + "/" + uuid + ".crc"; |