summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/util/News.java
diff options
context:
space:
mode:
authorJonathan Bauer2014-09-15 16:56:36 +0200
committerJonathan Bauer2014-09-15 16:56:36 +0200
commit4989e2b99e536f0801b66c7acaf283b7e766e5de (patch)
tree8e969ab75e9a845aad660165a69906292c1fb68e /dozentenmodul/src/main/java/util/News.java
parent[client] javadoced News class (diff)
downloadtutor-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.java21
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();