logo       

batik fails under servlet: msg#00142

Subject: batik fails under servlet
It seems I am not the only one having this problem. But I failed to find
out whether this has been registered as a bug or accepted as a "feature"..

I am using fop 0.20.3 that comes with batik 1.1.1, in a web application
under Resin 2.0.5 (Windows 2000). All jars are in the application's
WEB-INF/lib. Each time the application is redeployed in the servlet
container, batik throws an exception and the servlet engine has to be
restarted. I tried replacing batik 1.1.1 with 1.0, with the same results.

This is apparently caused by the servlet container's classloader reloading
java.awt.RenderingHints.Key subclasses. They try to register themselves
from the constructor. Registered instances are stored in a static map in
RenderingHints.Key. And because RenderingHints.Key is already loaded in
the core VM, it contains all previously registered instances, and throws
an error. On subsequent calls there is a NoClassDefFoundError (stack
traces below). I hope I made some sense here, I know very little about
awt.

It seems to me that the only solution is to place batik.jar in resin/lib,
or jdk's jre/lib/ext, making batik part of the core VM. This doesn't work
well in a production environment, for obvious reasons.

Has anyone thought about this problem? Does this qualify as a bug? Or am I
missing out on some (other) obvious solution here?

-- 
Katja Kivilahti

-------------------------

java.lang.ExceptionInInitializerError: java.lang.IllegalArgumentException:
Instance(10100) of org.apache.batik.ext.awt.TranscodingHintKey already
registered
        at
java.awt.RenderingHints$Key.recordIdentity(RenderingHints.java:45)
        at java.awt.RenderingHints$Key.<init>(RenderingHints.java:64)
        at org.apache.batik.ext.awt.TranscodingHintKey.<init>(Unknown
Source)
        at org.apache.batik.ext.awt.RenderingHintsKeyExt.<clinit>(Unknown
Source)
        at org.apache.batik.gvt.AbstractGraphicsNode.paint(Unknown Source)
        at
org.apache.fop.render.pdf.PDFRenderer.renderSVGDocument(PDFRenderer.java:468)
        at
org.apache.fop.render.pdf.PDFRenderer.renderSVGArea(PDFRenderer.java:382)
        at org.apache.fop.svg.SVGArea.render(SVGArea.java:58)
        at
org.apache.fop.render.pdf.PDFRenderer.renderForeignObjectArea(PDFRenderer.java:366)
        at
org.apache.fop.layout.inline.ForeignObjectArea.render(ForeignObjectArea.java:50)
        at
org.apache.fop.render.AbstractRenderer.renderLineArea(AbstractRenderer.java:223)
        at org.apache.fop.layout.LineArea.render(LineArea.java:163)
        at
org.apache.fop.render.AbstractRenderer.renderBlockArea(AbstractRenderer.java:192)
        at org.apache.fop.layout.BlockArea.render(BlockArea.java:82)
        at
org.apache.fop.render.AbstractRenderer.renderAreaContainer(AbstractRenderer.java:158)
        at
org.apache.fop.layout.AreaContainer.render(AreaContainer.java:38)
        at
....
org.apache.fop.render.AbstractRenderer.renderAreaContainer(AbstractRenderer.java:158)
        at org.apache.fop.layout.ColumnArea.render(ColumnArea.java:33)
        at
org.apache.fop.render.AbstractRenderer.renderSpanArea(AbstractRenderer.java:58)
        at org.apache.fop.layout.SpanArea.render(SpanArea.java:53)
        at
org.apache.fop.render.AbstractRenderer.renderBodyAreaContainer(AbstractRenderer.java:114)
        at
org.apache.fop.render.pdf.PDFRenderer.renderPage(PDFRenderer.java:732)
        at
org.apache.fop.render.pdf.PDFRenderer.render(PDFRenderer.java:700)
        at
org.apache.fop.apps.StreamRenderer.queuePage(StreamRenderer.java:217)
        at org.apache.fop.layout.AreaTree.addPage(AreaTree.java:81)
        at
org.apache.fop.fo.pagination.PageSequence.format(PageSequence.java:307)
        at
org.apache.fop.apps.StreamRenderer.render(StreamRenderer.java:200)
        at
org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:182)
        at
org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1403)
        at
org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1550)
        at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1149)
        at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
        at
org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
        at org.apache.fop.apps.Driver.render(Driver.java:481)
        at org.apache.fop.apps.Driver.run(Driver.java:554)
        at
com.xxx.xxx.pdfgenerator.FOPBridge.renderFO(FOPBridge.java:60)
        at
...
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
        at
com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:82)
        at com.caucho.server.http.Invocation.service(Invocation.java:277)
        at
com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:129)
        at
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:216)
        at
com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:158)
        at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
        at java.lang.Thread.run(Thread.java:484)

...

[2002/03/28 11:23:35] null
java.lang.NoClassDefFoundError
        at org.apache.batik.gvt.AbstractGraphicsNode.paint(Unknown Source)
        at
org.apache.fop.render.pdf.PDFRenderer.renderSVGDocument(PDFRenderer.java:468)
        at
org.apache.fop.render.pdf.PDFRenderer.renderSVGArea(PDFRenderer.java:382)
        at org.apache.fop.svg.SVGArea.render(SVGArea.java:58)
        at
org.apache.fop.render.pdf.PDFRenderer.renderForeignObjectArea(PDFRenderer.java:366)
        at
org.apache.fop.layout.inline.ForeignObjectArea.render(ForeignObjectArea.java:50)
        at
org.apache.fop.render.AbstractRenderer.renderLineArea(AbstractRenderer.java:223)
        at org.apache.fop.layout.LineArea.render(LineArea.java:163)
        at
org.apache.fop.render.AbstractRenderer.renderBlockArea(AbstractRenderer.java:192)
        at org.apache.fop.layout.BlockArea.render(BlockArea.java:82)
        at
org.apache.fop.render.AbstractRenderer.renderAreaContainer(AbstractRenderer.java:158)
        at
....



---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xxxxxxxxxxxxxx
For additional commands, e-mail: batik-users-help@xxxxxxxxxxxxxx




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
boot-loaders.gr...    php.pear.genera...    debugging.valgr...    kde.redhat.user...    text.xml.xsl.ge...    culture.languag...    hardware.microc...    java.servicemix...    redhat.release....    web.zope.plone....    user-groups.lin...    opendarwin.webk...    video.mjpeg.use...    sysutils.bcfg2....    encryption.gpg....    lx-office.devel...    xfree86.forum/2...    mail.mutt.devel...    acpi.devel/2003...    qnx.openqnx.dev...    network.irc.irs...    freebsd.devel.m...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe