diff --git a/pom.xml b/pom.xml
index b3c1ced5d..5abd381ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.tonikelope
MegaBasterd
- 7.59
+ 7.60
jar
diff --git a/src/main/java/com/tonikelope/megabasterd/Download.java b/src/main/java/com/tonikelope/megabasterd/Download.java
index 714e07b2e..476b100a4 100644
--- a/src/main/java/com/tonikelope/megabasterd/Download.java
+++ b/src/main/java/com/tonikelope/megabasterd/Download.java
@@ -496,7 +496,7 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif
@Override
public void checkSlotsAndWorkers() {
- if (!isExit()) {
+ if (!isExit() && !this._finalizing) {
synchronized (_workers_lock) {
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
index d0c13a6c9..71505a4eb 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
@@ -67,7 +67,7 @@ import javax.swing.UIManager;
*/
public final class MainPanel {
- public static final String VERSION = "7.59";
+ public static final String VERSION = "7.60";
public static final boolean FORCE_SMART_PROXY = false; //TRUE FOR DEBUGING SMART PROXY
public static final int THROTTLE_SLICE_SIZE = 16 * 1024;
public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024;
@@ -114,10 +114,10 @@ public final class MainPanel {
if (args.length > 1) {
try {
Logger.getLogger(MainPanel.class.getName()).log(Level.INFO, "{0} Waiting {1} seconds before start...", new Object[]{Thread.currentThread().getName(), args[1]});
-
- if(Long.parseLong(args[1])>=0){
+
+ if (Long.parseLong(args[1]) >= 0) {
Thread.sleep(Long.parseLong(args[1]) * 1000);
- }else {
+ } else {
CHECK_RUNNING = false;
}
} catch (InterruptedException ex) {
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
index 771f32fca..37d51b1ff 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
@@ -289,56 +289,71 @@ public final class MainPanelView extends javax.swing.JFrame {
String file_path = f.getParentFile().getAbsolutePath().replace(base_path, "");
- LOG.log(Level.INFO, "{0} FILE_PATH -> {1}", new Object[]{Thread.currentThread().getName(), file_path});
+ try {
- String[] dirs = file_path.split("\\" + File.separator);
+ LOG.log(Level.INFO, "{0} FILE_PATH -> {1}", new Object[]{Thread.currentThread().getName(), file_path});
- MegaDirNode current_node = file_paths;
+ String[] dirs = file_path.split("\\" + File.separator);
- String file_parent = current_node.getNode_id();
+ MegaDirNode current_node = file_paths;
- for (String d : dirs) {
+ String file_parent = current_node.getNode_id();
- LOG.log(Level.INFO, "{0} DIR -> {1}", new Object[]{Thread.currentThread().getName(), d});
+ for (String d : dirs) {
- if (!d.isEmpty()) {
+ LOG.log(Level.INFO, "{0} DIR -> {1}", new Object[]{Thread.currentThread().getName(), d});
- if (current_node.getChildren().get(d) != null) {
+ if (!d.isEmpty()) {
- current_node = current_node.getChildren().get(d);
+ if (current_node.getChildren().get(d) != null) {
- file_parent = current_node.getNode_id();
+ current_node = current_node.getChildren().get(d);
- } else {
+ file_parent = current_node.getNode_id();
- res = ma.createDirInsideAnotherSharedDir(d, current_node.getNode_id(), ma.genFolderKey(), i32a2bin(ma.getMaster_key()), parent_node, share_key);
+ } else {
- file_parent = (String) ((Map) ((List) res.get("f")).get(0)).get("h");
+ res = ma.createDirInsideAnotherSharedDir(d, current_node.getNode_id(), ma.genFolderKey(), i32a2bin(ma.getMaster_key()), parent_node, share_key);
- current_node.getChildren().put(d, new MegaDirNode(file_parent));
+ file_parent = (String) ((Map) ((List) res.get("f")).get(0)).get("h");
- current_node = current_node.getChildren().get(d);
+ current_node.getChildren().put(d, new MegaDirNode(file_parent));
+
+ current_node = current_node.getChildren().get(d);
+ }
}
}
- }
- while (getMain_panel().getUpload_manager().getTransference_waitstart_queue().size() >= TransferenceManager.MAX_WAIT_QUEUE || getMain_panel().getUpload_manager().getTransference_waitstart_aux_queue().size() >= TransferenceManager.MAX_WAIT_QUEUE) {
+ while (getMain_panel().getUpload_manager().getTransference_waitstart_queue().size() >= TransferenceManager.MAX_WAIT_QUEUE || getMain_panel().getUpload_manager().getTransference_waitstart_aux_queue().size() >= TransferenceManager.MAX_WAIT_QUEUE) {
- synchronized (getMain_panel().getUpload_manager().getWait_queue_lock()) {
- getMain_panel().getUpload_manager().getWait_queue_lock().wait(1000);
+ synchronized (getMain_panel().getUpload_manager().getWait_queue_lock()) {
+ getMain_panel().getUpload_manager().getWait_queue_lock().wait(1000);
+ }
}
- }
- if (!getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().isEmpty()) {
+ if (!getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().isEmpty()) {
- Upload upload = new Upload(getMain_panel(), ma, f.getAbsolutePath(), file_parent, null, null, parent_node, share_key, folder_link, dialog.getPriority_checkbox().isSelected());
+ Upload upload = new Upload(getMain_panel(), ma, f.getAbsolutePath(), file_parent, null, null, parent_node, share_key, folder_link, dialog.getPriority_checkbox().isSelected());
- getMain_panel().getUpload_manager().getTransference_provision_queue().add(upload);
+ getMain_panel().getUpload_manager().getTransference_provision_queue().add(upload);
- getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().remove(f);
+ getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().remove(f);
- getMain_panel().getUpload_manager().secureNotify();
+ getMain_panel().getUpload_manager().secureNotify();
+ }
+
+ } catch (Exception ex) {
+
+ if (!getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().isEmpty()) {
+
+ getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().remove(f);
+
+ getMain_panel().getUpload_manager().secureNotify();
+
+ }
+
+ LOG.log(SEVERE, null, ex);
}
}
diff --git a/src/main/java/com/tonikelope/megabasterd/Upload.java b/src/main/java/com/tonikelope/megabasterd/Upload.java
index f1a22195b..4e87c5062 100644
--- a/src/main/java/com/tonikelope/megabasterd/Upload.java
+++ b/src/main/java/com/tonikelope/megabasterd/Upload.java
@@ -570,7 +570,7 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia
@Override
public void checkSlotsAndWorkers() {
- if (!isExit()) {
+ if (!isExit() && !this._finalizing) {
synchronized (_workers_lock) {
diff --git a/src/main/resources/images/mbasterd_screen.png b/src/main/resources/images/mbasterd_screen.png
index 7517158b0..5ccd1f21d 100644
Binary files a/src/main/resources/images/mbasterd_screen.png and b/src/main/resources/images/mbasterd_screen.png differ