Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 116976 - batik-1.6: java.io.IOException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
Summary: batik-1.6: java.io.IOException: SAX2 driver class org.apache.xerces.parsers.S...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Java team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-12-28 06:14 UTC by Matt Kynx
Modified: 2006-09-20 15:28 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Kynx 2005-12-28 06:14:58 UTC
I'm getting the following error when running the batik1.6 wrapper script:

java.io.IOException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
	at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
	at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
	at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument(Unknown Source)
	at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createSVGDocument(Unknown Source)
	at org.apache.batik.bridge.DocumentLoader.loadDocument(Unknown Source)
	at org.apache.batik.swing.svg.SVGDocumentLoader.run(Unknown Source)

I'm no expert, but it looks to me like a classpath issue. Here's the classpath that the script is actually running:

$ ps x | grep batik
 9960 pts/0    S+     0:00 /bin/sh /usr/bin/batik1.6
 9962 pts/0    Sl+    0:04 /opt/sun-jdk-1.4.2.10/bin/java -classpath /usr/share/batik-1.6/lib/batik-dom.jar:/usr/share/batik-1.6/lib/batik-ttf2svg.jar:/usr/share/batik-1.6/lib/batik-transcoder.jar:/usr/share/batik-1.6/lib/batik-squiggle.jar:/usr/share/batik-1.6/lib/batik-util.jar:/usr/share/batik-1.6/lib/batik.jar:/usr/share/batik-1.6/lib/batik-css.jar:/usr/share/batik-1.6/lib/batik-ext.jar:/usr/share/batik-1.6/lib/batik-awt-util.jar:/usr/share/batik-1.6/lib/resolver.jar:/usr/share/batik-1.6/lib/batik-parser.jar:/usr/share/batik-1.6/lib/batik-gui-util.jar:/usr/share/batik-1.6/lib/batik-slideshow.jar:/usr/share/batik-1.6/lib/which.jar:/usr/share/batik-1.6/lib/batik-svgpp.jar:/usr/share/batik-1.6/lib/batik-xml.jar:/usr/share/batik-1.6/lib/batik-rasterizer.jar:/usr/share/batik-1.6/lib/batik-svg-dom.jar:/usr/share/batik-1.6/lib/batik-gvt.jar:/usr/share/batik-1.6/lib/batik-all.jar:/usr/share/batik-1.6/lib/batik-bridge.jar:/usr/share/batik-1.6/lib/batik-svggen.jar:/usr/share/batik-1.6/lib/batik-extension.jar:/usr/share/batik-1.6/lib/batik-script.jar:/usr/share/batik-1.6/lib/batik-swing.jar:/usr/share/xml-commons/lib/resolver.jar:/usr/share/xml-commons/lib/xml-apis.jar:/usr/share/xml-commons/lib/which.jar:/usr/share/rhino-1.5/lib/js.jar org.apache.batik.apps.svgbrowser.Main

batik-1.5.1-r4 works fine for me, and I've noticed that the wrapper script for that includes xerces-2 in the classpath. So I tried adding that to batik1.6, but no luck. After changing it to read:

${JAVA_HOME}/bin/java -classpath $(java-config -p       batik-1.6,xerces-2,xml-commons,rhino-1.5) org.apache.batik.apps.svgbrowser.Main $*

I now get:

java.lang.NullPointerException
	at java.io.Reader.<init>(Reader.java:61)
	at java.io.InputStreamReader.<init>(InputStreamReader.java:80)
	at java.util.Properties.load(Properties.java:266)
	at org.apache.batik.dom.svg.SAXSVGDocumentFactory.resolveEntity(Unknown Source)
	at org.apache.xerces.util.EntityResolverWrapper.resolveEntity(Unknown Source)
	at org.apache.xerces.impl.XMLEntityManager.resolveEntity(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
	at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
	at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument(Unknown Source)
	at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createSVGDocument(Unknown Source)
	at org.apache.batik.bridge.DocumentLoader.loadDocument(Unknown Source)
	at org.apache.batik.swing.svg.SVGDocumentLoader.run(Unknown Source)

My setup:

$ java-config -v
java version "1.4.2_10"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_10-b03)
Java HotSpot(TM) Client VM (build 1.4.2_10-b03, mixed mode)

Other dependencies:
xerces-2.6.2-r2
xmlcommons-1.0_beta2
rhino-1.6.1-r1
ant-core-1.6.2-r5
Comment 1 matthew.cline 2006-02-09 18:46:07 UTC
I reported a similar problem running the Squiggle browser directly in bug #122328.

Interestingly, if I use the ant build target to run the browser:

$ ant squiggle

then things work fine.
Comment 2 Chris Chiasson 2006-03-06 22:25:11 UTC
(In reply to comment #0)

I am getting the same error trying to use the 1.6 rasterizer.

java -classpath `java-config -p 'batik-1.6,xml-commons,rhino-1.5,xerces-2'` -jar /usr/share/batik-1.6/lib/batik-rasterizer.jar boundunimodaldecision.svg

About to transcode 1 SVG file(s)

Converting boundunimodaldecision.svg to boundunimodaldecision.png ... java.io.IOException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
        at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(SAXDocumentFactory.java:395)
        at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(SAXDocumentFactory.java:321)
        at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument(SAXSVGDocumentFactory.java:198)
        at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument(SAXSVGDocumentFactory.java:271)
        at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:128)
        at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:155)
        at org.apache.batik.apps.rasterizer.SVGConverter.transcode(SVGConverter.java:968)
        at org.apache.batik.apps.rasterizer.SVGConverter.execute(SVGConverter.java:694)
        at org.apache.batik.apps.rasterizer.Main.execute(Main.java:886)
        at org.apache.batik.apps.rasterizer.Main.main(Main.java:939)
org.apache.batik.transcoder.TranscoderException: null
Enclosed Exception:
SAX2 driver class org.apache.xerces.parsers.SAXParser not found
        at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:136)
        at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:155)
        at org.apache.batik.apps.rasterizer.SVGConverter.transcode(SVGConverter.java:968)
        at org.apache.batik.apps.rasterizer.SVGConverter.execute(SVGConverter.java:694)
        at org.apache.batik.apps.rasterizer.Main.execute(Main.java:886)
        at org.apache.batik.apps.rasterizer.Main.main(Main.java:939)
... error (SVGConverter.error.while.rasterizing.file)

# emerge info
Portage 2.0.54 (default-linux/amd64/2005.1, gcc-3.4.4, glibc-2.3.5-r2, 2.6.15-gentoo-r5 x86_64)
=================================================================
System uname: 2.6.15-gentoo-r5 x86_64 AMD Athlon(tm) 64 Processor 3500+
Gentoo Base System version 1.6.14
dev-lang/python:     2.3.5-r2, 2.4.2
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -pipe -O2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/alias /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=k8 -pipe -O2"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo http://gentoo.chem.wisc.edu/gentoo/"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LINGUAS="en"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.us.gentoo.org/gentoo-portage"
USE="amd64 X alsa apache2 audiofile avi berkdb bitmap-fonts bzip2 crypt cups curl eds emacs emboss encode expat fam foomaticdb fortran gd gdbm gif glut gmp gnome gpm gstreamer gtk gtk2 idn imagemagick imlib ipv6 jai java jikes jimi jpeg junit kde lzw lzw-tiff mathml mp3 mpeg ncurses nls opengl pam pdflib perl png python qt quicktime readline recode samba sdl spell ssl svg tcpd tiff truetype truetype-fonts type1-fonts udev unicode usb userlocales xml xml2 xpm xv zlib linguas_en userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LDFLAGS
Comment 3 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2006-08-30 02:12:27 UTC
(In reply to comment #0)
> java.lang.NullPointerException
>         at java.io.Reader.<init>(Reader.java:61)
>         at java.io.InputStreamReader.<init>(InputStreamReader.java:80)
>         at java.util.Properties.load(Properties.java:266)

Freaking thing. It won't happen if you run batik FROM his /usr/share/batik-1.6/ directory. Apparently it's looking for properties in XMLResourceDescriptor.properties in one of the jars inside lib/, but no idea why you must stand next to the lib/ dir for it to work.
Comment 4 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2006-09-20 15:28:01 UTC
Fixed in batik-1.6-r1. The original issue by adding xerces-2 into launcher's classpath, the java.lang.NullPointerException by making the launcher cd into batik's directory before executing java.