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