diff options
author | Nils Schwabe | 2014-07-23 16:06:47 +0200 |
---|---|---|
committer | Nils Schwabe | 2014-07-23 16:06:47 +0200 |
commit | a956b282692a5d84fd7efac1b1018cccf41653bf (patch) | |
tree | 7b595a24a0a00a28e252d7dbd9b434ad59d9d8c3 /src/main/java/org/openslx/imagemaster/serverconnection/UploadingImage.java | |
parent | Fix some bugs while testing the connection (diff) | |
download | masterserver-a956b282692a5d84fd7efac1b1018cccf41653bf.tar.gz masterserver-a956b282692a5d84fd7efac1b1018cccf41653bf.tar.xz masterserver-a956b282692a5d84fd7efac1b1018cccf41653bf.zip |
Add "synchronized" to UploadingImage
Add method to calc the amount of blocks to Util
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/serverconnection/UploadingImage.java')
-rw-r--r-- | src/main/java/org/openslx/imagemaster/serverconnection/UploadingImage.java | 50 |
1 files changed, 35 insertions, 15 deletions
diff --git a/src/main/java/org/openslx/imagemaster/serverconnection/UploadingImage.java b/src/main/java/org/openslx/imagemaster/serverconnection/UploadingImage.java index 8cbaecf..feb2a1e 100644 --- a/src/main/java/org/openslx/imagemaster/serverconnection/UploadingImage.java +++ b/src/main/java/org/openslx/imagemaster/serverconnection/UploadingImage.java @@ -50,7 +50,9 @@ public class UploadingImage { if ( blockStatus == null ) return; - blockStatus[index] = valid; + synchronized(blockStatus) { + blockStatus[index] = valid; + } } protected void updateDb() @@ -60,10 +62,12 @@ public class UploadingImage List<Integer> missingBlocks = new ArrayList<>(); - for (int block = 0; block < blockStatus.length; block++) { - if (blockStatus[block] != valid) { - missingBlocks.add( block ); - } + synchronized(blockStatus) { + for (int block = 0; block < blockStatus.length; block++) { + if (blockStatus[block] != valid) { + missingBlocks.add( block ); + } + } } dbImage.updateMissingBlocks( missingBlocks ); } @@ -72,33 +76,43 @@ public class UploadingImage { if ( blockStatus == null ) return; - blockStatus[index] = missing; + synchronized(blockStatus) { + blockStatus[index] = missing; + } } protected void setNeedsRequest( int index ) { if ( blockStatus == null ) return; - blockStatus[index] *= ( blockStatus[index] < missing ) ? -1 : 1; // switch to positive value if needed + synchronized(blockStatus) { + blockStatus[index] *= ( blockStatus[index] < missing ) ? -1 : 1; // switch to positive value if needed + } } protected void setNeedsCheck( int index ) { if ( blockStatus == null ) return; - blockStatus[index] *= ( blockStatus[index] > missing ) ? -1 : 1; // switch to negative value if needed + synchronized(blockStatus) { + blockStatus[index] *= ( blockStatus[index] > missing ) ? -1 : 1; // switch to negative value if needed + } } protected void increaseTransmittedTimes( int index ) { if ( blockStatus == null || blockStatus[index] == 200 ) return; - blockStatus[index] += ( blockStatus[index] <= missing ) ? -1 : 1; // increase in both directions + synchronized(blockStatus) { + blockStatus[index] += ( blockStatus[index] <= missing ) ? -1 : 1; // increase in both directions + } } protected int getTimesTransmitted( int index ) { - return Math.abs( blockStatus[index] ); + synchronized(blockStatus) { + return Math.abs( blockStatus[index] ); + } } protected String getToken() @@ -110,14 +124,18 @@ public class UploadingImage { if ( blockStatus == null ) return false; - return ( ( blockStatus[index] >= missing ) && ( blockStatus[index] != valid ) ); + synchronized(blockStatus) { + return ( ( blockStatus[index] >= missing ) && ( blockStatus[index] != valid ) ); + } } protected boolean needsCheck( int index ) { if ( blockStatus == null ) return false; - return ( blockStatus[index] < missing ); + synchronized(blockStatus) { + return ( blockStatus[index] < missing ); + } } protected int getNumberOfBlocks() @@ -179,9 +197,11 @@ public class UploadingImage { if ( blockStatus == null ) return false; - for ( int i : blockStatus ) { - if ( i != 200 ) - return false; + synchronized(blockStatus) { + for ( int i : blockStatus ) { + if ( i != 200 ) + return false; + } } return true; } |