diff options
author | Nils Schwabe | 2014-07-04 10:31:50 +0200 |
---|---|---|
committer | Nils Schwabe | 2014-07-04 10:31:50 +0200 |
commit | 2d9abf093bbdbfd144314927b0cde1c7f6ca9fe5 (patch) | |
tree | 0932f5cc491dbd6866af4835467a0a17a01e3843 /src/main/java/org/openslx/imagemaster/serverconnection | |
parent | Make use of the filetransfer classes (diff) | |
parent | Disable failing test (diff) | |
download | masterserver-2d9abf093bbdbfd144314927b0cde1c7f6ca9fe5.tar.gz masterserver-2d9abf093bbdbfd144314927b0cde1c7f6ca9fe5.tar.xz masterserver-2d9abf093bbdbfd144314927b0cde1c7f6ca9fe5.zip |
Merge branch 'master' of git.openslx.org:bwlp/masterserver
Conflicts:
src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/serverconnection')
-rw-r--r-- | src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java | 10 |
1 files changed, 7 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 c7ee973..71ef97b 100644 --- a/src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java +++ b/src/main/java/org/openslx/imagemaster/serverconnection/ImageProcessor.java @@ -15,7 +15,7 @@ import org.openslx.imagemaster.util.RandomString; public class ImageProcessor { - private static Logger log = Logger.getLogger( ImageProcessor.class ); + private static final Logger log = Logger.getLogger( ImageProcessor.class ); /** * The amount of blocks that is return in UploadInfos (after request of satellite) @@ -43,7 +43,7 @@ public class ImageProcessor String uuid = imageData.uuid; - // check if image is already uploading + // check if image is already uploading TODO: what if two clients call this at the same time? if ( uploadingImages.containsKey( uuid ) ) { List<Integer> missing = getMissingBlocks( uuid, AMOUNT ); if ( missing.isEmpty() ) { @@ -65,11 +65,15 @@ public class ImageProcessor String token = RandomString.generate( 100, false ); String filepath = Globals.getImageDir() + "/" + uuid + ".vmdk"; ConnectionHandler.addConnection( token, filepath ); + // TODO: proper synchronization, interface is multi threaded. + // should synchronize operations on the map (use concurrent map) and then synchronize on the uploading image + // when handing the missing blocks etc... uploadingImages.put( uuid, new ImageInfos( token, allBlocks, serverSessionId, new Timestamp( System.currentTimeMillis() ) ) ); DbImage.insert( imageData, System.currentTimeMillis(), token, allBlocks, serverSessionId, filepath ); List<Integer> missing = getMissingBlocks( uuid, AMOUNT ); if ( missing.isEmpty() ) { + // TODO: if this is empty, check if there are pending blocks and if so, request them again uploadDone( uuid ); } uploadingImages.get( uuid ).setLastSentBlocks( missing ); @@ -119,7 +123,7 @@ public class ImageProcessor /** * Checks pending uploads in database and adds them to process list again. */ - public static void checkUploading() + static { List<DbImage> list = DbImage.getUploadingImages(); for ( DbImage image : list ) { |