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