import java.util.List;\r
\r
import org.w3c.tidy.Tidy;\r
+import org.w3c.tidy.TidyMessage;\r
\r
import cx.fbn.nevernote.Global;\r
import cx.fbn.nevernote.utilities.ApplicationLogger;\r
private List<String> resources;\r
public boolean saveInvalidXML;\r
\r
+ private class TidyListener implements org.w3c.tidy.TidyMessageListener {\r
+ \r
+ ApplicationLogger logger;\r
+ public boolean errorFound; \r
+ \r
+ public TidyListener(ApplicationLogger logger) {\r
+ this.logger = logger;\r
+ errorFound = false;\r
+ }\r
+ @Override\r
+ public void messageReceived(TidyMessage msg) {\r
+ if (msg.getLevel() == TidyMessage.Level.ERROR) {\r
+ logger.log(logger.LOW, "******* JTIDY ERORR *******");\r
+ logger.log(logger.LOW, "Error Code: " +msg.getErrorCode());\r
+ logger.log(logger.LOW, "Column: " +msg.getColumn());\r
+ logger.log(logger.LOW, "Column: " +msg.getColumn());\r
+ logger.log(logger.LOW, "Line: " +msg.getLine());\r
+ logger.log(logger.LOW, "Message: " +msg.getMessage());\r
+ logger.log(logger.LOW, "***************************");\r
+ errorFound = true;\r
+ } else \r
+ logger.log(logger.EXTREME, "JTidy Results: "+msg.getMessage());\r
+ }\r
+ \r
+ }\r
+ \r
public EnmlConverter(ApplicationLogger l) {\r
logger = l;\r
// conn = c;\r
// logger.log(logger.HIGH, "Check complete");\r
\r
Tidy tidy = new Tidy();\r
+ TidyListener tidyListener = new TidyListener(logger);\r
+ tidy.setMessageListener(tidyListener);\r
+ tidy.getStderr().close(); // the listener will capture messages\r
tidy.setXmlTags(true);\r
byte html[] = newContent.getBytes();\r
ByteArrayInputStream is = new ByteArrayInputStream(html);\r
tidy.parse(is, os);\r
newContent = os.toString();\r
\r
- if (newContent.trim().equals(""))\r
+ if (tidyListener.errorFound) {\r
+ logger.log(logger.LOW, "Note Contents Begin");\r
+ logger.log(logger.LOW, content);\r
+ logger.log(logger.LOW, "Note Contents End");\r
newContent = null;\r
+ } else {\r
+ if (newContent.trim().equals(""))\r
+ newContent = null;\r
+ }\r
\r
// If the repair above returned null, then the XML is foobar.\r
// We are done here.\r