summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java
diff options
context:
space:
mode:
authorNils Schwabe2014-07-11 16:29:56 +0200
committerNils Schwabe2014-07-11 16:29:56 +0200
commit3a0b989f9bc36c93f637b1ed07fd272ed410251f (patch)
treef83e61f391f29871346b2edcc3e96ad969bf4447 /src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java
parentAdd download mode (diff)
downloadmasterserver-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.java8
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";