diff options
author | Jonathan Bauer | 2014-09-15 16:56:36 +0200 |
---|---|---|
committer | Jonathan Bauer | 2014-09-15 16:56:36 +0200 |
commit | 4989e2b99e536f0801b66c7acaf283b7e766e5de (patch) | |
tree | 8e969ab75e9a845aad660165a69906292c1fb68e /dozentenmodul/src/main/java/util/News.java | |
parent | [client] javadoced News class (diff) | |
download | tutor-module-4989e2b99e536f0801b66c7acaf283b7e766e5de.tar.gz tutor-module-4989e2b99e536f0801b66c7acaf283b7e766e5de.tar.xz tutor-module-4989e2b99e536f0801b66c7acaf283b7e766e5de.zip |
[client] timeouts for getting news per http
5seconds on connection and 10sec on reading the stream
Diffstat (limited to 'dozentenmodul/src/main/java/util/News.java')
-rw-r--r-- | dozentenmodul/src/main/java/util/News.java | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/dozentenmodul/src/main/java/util/News.java b/dozentenmodul/src/main/java/util/News.java index 38afe047..f37f7146 100644 --- a/dozentenmodul/src/main/java/util/News.java +++ b/dozentenmodul/src/main/java/util/News.java @@ -137,7 +137,7 @@ public class News { // Document representing the XML Document doc = null; - // URL to news api + // URL to news API URL url = null; try { url = new URL("http://" + SessionData.session.getServerAdress() + "/slx-admin/api.php?do=news"); @@ -159,11 +159,23 @@ public class News { } // set timeout for URLConnection - URLConnection urlCon = url.openConnection(); + URLConnection urlCon = null; + try { + urlCon = url.openConnection(); + // 5 seconds timeout for connection + urlCon.setConnectTimeout(5000); + // 10 seconds timeout for reading the stream + urlCon.setReadTimeout(10000); + } catch (IOException e1) { + e1.printStackTrace(); + JOptionPane.showMessageDialog(null, + "Satellite antwortete auf die Anfrage der News-XML nicht!", + "Fehler", JOptionPane.ERROR_MESSAGE); + } InputStream is = null; try { - is = url.openStream(); + is = urlCon.getInputStream(); } catch (IOException e1) { e1.printStackTrace(); JOptionPane.showMessageDialog(null, @@ -221,7 +233,8 @@ public class News { if (current.getNodeType() == Node.ELEMENT_NODE) { if (current.getNodeName().equals("headline") && current.getFirstChild().getNodeType() == Node.TEXT_NODE) headlineNode = current.getFirstChild(); - if (current.getNodeName().equals("info") && + // FIXME: temporary workaround for possibly different slx-admin versions! + if ((current.getNodeName().equals("info") || current.getNodeName().equals("content")) && current.getFirstChild().getNodeType() == Node.TEXT_NODE) contentNode = current.getFirstChild(); if (current.getNodeName().equals("date") && current.getFirstChild().getNodeType() == Node.TEXT_NODE) dateNode = current.getFirstChild(); |