summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/serverconnection/UploadingImage.java
diff options
context:
space:
mode:
authorNils Schwabe2014-07-23 16:06:47 +0200
committerNils Schwabe2014-07-23 16:06:47 +0200
commita956b282692a5d84fd7efac1b1018cccf41653bf (patch)
tree7b595a24a0a00a28e252d7dbd9b434ad59d9d8c3 /src/main/java/org/openslx/imagemaster/serverconnection/UploadingImage.java
parentFix some bugs while testing the connection (diff)
downloadmasterserver-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.java50
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;
}