diff --git a/pom.xml b/pom.xml
index f010c4ee1..98c0679d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.tonikelope
MegaBasterd
- 7.43
+ 7.44
jar
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
index 97b23ac3a..358a68c60 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
@@ -60,7 +60,7 @@
*/
public final class MainPanel {
- public static final String VERSION = "7.43";
+ public static final String VERSION = "7.44";
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;
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
index c1c67a954..4c50c8c2c 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
@@ -329,6 +329,7 @@ private void _new_upload_dialog(FileGrabberDialog dialog) {
LOG.log(SEVERE, null, ex);
}
+
};
getMain_panel().getUpload_manager().getTransference_preprocess_queue().add(run);
diff --git a/src/main/java/com/tonikelope/megabasterd/MegaAPI.java b/src/main/java/com/tonikelope/megabasterd/MegaAPI.java
index 2a5ba79f1..cc4ae42cf 100644
--- a/src/main/java/com/tonikelope/megabasterd/MegaAPI.java
+++ b/src/main/java/com/tonikelope/megabasterd/MegaAPI.java
@@ -22,6 +22,7 @@
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLException;
/**
*
@@ -495,6 +496,12 @@ private String _rawRequest(String request, URL url_api) throws MegaAPIException
}
+ } catch (SSLException ssl_ex) {
+
+ empty_response = true;
+
+ Logger.getLogger(MegaAPI.class.getName()).log(Level.SEVERE, ssl_ex.getMessage());
+
} catch (IOException ex) {
Logger.getLogger(MegaAPI.class.getName()).log(Level.SEVERE, ex.getMessage());
@@ -925,7 +932,7 @@ public String cryptoHandleauth(String h) {
public HashMap getFolderNodes(String folder_id, String folder_key) throws Exception {
- HashMap folder_nodes;
+ HashMap folder_nodes = null;
String request = "[{\"a\":\"f\", \"c\":\"1\", \"r\":\"1\"}]";
@@ -933,62 +940,69 @@ public HashMap getFolderNodes(String folder_id, String folder_ke
String res = _rawRequest(request, url_api);
- ObjectMapper objectMapper = new ObjectMapper();
+ if (res != null) {
- HashMap[] res_map = objectMapper.readValue(res, HashMap[].class);
+ ObjectMapper objectMapper = new ObjectMapper();
- folder_nodes = new HashMap<>();
+ HashMap[] res_map = objectMapper.readValue(res, HashMap[].class);
- for (Object o : (Iterable extends Object>) res_map[0].get("f")) {
+ folder_nodes = new HashMap<>();
- HashMap node = (HashMap) o;
+ for (Object o : (Iterable extends Object>) res_map[0].get("f")) {
- String[] node_k = ((String) node.get("k")).split(":");
+ HashMap node = (HashMap) o;
- if (node_k.length == 2 && node_k[0] != "" && node_k[1] != "") {
+ String[] node_k = ((String) node.get("k")).split(":");
- try {
+ if (node_k.length == 2 && node_k[0] != "" && node_k[1] != "") {
- String dec_node_k = Bin2UrlBASE64(decryptKey(UrlBASE642Bin(node_k[1]), _urlBase64KeyDecode(folder_key)));
+ try {
- HashMap at = _decAttr((String) node.get("a"), _urlBase64KeyDecode(dec_node_k));
+ String dec_node_k = Bin2UrlBASE64(decryptKey(UrlBASE642Bin(node_k[1]), _urlBase64KeyDecode(folder_key)));
- HashMap the_node = new HashMap<>();
+ HashMap at = _decAttr((String) node.get("a"), _urlBase64KeyDecode(dec_node_k));
- the_node.put("type", node.get("t"));
+ HashMap the_node = new HashMap<>();
- the_node.put("parent", node.get("p"));
+ the_node.put("type", node.get("t"));
- the_node.put("key", dec_node_k);
+ the_node.put("parent", node.get("p"));
- if (node.get("s") != null) {
+ the_node.put("key", dec_node_k);
- if (node.get("s") instanceof Integer) {
+ if (node.get("s") != null) {
- long size = ((Number) node.get("s")).longValue();
- the_node.put("size", size);
+ if (node.get("s") instanceof Integer) {
- } else if (node.get("s") instanceof Long) {
+ long size = ((Number) node.get("s")).longValue();
+ the_node.put("size", size);
- long size = (Long) node.get("s");
- the_node.put("size", size);
+ } else if (node.get("s") instanceof Long) {
+
+ long size = (Long) node.get("s");
+ the_node.put("size", size);
+ }
}
- }
- the_node.put("name", at.get("n"));
+ the_node.put("name", at.get("n"));
- the_node.put("h", node.get("h"));
+ the_node.put("h", node.get("h"));
- folder_nodes.put((String) node.get("h"), the_node);
+ folder_nodes.put((String) node.get("h"), the_node);
+
+ } catch (Exception e) {
+ LOG.log(Level.WARNING, "WARNING: node key is not valid " + (String) node.get("k"));
+ }
- } catch (Exception e) {
+ } else {
LOG.log(Level.WARNING, "WARNING: node key is not valid " + (String) node.get("k"));
}
- } else {
- LOG.log(Level.WARNING, "WARNING: node key is not valid " + (String) node.get("k"));
}
+ } else {
+
+ throw new Exception();
}
return folder_nodes;
diff --git a/src/main/java/com/tonikelope/megabasterd/MiscTools.java b/src/main/java/com/tonikelope/megabasterd/MiscTools.java
index 709e257d1..39dca5baf 100644
--- a/src/main/java/com/tonikelope/megabasterd/MiscTools.java
+++ b/src/main/java/com/tonikelope/megabasterd/MiscTools.java
@@ -423,51 +423,27 @@ public static void pausar(long pause) {
public static void GUIRun(Runnable r) {
- boolean ok;
-
- do {
- ok = true;
-
- try {
- if (!SwingUtilities.isEventDispatchThread()) {
- SwingUtilities.invokeLater(r);
- } else {
- r.run();
- }
- } catch (Exception ex) {
- ok = false;
- Logger.getLogger(MiscTools.class.getName()).log(Level.SEVERE, null, ex);
- MiscTools.pausar(250);
- }
+ if (!SwingUtilities.isEventDispatchThread()) {
+ SwingUtilities.invokeLater(r);
+ } else {
+ r.run();
+ }
- } while (!ok);
}
public static void GUIRunAndWait(Runnable r) {
- boolean ok;
-
- do {
- ok = true;
- try {
- if (!SwingUtilities.isEventDispatchThread()) {
- SwingUtilities.invokeAndWait(r);
- } else {
- r.run();
- }
- } catch (Exception ex) {
- ok = false;
- Logger.getLogger(MiscTools.class.getName()).log(Level.SEVERE, null, ex);
- MiscTools.pausar(250);
+ try {
+ if (!SwingUtilities.isEventDispatchThread()) {
+ SwingUtilities.invokeAndWait(r);
+ } else {
+ r.run();
}
- } while (!ok);
- }
-
- public static void threadRun(Runnable r) {
+ } catch (Exception ex) {
- Thread hilo = new Thread(r);
+ Logger.getLogger(MiscTools.class.getName()).log(Level.SEVERE, null, ex);
- hilo.start();
+ }
}
diff --git a/src/main/resources/images/mbasterd_screen.png b/src/main/resources/images/mbasterd_screen.png
index 4ed5223dc..7dc2ba626 100644
Binary files a/src/main/resources/images/mbasterd_screen.png and b/src/main/resources/images/mbasterd_screen.png differ