Bug 22408 - Nullpointer Exception when using units in svg:use
Summary: Nullpointer Exception when using units in svg:use
Status: CLOSED FIXED
Alias: None
Product: Fop - Now in Jira
Classification: Unclassified
Component: svg (show other bugs)
Version: 0.20.5
Hardware: PC All
: P3 normal
Target Milestone: ---
Assignee: fop-dev
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-08-14 08:33 UTC by Gis van Rossum
Modified: 2012-04-01 06:30 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gis van Rossum 2003-08-14 08:33:18 UTC
Hello,

I'm trying to render the follwing code using FOP 0.20.5 (Platform is Win2k, 
j2sdk1.4.0).

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
	<fo:layout-master-set>
		<fo:simple-page-master master-name="title-page" page-
width="21cm" page-height="29.7cm" margin-top="6cm" margin-bottom="2px" margin-
left="2cm" margin-right="2cm">
			<fo:region-body margin-top="0px"></fo:region-body>
		</fo:simple-page-master>
		<fo:page-sequence-master master-name="title">
			<fo:single-page-master-reference master-
reference="title-page"></fo:single-page-master-reference>
		</fo:page-sequence-master>
	</fo:layout-master-set>
	<fo:page-sequence master-reference="title">
		<fo:flow flow-name="xsl-region-body">
			<fo:block>
				<fo:instream-foreign-object>
					<svg:svg viewBox="0 0 100 100" 
width="100" height="50" xmlns:svg="http://www.w3.org/2000/svg" 
xmlns:xlink="http://www.w3.org/1999/xlink">
					<svg:defs>
						<svg:polygon id="Star" points="-
4,-1 -1,-1 0,-4 1,-1 4,-1 2,1 3,4 0,2 -3,4 -2,1"/>
					</svg:defs>
					<svg:rect width="100" height="100" 
x="0" y="0" fill="yellow"/>
					<svg:use x="50%" y="50%" 
xlink:href="#Star" style="fill:limegreen;stroke:black;stroke-width:0.7px;"/>
					</svg:svg>
				</fo:instream-foreign-object>
			</fo:block>
		</fo:flow>
	</fo:page-sequence>
</fo:root>

when executing FOP with:

fop svgUse.fo test.pdf

I get the following NullpointerException:

[INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
[INFO] FOP 0.20.5
[INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
[INFO] building formatting object tree
[INFO] setting up fonts
[INFO] [1]
[ERROR] svg graphic could not be built: null
java.lang.NullPointerException
        at org.apache.batik.bridge.UnitProcessor$DefaultContext.getViewportWidth
(UnitProcessor.java:382)
        at org.apache.batik.util.UnitProcessor.percentagesToPixels
(UnitProcessor.java:223)
        at org.apache.batik.util.UnitProcessor.svgToUserSpace
(UnitProcessor.java:166)
        at org.apache.batik.util.UnitProcessor.svgToUserSpace
(UnitProcessor.java:131)
        at org.apache.batik.bridge.UnitProcessor.svgToUserSpace
(UnitProcessor.java:313)
        at 
org.apache.batik.bridge.UnitProcessor.svgHorizontalCoordinateToUserSpace
(UnitProcessor.java:247)
        at org.apache.batik.bridge.SVGUseElementBridge.computeTransform
(SVGUseElementBridge.java:178)
        at org.apache.batik.bridge.SVGUseElementBridge.createGraphicsNode
(SVGUseElementBridge.java:152)
        at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode
(GVTBuilder.java:182)
        at org.apache.batik.bridge.GVTBuilder.buildComposite
(GVTBuilder.java:148)
        at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:76)
        at org.apache.fop.render.pdf.PDFRenderer.renderSVGDocument
(PDFRenderer.java:590)
        at org.apache.fop.render.pdf.PDFRenderer.renderSVGArea
(PDFRenderer.java:549)
        at org.apache.fop.svg.SVGArea.render(SVGArea.java:98)
        at org.apache.fop.render.pdf.PDFRenderer.renderForeignObjectArea
(PDFRenderer.java:533)
        at org.apache.fop.layout.inline.ForeignObjectArea.render
(ForeignObjectArea.java:89)
        at org.apache.fop.render.AbstractRenderer.renderLineArea
(AbstractRenderer.java:516)
        at org.apache.fop.layout.LineArea.render(LineArea.java:519)
        at org.apache.fop.render.AbstractRenderer.renderBlockArea
(AbstractRenderer.java:485)
        at org.apache.fop.layout.BlockArea.render(BlockArea.java:117)
        at org.apache.fop.render.AbstractRenderer.renderAreaContainer
(AbstractRenderer.java:451)
        at org.apache.fop.layout.ColumnArea.render(ColumnArea.java:71)
        at org.apache.fop.render.AbstractRenderer.renderSpanArea
(AbstractRenderer.java:100)
        at org.apache.fop.layout.SpanArea.render(SpanArea.java:94)
        at org.apache.fop.render.AbstractRenderer.renderBodyAreaContainer
(AbstractRenderer.java:368)
        at org.apache.fop.layout.BodyAreaContainer.render
(BodyAreaContainer.java:137)
        at org.apache.fop.render.AbstractRenderer.renderRegions
(AbstractRenderer.java:529)
        at org.apache.fop.render.pdf.PDFRenderer.renderPage
(PDFRenderer.java:904)
        at org.apache.fop.render.pdf.PDFRenderer.render(PDFRenderer.java:880)
        at org.apache.fop.apps.StreamRenderer.queuePage(StreamRenderer.java:302)
        at org.apache.fop.layout.AreaTree.addPage(AreaTree.java:108)
        at org.apache.fop.fo.pagination.PageSequence.makePage
(PageSequence.java:415)
        at org.apache.fop.fo.pagination.PageSequence.format
(PageSequence.java:338)
        at org.apache.fop.apps.StreamRenderer.render(StreamRenderer.java:262)
        at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:223)
        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement
(Unknown Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.
dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument
(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.fop.apps.Driver.render(Driver.java:498)
        at org.apache.fop.apps.CommandLineStarter.run
(CommandLineStarter.java:106)
        at org.apache.fop.apps.Fop.main(Fop.java:62)
[INFO] Parsing of document complete, stopping renderer

I tested the same svg code in Batik's SVG Viewer Batik-Squiggle without any 
problem. 

When I remove the '%' from the positioning attributes x and y of svg:use, there 
is no problem, except from the fact that the image that is produced is not what 
I meant. The same problem exists when I use 'cm' instead of '%'.

I first posted this question in Batik's mailinglist. We concluded that the 
problem lies within FOP, it seems that "FOP doesn't pass the svg element to 
Batiks bridge".

Any suggestions?

thanx & greetings
Comment 1 Pascal Sancho 2007-11-20 00:30:21 UTC
Fixed in FOP 0.94 and probably earlier versions
Comment 2 Glenn Adams 2012-04-01 06:30:03 UTC
batch transition pre-FOP1.0 resolved+fixed bugs to closed+fixed