diff --git a/pom.xml b/pom.xml
index 0f35e2e9c..2910f7e29 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.tonikelope
MegaBasterd
- 5.63
+ 5.64
jar
diff --git a/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java b/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java
index 0d2392b98..2673abb4f 100644
--- a/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java
+++ b/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java
@@ -290,10 +290,10 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable {
Logger.getLogger(getClass().getName()).log(Level.INFO, "{0} Worker [{1}] has RECOVERED PREVIOUS chunk [{2}]!", new Object[]{Thread.currentThread().getName(), _id, chunk_id});
- reads = -1;
-
finish_chunk_time = -1;
+ chunk_reads = chunk_size;
+
_download.getPartialProgress().add(chunk_size);
_download.getProgress_meter().secureNotify();
@@ -301,7 +301,7 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable {
}
}
- if (chunk_reads == chunk_size || reads == -1) {
+ if (chunk_reads == chunk_size) {
Logger.getLogger(getClass().getName()).log(Level.INFO, "{0} Worker [{1}] has DOWNLOADED chunk [{2}]!", new Object[]{Thread.currentThread().getName(), _id, chunk_id});
@@ -322,7 +322,7 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable {
_download.getChunkmanager().secureNotify();
- if (current_smart_proxy != null && finish_chunk_time > 0) {
+ if (current_smart_proxy != null && finish_chunk_time != -1) {
//Proxy speed benchmark
long chunk_speed = Math.round(chunk_size / ((double) (finish_chunk_time - init_chunk_time - paused) / 1000));
diff --git a/src/main/java/com/tonikelope/megabasterd/ChunkDownloaderMono.java b/src/main/java/com/tonikelope/megabasterd/ChunkDownloaderMono.java
index f9bd1173f..79d9d42da 100644
--- a/src/main/java/com/tonikelope/megabasterd/ChunkDownloaderMono.java
+++ b/src/main/java/com/tonikelope/megabasterd/ChunkDownloaderMono.java
@@ -161,7 +161,7 @@ public class ChunkDownloaderMono extends ChunkDownloader {
}
- if (chunk_reads == chunk_size || reads == -1) {
+ if (chunk_reads == chunk_size) {
bytes_downloaded += chunk_reads;
@@ -176,12 +176,10 @@ public class ChunkDownloaderMono extends ChunkDownloader {
}
- } catch (IOException ex) {
+ } catch (IOException | InterruptedException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
- } catch (InterruptedException ex) {
- Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} finally {
if (chunk_error) {
diff --git a/src/main/java/com/tonikelope/megabasterd/ChunkManager.java b/src/main/java/com/tonikelope/megabasterd/ChunkManager.java
index 8a8f7cc88..ed4abb3c7 100644
--- a/src/main/java/com/tonikelope/megabasterd/ChunkManager.java
+++ b/src/main/java/com/tonikelope/megabasterd/ChunkManager.java
@@ -78,15 +78,13 @@ public final class ChunkManager implements Runnable, SecureSingleThreadNotifiabl
_rejectedChunkIds = new ConcurrentLinkedQueue<>();
if (_download.getProgress() == 0) {
- _download.setLast_chunk_id_dispatched(0);
_last_chunk_id_written = 0;
_bytes_written = 0;
- } else {
- _last_chunk_id_written = calculateLastWrittenChunk(_download.getProgress());
- _download.setLast_chunk_id_dispatched(_last_chunk_id_written);
+ } else {
+ _last_chunk_id_written = _download.getLast_chunk_id_dispatched();
_bytes_written = _download.getProgress();
}
@@ -159,7 +157,7 @@ public final class ChunkManager implements Runnable, SecureSingleThreadNotifiabl
_bytes_written += chunk_file.length();
- Logger.getLogger(getClass().getName()).log(Level.INFO, "{0} Chunkmanager has written to disk chunk [{1}] {2} {3}...", new Object[]{Thread.currentThread().getName(), _last_chunk_id_written + 1, _bytes_written, calculateLastWrittenChunk(_bytes_written)});
+ Logger.getLogger(getClass().getName()).log(Level.INFO, "{0} Chunkmanager has written to disk chunk [{1}] {2} {3}...", new Object[]{Thread.currentThread().getName(), _last_chunk_id_written + 1, _bytes_written, _download.calculateLastWrittenChunk(_bytes_written)});
_last_chunk_id_written++;
@@ -191,19 +189,4 @@ public final class ChunkManager implements Runnable, SecureSingleThreadNotifiabl
Logger.getLogger(getClass().getName()).log(Level.INFO, "{0} Chunkmanager: bye bye{1}", new Object[]{Thread.currentThread().getName(), _download.getFile().getName()});
}
- private long calculateLastWrittenChunk(long temp_file_size) {
- if (temp_file_size > 3584 * 1024) {
- return 7 + (long) Math.floor((float) (temp_file_size - 3584 * 1024) / (1024 * 1024 * (_download.isUse_slots() ? Download.CHUNK_SIZE_MULTI : 1)));
- } else {
- long i = 0, tot = 0;
-
- while (tot < temp_file_size) {
- i++;
- tot += i * 128 * 1024;
- }
-
- return i;
- }
- }
-
}
diff --git a/src/main/java/com/tonikelope/megabasterd/Download.java b/src/main/java/com/tonikelope/megabasterd/Download.java
index cca86a63d..5557fed9f 100644
--- a/src/main/java/com/tonikelope/megabasterd/Download.java
+++ b/src/main/java/com/tonikelope/megabasterd/Download.java
@@ -176,6 +176,25 @@ public final class Download implements Transference, Runnable, SecureSingleThrea
}
+ public long getLast_chunk_id_dispatched() {
+ return _last_chunk_id_dispatched;
+ }
+
+ public long calculateLastWrittenChunk(long temp_file_size) {
+ if (temp_file_size > 3584 * 1024) {
+ return 7 + (long) Math.floor((float) (temp_file_size - 3584 * 1024) / (1024 * 1024 * (this.isUse_slots() ? Download.CHUNK_SIZE_MULTI : 1)));
+ } else {
+ long i = 0, tot = 0;
+
+ while (tot < temp_file_size) {
+ i++;
+ tot += i * 128 * 1024;
+ }
+
+ return i;
+ }
+ }
+
public void enableProxyTurboMode() {
synchronized (_turbo_proxy_lock) {
@@ -531,6 +550,8 @@ public final class Download implements Transference, Runnable, SecureSingleThrea
_progress = _file.length();
+ _last_chunk_id_dispatched = calculateLastWrittenChunk(_progress);
+
getView().updateProgressBar(_progress, _progress_bar_rate);
} else {
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
index 54c5056b0..64ce9230d 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
@@ -47,7 +47,7 @@ import javax.swing.UIManager;
*/
public final class MainPanel {
- public static final String VERSION = "5.63";
+ public static final String VERSION = "5.64";
public static final int THROTTLE_SLICE_SIZE = 16 * 1024;
public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024;
public static final int STREAMER_PORT = 1337;
diff --git a/src/main/resources/images/mbasterd_screen.png b/src/main/resources/images/mbasterd_screen.png
index 7187f112f..4f112063a 100644
Binary files a/src/main/resources/images/mbasterd_screen.png and b/src/main/resources/images/mbasterd_screen.png differ