Package: ditaa
Version: 0.9+ds1-3
Severity: normal
Tags: upstream patch
Dear Maintainer,
When I invoke ditaa with -h to import any HTML file, a Java Exception
appears.
Here is an example of this behavior:
---
$ ditaa -h test.html
ditaa version 0.9, Copyright (C) 2004--2009 Efstathios (Stathis)
Sideris
Running with options:
html
Exception in thread main java.lang.NoClassDefFoundError:
net/htmlparser/jericho/Segment
at
org.stathissideris.ascii2image.core.CommandLineConverter.main(CommandLineConverter.java:182)
Caused by: java.lang.ClassNotFoundException:
net.htmlparser.jericho.Segment
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
... 1 more
---
The JAR manifest is apparently missing a Class-Path reference to the
Jericho HTML
Parser, which I fixed in my patch.
While testing, I came across a second problem, also fixed in my patch.
This is an upstream bug, though:
---
$ ditaa -h test.html
ditaa version 0.9, Copyright (C) 2004--2009 Efstathios (Stathis)
Sideris
Running with options:
html
Convering HTML file (test.html - test_processed.html)... Exception in
thread main java.lang.ClassCastException:
net.htmlparser.jericho.StartTag
cannot be cast to net.htmlparser.jericho.Element
at
org.stathissideris.ascii2image.core.HTMLConverter.convertHTMLFile(HTMLConverter.java:119)
at
org.stathissideris.ascii2image.core.CommandLineConverter.main(CommandLineConverter.java:182)
---
Seems like getAllStartTags() is used instead of getAllElements() at
HTMLConverter.java:116.
When my patch is applied, I am able to use an HTML file as input.
-- System Information:
Debian Release: wheezy/sid
APT prefers precise-updates
APT policy: (500, 'precise-updates'), (500, 'precise-security'),
(500, 'precise')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-31-generic (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages ditaa depends on:
ii default-jdk [java6-sdk]1:1.6-43ubuntu2
ii default-jre [java6-runtime]1:1.6-43ubuntu2
ii jarwrapper 0.40ubuntu1.1
ii junit4 4.8.2-2
ii libbatik-java 1.7.ubuntu-8ubuntu1
ii libcommons-cli-java1.2-3
ii libjericho-html-java 3.1-2
ii libxml-commons-external-java 1.4.01-2
ii openjdk-6-jdk [java6-sdk] 6b31-1.13.3-1ubuntu1~0.12.04.2
ii openjdk-6-jre [java6-runtime] 6b31-1.13.3-1ubuntu1~0.12.04.2
ditaa recommends no packages.
ditaa suggests no packages.
-- no debconf information
--
Martino Dell'Ambrogio
Security Auditor
Web: http://www.tillo.ch/
Email: ti...@tillo.ch
diff -ur ditaa-0.9+ds1.orig/debian/manifest ditaa-0.9+ds1/debian/manifest
--- ditaa-0.9+ds1.orig/debian/manifest 2010-04-15 20:23:24.0 +0200
+++ ditaa-0.9+ds1/debian/manifest 2014-05-13 11:47:26.242177598 +0200
@@ -1,5 +1,5 @@
usr/share/ditaa/ditaa.jar:
Main-Class: org.stathissideris.ascii2image.core.CommandLineConverter
Debian-Java-Home: /usr/lib/jvm/default-java
- Class-Path: /usr/share/java/junit4.jar
/usr/lib/jvm/java-6-openjdk/lib/tools.jar /usr/share/java/commons-cli.jar
/usr/share/java/batik-bridge.jar /usr/share/java/batik-dom.jar
/usr/share/java/batik-gvt.jar /usr/share/java/batik-svg-dom.jar
/usr/share/java/batik-awt-util.jar /usr/share/java/xml-apis-ext.jar
/usr/share/java/batik-libs.jar
+ Class-Path: /usr/share/java/jericho-html.jar /usr/share/java/junit4.jar
/usr/lib/jvm/java-6-openjdk/lib/tools.jar /usr/share/java/commons-cli.jar
/usr/share/java/batik-bridge.jar /usr/share/java/batik-dom.jar
/usr/share/java/batik-gvt.jar /usr/share/java/batik-svg-dom.jar
/usr/share/java/batik-awt-util.jar /usr/share/java/xml-apis-ext.jar
/usr/share/java/batik-libs.jar
diff -ur
ditaa-0.9+ds1.orig/src/org/stathissideris/ascii2image/core/HTMLConverter.java
ditaa-0.9+ds1/src/org/stathissideris/ascii2image/core/HTMLConverter.java
---
ditaa-0.9+ds1.orig/src/org/stathissideris/ascii2image/core/HTMLConverter.java
2014-05-13 11:28:48.0 +0200
+++ ditaa-0.9+ds1/src/org/stathissideris/ascii2image/core/HTMLConverter.java
2014-05-13 11:55:53.460347558 +0200
@@ -113,7 +113,7 @@
int index = 1;
HashMap diagramList = new HashMap();
- List linkStartTags = source.getAllStartTags(pre);
+ List linkStartTags = source.getAllElements(pre);
Iterator it = linkStartTags.iterator();
while (it.hasNext()) {
Element element = (Element) it.next();