From ca006d8ee35fc33198681d9dd7176ad3fc91b1e6 Mon Sep 17 00:00:00 2001
From: apvrille <ludovic.apvrille@eurecom.fr>
Date: Fri, 9 Feb 2018 10:01:43 +0100
Subject: [PATCH] Adding a timer on https connections

---
 src/main/java/faulttrees/Fault.java           |   4 +
 src/main/java/myutil/URLManager.java          | 119 +++++++++---------
 .../java/ui/FaultTreePanelTranslator.java     |   3 +-
 .../JDialogLoadingNetworkModel.java           |  39 +++---
 4 files changed, 84 insertions(+), 81 deletions(-)

diff --git a/src/main/java/faulttrees/Fault.java b/src/main/java/faulttrees/Fault.java
index 03050bf4e3..6f06d252d3 100755
--- a/src/main/java/faulttrees/Fault.java
+++ b/src/main/java/faulttrees/Fault.java
@@ -86,6 +86,10 @@ public class Fault extends FaultElement {
         this.probability = probability;
     }
 
+    public double getProbability() {
+        return probability;
+    }
+
     public void addDestinationNode(FaultNode _node) {
         destinationNodes.add(_node);
     }
diff --git a/src/main/java/myutil/URLManager.java b/src/main/java/myutil/URLManager.java
index 19449d0ec3..c27330fe44 100755
--- a/src/main/java/myutil/URLManager.java
+++ b/src/main/java/myutil/URLManager.java
@@ -37,27 +37,22 @@
  */
 
 
-
-
 package myutil;
 
-import org.apache.commons.io.FileUtils;
-
 import javax.imageio.ImageIO;
 import java.awt.image.BufferedImage;
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.IOException;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
 import java.net.URL;
 
 /**
-   * Class URLManager
-   * Creation: 31/05/2017
-   * @version 1.1 31/05/2017
-   * @author Ludovic APVRILLE
+ * Class URLManager
+ * Creation: 31/05/2017
+ *
+ * @author Ludovic APVRILLE
+ * @version 1.1 31/05/2017
  */
 public final class URLManager implements Runnable {
 
@@ -65,86 +60,86 @@ public final class URLManager implements Runnable {
     private boolean busy;
     private String path;
     private CallbackLoaderInterface callback;
-    
+
     public URLManager() {
-	busy = false;
+        busy = false;
     }
 
     public synchronized boolean downloadFile(String _path, String _url, CallbackLoaderInterface _callback) {
-	if (busy) {
-	    return false;
-	}
-	busy = true;
+        if (busy) {
+            return false;
+        }
+        busy = true;
 
-	path = _path;
-	url = _url;
-	callback = _callback;
+        path = _path;
+        url = _url;
+        callback = _callback;
 
-	Thread t = new Thread(this);
+        Thread t = new Thread(this);
         t.start();
-	return true;
+        return true;
 
     }
 
     public void run() {
-	try {
-	    String urlF = getRealURL(url);
-	    File f = new File(path);
-	    org.apache.commons.io.FileUtils.copyURLToFile(new URL(urlF), f);
-	    if (callback != null) {
-		callback.loadDone();
-	    }
-	} catch (Exception e) {
-	    if (callback != null) {
-		callback.loadFailed(e);
-	    }
-	}
-	busy = false;
+        try {
+            String urlF = getRealURL(url);
+            File f = new File(path);
+            org.apache.commons.io.FileUtils.copyURLToFile(new URL(urlF), f);
+            if (callback != null) {
+                callback.loadDone();
+            }
+        } catch (Exception e) {
+            if (callback != null) {
+                callback.loadFailed(e);
+            }
+        }
+        busy = false;
     }
 
     public static String getRealURL(String url) {
-	try {
-	    HttpURLConnection connection;
+        try {
+            HttpURLConnection connection;
             URL file = new URL(url);
-            connection = (HttpURLConnection)(file.openConnection());
+            connection = (HttpURLConnection) (file.openConnection());
             String redirect = connection.getHeaderField("Location");
-            if (redirect != null){
-		return redirect;
+            if (redirect != null) {
+                return redirect;
             }
-	} catch (Exception e) {
-	     TraceManager.addDev("Exception in getRealURL =" + e.getMessage());
-	}
-	return url;
-	
+        } catch (Exception e) {
+            TraceManager.addDev("Exception in getRealURL =" + e.getMessage());
+        }
+        return url;
+
     }
 
     public static String getBaseURL(String url) {
-	int index = url.lastIndexOf("/");
-	if (index == -1) {
-	    return url;
-	}
-	return url.substring(0, index+1);
+        int index = url.lastIndexOf("/");
+        if (index == -1) {
+            return url;
+        }
+        return url.substring(0, index + 1);
     }
 
     public static BufferedReader getBufferedReader(String url) {
-	try {
-	    String urlR = getRealURL(url);
-	    HttpURLConnection connection;
-	    URL file = new URL(urlR);
-	    connection = (HttpURLConnection)(file.openConnection());
-	    return new BufferedReader(new InputStreamReader(connection.getInputStream()));
-	} catch (Exception e) {
-	     TraceManager.addDev("Exception in getBufferedReader =" + e.getMessage());
-	}
-	return null;
+        try {
+            String urlR = getRealURL(url);
+            HttpURLConnection connection;
+            URL file = new URL(urlR);
+            connection = (HttpURLConnection) (file.openConnection());
+            return new BufferedReader(new InputStreamReader(connection.getInputStream()));
+        } catch (Exception e) {
+            TraceManager.addDev("Exception in getBufferedReader =" + e.getMessage());
+        }
+        return null;
     }
 
     public static BufferedImage getBufferedImageFromURL(String url) {
-	TraceManager.addDev("getBufferedImageFromURL with url=" + url);
+        TraceManager.addDev("getBufferedImageFromURL with url=" + url);
         try {
-	    return ImageIO.read(new URL(getRealURL(url)));
+            return ImageIO.read(new URL(getRealURL(url)));
         } catch (Exception e) {
-	    TraceManager.addDev("Exception in getBufferedImageFromURL =" + e.getMessage());
+            TraceManager.addDev("Exception in getBufferedImageFromURL =" + e.getMessage());
             return null;
         }
 
diff --git a/src/main/java/ui/FaultTreePanelTranslator.java b/src/main/java/ui/FaultTreePanelTranslator.java
index 855dd15793..6fd6219986 100644
--- a/src/main/java/ui/FaultTreePanelTranslator.java
+++ b/src/main/java/ui/FaultTreePanelTranslator.java
@@ -129,6 +129,7 @@ public class FaultTreePanelTranslator {
                 }
                 att = new Fault(value, atdatt);
                 att.setRoot(atdatt.isRootFault());
+                att.setProbability(atdatt.getProbability());
                 att.setEnabled(atdatt.isEnabled());
                 at.addFault(att);
                 listE.addCor(att, comp);
@@ -746,11 +747,11 @@ public class FaultTreePanelTranslator {
             _ab.addAttribute(aa);
             atF.addAction(att.getName() + "__performed = false");
 
-
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
             AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1);
             asm.addElement(acceptFault);
             AvatarTransition at = new AvatarTransition(_ab, "at_toInputFault", _ref);
+            at.setProbability(att.getProbability());
             asm.addElement(at);
             mainState.addNext(at);
             at.addNext(acceptFault);
diff --git a/src/main/java/ui/networkmodelloader/JDialogLoadingNetworkModel.java b/src/main/java/ui/networkmodelloader/JDialogLoadingNetworkModel.java
index 323e3c91d9..fea1d4ee98 100644
--- a/src/main/java/ui/networkmodelloader/JDialogLoadingNetworkModel.java
+++ b/src/main/java/ui/networkmodelloader/JDialogLoadingNetworkModel.java
@@ -56,6 +56,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 
+
 /**
  * Class JDialogNetworkModelPanel
  * Dialog for managing the loading of network models
@@ -235,32 +236,34 @@ public class JDialogLoadingNetworkModel extends javax.swing.JFrame implements Ac
     }
 
     public void cancel() {
-        if (panel != null) panel.stopLoading(); dispose();
+        if (panel != null) panel.stopLoading();
+        dispose();
+    }
+
+    public void alertMessage() {
+        jta.append("Could not establish a connection to the TTool server\n");
+        jta.append("Error when retrieving file: " + url + "\n No internet connection?\n Certificates not installed on your computer?\n\n");
     }
 
     public void run() {
         // Loading main file describing models, giving information on this, and filling the array of models
         // Accessing the main file
         try {
-            /*HttpURLConnection connection;
-              TraceManager.addDev("URL: going to create it to: " + url);
-              URL mainFile = new URL(url);
-              TraceManager.addDev("URL creation");
-              connection = (HttpURLConnection)(mainFile.openConnection());
-              TraceManager.addDev("Connection setup 0");
-              String redirect = connection.getHeaderField("Location");
-              if (redirect != null){
-              TraceManager.addDev("Redirection found");
-              connection = (HttpURLConnection)(new URL(redirect).openConnection());
-              }
-              //connection.setRequestMethod("GET");
-              //connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
-              TraceManager.addDev("Connection setup 1");*/
+            int delay = 10000; //milliseconds
+            ActionListener taskPerformer = new ActionListener() {
+                public void actionPerformed(ActionEvent evt) {
+                    alertMessage();
+                }
+            };
+            javax.swing.Timer timer = new javax.swing.Timer(delay, taskPerformer);
+            timer.start();
+
             BufferedReader in = URLManager.getBufferedReader(url);
             if (in == null) {
-                jta.append("Could not establish a connection to the TTool server\n");
-                jta.append("Error when retreiving file: " + url + "\n No internet connection?\n No right for the Java Virtual Machine to use http connections?\n\n");
+                //alertMessage();
+
             } else {
+                timer.stop();
                 jta.append("Connection established...\n");
                 String inputLine = null;
                 NetworkModel nm = null;
@@ -327,7 +330,7 @@ public class JDialogLoadingNetworkModel extends javax.swing.JFrame implements Ac
             }
 
         } catch (Exception e) {
-            jta.append("Error when retreiving file: " + url + "\n No internet connection?\n No right for the Java Virtual Machine to use http connections?\n\n");
+            alertMessage();
             TraceManager.addDev("Exception trace in loading network model:");
             e.printStackTrace();
         }
-- 
GitLab