]> www.vanbest.org Git - tv_grab_nl_java/commitdiff
Log XML messages in RTL class with log-level=DEBUG
authorJan-Pascal van Best <janpascal@vanbest.org>
Thu, 11 Apr 2013 14:31:31 +0000 (16:31 +0200)
committerJan-Pascal van Best <janpascal@vanbest.org>
Thu, 11 Apr 2013 14:31:31 +0000 (16:31 +0200)
src/main/java/org/vanbest/xmltv/RTL.java

index 0c439b5d8ae2ca9092d5f4c6b81b2792585f2625..5d59a057838f46eadba88e005231a8dccd78226c 100644 (file)
@@ -26,6 +26,8 @@ import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerFactory;\r
 import javax.xml.transform.dom.DOMSource;\r
 import javax.xml.transform.stream.StreamResult;\r
+import javax.xml.transform.TransformerException;\r
+import javax.xml.transform.TransformerConfigurationException;\r
 \r
 import net.sf.json.JSONArray;\r
 import net.sf.json.JSONObject;\r
@@ -98,10 +100,25 @@ public class RTL extends AbstractEPGSource implements EPGSource {
                return NAME;\r
        }\r
 \r
+        private String xmlToString(Document doc) {\r
+                try {\r
+                  Transformer transformer = TransformerFactory.newInstance().newTransformer();\r
+                  StringWriter stw = new StringWriter();  \r
+                  transformer.transform(new DOMSource(doc), new StreamResult(stw));  \r
+                  return stw.toString();\r
+                } catch (TransformerConfigurationException e) {\r
+                  logger.debug("Cannot convert XML Document to String, e");\r
+                  return "";\r
+                } catch (TransformerException e) {\r
+                  logger.debug("Cannot convert XML Document to String, e");\r
+                  return "";\r
+                }\r
+        }\r
 \r
        private Document fetchXML(URL url) throws Exception {\r
                Document xml = null;\r
                boolean done = false;\r
+               logger.debug("Fetching XML from URL "+url);\r
                for (int count = 0; !done; count++) {\r
                        Thread.sleep(config.niceMilliseconds*(1<<count));\r
                        try {\r
@@ -109,18 +126,19 @@ public class RTL extends AbstractEPGSource implements EPGSource {
                                        .newDocumentBuilder().parse(url.openStream());\r
                                done = true;\r
                        } catch (Exception e) {\r
-                               if (!config.quiet) {\r
-                                       logger.warn("Error fetching from url " + url + ", count="\r
-                                                       + count);\r
-                               }\r
-                               if (count >= MAX_FETCH_TRIES) {\r
-                                       stats.fetchErrors++;\r
-                                       logger.debug("Error getting data from url", e);\r
-                                       throw new Exception("Error getting data from url "\r
-                                                       + url, e);\r
-                               }\r
+                                       if (!config.quiet) {\r
+                                               logger.warn("Error fetching from url " + url + ", count="\r
+                                                               + count);\r
+                                       }\r
+                                       if (count >= MAX_FETCH_TRIES) {\r
+                                               stats.fetchErrors++;\r
+                                               logger.debug("Error getting data from url", e);\r
+                                               throw new Exception("Error getting data from url "\r
+                                                               + url, e);\r
+                                       }\r
                       }\r
                 }\r
+               logger.debug(xmlToString(xml));\r
                 return xml;\r
         }\r
 \r
@@ -203,12 +221,7 @@ public class RTL extends AbstractEPGSource implements EPGSource {
                        if (!n.getNodeName().equals("uitzending_data_item")) {\r
                                logger.warn("Ignoring RTL detail, tag " + n.getNodeName()\r
                                                + ", full xml:");\r
-                               Transformer t = TransformerFactory.newInstance()\r
-                                               .newTransformer();\r
-                               StringWriter writer = new StringWriter();\r
-                               StreamResult result = new StreamResult(writer);\r
-                               t.transform(new DOMSource(xml), result);\r
-                               logger.debug(writer.toString());\r
+                               logger.debug(xmlToString(xml));\r
                                continue;\r
                        }\r
                        // we have a uitzending_data_item node\r
@@ -227,12 +240,7 @@ public class RTL extends AbstractEPGSource implements EPGSource {
                                        }\r
                                        handleNode(prog, dateStatus, descStatus, subnodes.item(j));\r
                                } catch (RTLException e) {\r
-                                       Transformer t = TransformerFactory.newInstance()\r
-                                                       .newTransformer();\r
-                                       StringWriter writer = new StringWriter();\r
-                                       StreamResult result2 = new StreamResult(writer);\r
-                                       t.transform(new DOMSource(xml), result2);\r
-                                       logger.debug(writer.toString(), e);\r
+                                       logger.debug(xmlToString(xml), e);\r
                                        continue;\r
                                }\r
                        }\r