k.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:282)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:287)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getPrimitiveBounds(CompositeGraphicsNode.java:238)
at
org.apache.batik.gvt.filter.GraphicsNodeRable8Bit.getBounds2D(GraphicsNodeRable8Bit.java:144)
at
org.apache.batik.gvt.filter.GraphicsNodeRable8Bit.createRendering(GraphicsNodeRable8Bit.java:288)
at
org.apache.batik.gvt.renderer.StaticRenderer.renderGNR(StaticRenderer.java:426)
at
org.apache.batik.gvt.renderer.StaticRenderer.updateWorkingBuffers(StaticRenderer.java:458)
at
org.apache.batik.gvt.renderer.StaticRenderer.clearOffScreen(StaticRenderer.java:297)
at
org.apache.batik.swing.gvt.GVTTreeRenderer.run(GVTTreeRenderer.java:98)
...
(java.nio.channels.ClosedChannelException repeats ad infinitum)
Steps to Reproduce (be specific):
Option 1
Turn on tracing in the Java Control panel
Execute:
javaws http://nagoya.apache.org/batik_1.1/batikNagoya.jnlp
Shortly after the main window appears it will appear to hang (chewing CPU).
Close the window and examine the Web Start .trace file
Option 2
Download and extract
http://archive.apache.org/dist/xml/batik/batik-1.1.zip
Execute:
java -classpath
batik-svgbrowser.jar;lib\batik-ext.jar;lib\batik-util.jar;lib\batik-awt-util.jar;lib\batik-gui-util.jar;lib\batik-dom.jar;lib\batik-css.jar;lib\batik-svg-dom.jar;lib\batik-gvt.jar;lib\batik-parser.jar;lib\batik-script.jar;lib\batik-transcoder.jar;lib\batik-bridge.jar;lib\batik-xml.jar;lib\crimson-parser.jar;js.jar
org.apache.batik.apps.svgbrowser.Main -font-size 10
http://nagoya.apache.org/batik_1.1/start.svg
Wait for the stack trace
Option 3
Download and extract
http://archive.apache.org/dist/xml/batik/batik-src-1.1.zip
Modify the build.xml so that the javac task specifies debug="on"
Rebuild (I used Ant 1.5.3)
Execute:
java -classpath
batik-svgbrowser.jar;lib\batik-ext.jar;lib\batik-util.jar;lib\batik-awt-util.jar;lib\batik-gui-util.jar;lib\batik-dom.jar;lib\batik-css.jar;lib\batik-svg-dom.jar;lib\batik-gvt.jar;lib\batik-parser.jar;lib\batik-script.jar;lib\batik-transcoder.jar;lib\batik-bridge.jar;lib\batik-xml.jar;lib\crimson-parser.jar;js.jar
org.apache.batik.apps.svgbrowser.Main -font-size 10
http://nagoya.apache.org/batik_1.1/start.svg
Wait for the stack trace
###@###.### 2004-01-23
2SE Version (please include all output from java -version flag):
java version "1.5.0-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-beta-b32)
Java HotSpot(TM) Client VM (build 1.5.0-beta-b32, mixed mode)
Does this problem occur on J2SE 1.4 or 1.4.1 or 1.4.2? Yes / No (pick one)
No, works fine with 1.4.2 and build32 for RedHat 9.0
Operating System Configuration Information (be specific):
Windows 2000 Professional Service Pack 2
Hardware Configuration Information (be specific):
Custom built Athlon 600MHz, TNT2 AGP, 384MB
Bug Description:
The Batik 1.1 SVG Browser Demo (http://xml.apache.org/batik) fails to
start on Windows 2000 with Java 1.5.0-b32. It should open a Swing UI
and render an SVG file (http://nagoya.apache.org/batik_1.1/start.svg).
Instead, a java.nio.channels.ClosedByInterruptException is thrown,
followed by a (seemingly never-ending) sequence of
java.nio.channels.ClosedChannelExceptions.
It appears to work fine using Java 1.4.2 on Windows and Red Hat
Linux 9.0 (x86), and with Java 1.5.0-b32 under Red Hat 9.0.
The SVG Browser is available as a Web Start application at
http://nagoya.apache.org/batik_1.1/batikNagoya.jnlp
It may also be run standalone, using the build available at
http://archive.apache.org/dist/xml/batik/batik-1.1.zip
The build helpfully omits debugging information, so to gain a more useful
stack trace, the source is available at
http://archive.apache.org/dist/xml/batik/batik-src-1.1.zip
Any one of the above will adequately demonstrate the problem.
The .trace file from running the Web Start version is...
Ignored exception: JNLPException[category: Download Error : Exception:
java.io.IOException: HTTP response 404 : LaunchDesc: null ]
Ignored exception: JNLPException[category: Download Error : Exception:
java.io.IOException: HTTP response 404 : LaunchDesc: null ]
java.nio.channels.ClosedByInterruptException
at java.nio.channels.spi.AbstractInterruptibleChannel.end(Unknown
Source)
at sun.nio.ch.FileChannelImpl.position(Unknown Source)
at sun.font.TrueTypeFont.readBlock(Unknown Source)
at sun.font.FileFont.getGlyphImage(Native Method)
at sun.font.FileFontStrike.getGlyphImagePtr(Unknown Source)
at sun.font.FileFontStrike.getGlyphMetrics(Unknown Source)
at sun.font.SunLayoutEngine.nativeLayout(Native Method)
at sun.font.SunLayoutEngine.layout(Unknown Source)
at sun.font.GlyphLayout$EngineRecord.layout(Unknown Source)
at sun.font.GlyphLayout.layout(Unknown Source)
at sun.font.ExtendedTextSourceLabel.createGV(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getGV(Unknown Source)
at sun.font.ExtendedTextSourceLabel.createLogicalBounds(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getAdvance(Unknown Source)
at java.awt.font.TextLine.init(Unknown Source)
at java.awt.font.TextLine.<init>(Unknown Source)
at java.awt.font.TextLine.createLineFromText(Unknown Source)
at java.awt.font.TextLine.standardCreateTextLine(Unknown Source)
at java.awt.font.TextLayout.standardInit(Unknown Source)
at java.awt.font.TextLayout.<init>(Unknown Source)
at
org.apache.batik.gvt.text.BidiAttributedCharacterIterator.<init>(Unknown
Source)
at
org.apache.batik.gvt.renderer.StrokingTextPainter.getTextRuns(Unknown
Source)
at
org.apache.batik.gvt.renderer.StrokingTextPainter.getOutline(Unknown Source)
at
org.apache.batik.gvt.renderer.StrokingTextPainter.getBounds(Unknown Source)
at
org.apache.batik.gvt.renderer.BasicTextPainter.getPaintedBounds(Unknown
Source)
at org.apache.batik.gvt.TextNode.getPrimitiveBounds(Unknown Source)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedPrimitiveBounds(Unknown
Source)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown
Source)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown
Source)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown
Source)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown
Source)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown
Source)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown
Source)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown
Source)
at
org.apache.batik.gvt.CompositeGraphicsNode.getPrimitiveBounds(Unknown
Source)
at
org.apache.batik.gvt.filter.GraphicsNodeRable8Bit.getBounds2D(Unknown
Source)
at
org.apache.batik.gvt.filter.GraphicsNodeRable8Bit.createRendering(Unknown
Source)
at org.apache.batik.gvt.renderer.StaticRenderer.renderGNR(Unknown
Source)
at
org.apache.batik.gvt.renderer.StaticRenderer.updateWorkingBuffers(Unknown
Source)
at
org.apache.batik.gvt.renderer.StaticRenderer.clearOffScreen(Unknown Source)
at org.apache.batik.swing.gvt.GVTTreeRenderer.run(Unknown Source)
java.nio.channels.ClosedChannelException
at sun.nio.ch.FileChannelImpl.ensureOpen(Unknown Source)
at sun.nio.ch.FileChannelImpl.position(Unknown Source)
at sun.font.TrueTypeFont.readBlock(Unknown Source)
at sun.font.FileFont.getGlyphImage(Native Method)
at sun.font.FileFontStrike.getGlyphImagePtr(Unknown Source)
at sun.font.FileFontStrike.getGlyphMetrics(Unknown Source)
at sun.font.SunLayoutEngine.nativeLayout(Native Method)
at sun.font.SunLayoutEngine.layout(Unknown Source)
at sun.font.GlyphLayout$EngineRecord.layout(Unknown Source)
at sun.font.GlyphLayout.layout(Unknown Source)
at sun.font.ExtendedTextSourceLabel.createGV(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getGV(Unknown Source)
at sun.font.ExtendedTextSourceLabel.createLogicalBounds(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getAdvance(Unknown Source)
at java.awt.font.TextLine.init(Unknown Source)
at java.awt.font.TextLine.<init>(Unknown Source)
at java.awt.font.TextLine.createLineFromText(Unknown Source)
at java.awt.font.TextLine.standardCreateTextLine(Unknown Source)
at java.awt.font.TextLayout.standardInit(Unknown Source)
at java.awt.font.TextLayout.<init>(Unknown Source)
at
org.apache.batik.gvt.text.BidiAttributedCharacterIterator.<init>(Unknown
Source)
at
org.apache.batik.gvt.renderer.StrokingTextPainter.getTextRuns(Unknown
Source)
at
org.apache.batik.gvt.renderer.StrokingTextPainter.getOutline(Unknown Source)
at
org.apache.batik.gvt.renderer.StrokingTextPainter.getBounds(Unknown Source)
at
org.apache.batik.gvt.renderer.BasicTextPainter.getPaintedBounds(Unknown
Source)
at org.apache.batik.gvt.TextNode.getPrimitiveBounds(Unknown Source)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedPrimitiveBounds(Unknown
Source)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown
Source)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown
Source)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown
Source)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown
Source)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown
Source)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown
Source)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown
Source)
at
org.apache.batik.gvt.CompositeGraphicsNode.getPrimitiveBounds(Unknown
Source)
at
org.apache.batik.gvt.filter.GraphicsNodeRable8Bit.getBounds2D(Unknown
Source)
at
org.apache.batik.gvt.filter.GraphicsNodeRable8Bit.createRendering(Unknown
Source)
at org.apache.batik.gvt.renderer.StaticRenderer.renderGNR(Unknown
Source)
at
org.apache.batik.gvt.renderer.StaticRenderer.updateWorkingBuffers(Unknown
Source)
at
org.apache.batik.gvt.renderer.StaticRenderer.clearOffScreen(Unknown Source)
at org.apache.batik.swing.gvt.GVTTreeRenderer.run(Unknown Source)
...
(java.nio.channels.ClosedChannelException repeats ad infinitum)
Rebuilding Batik 1.1 to include debug information, and running
standalone yields
the following, slightly different, stack trace:
java.nio.channels.ClosedByInterruptException
at
java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:184)
at sun.nio.ch.FileChannelImpl.position(FileChannelImpl.java:293)
at sun.font.TrueTypeFont.readBlock(TrueTypeFont.java:304)
at sun.font.FileFont.getGlyphOutline(Native Method)
at sun.font.FileFontStrike.getGlyphOutline(FileFontStrike.java:648)
at
sun.font.CompositeStrike.getGlyphOutline(CompositeStrike.java:151)
at
sun.font.StandardGlyphVector$GlyphStrike.appendGlyphOutline(StandardGlyphVector.java:1722)
at
sun.font.StandardGlyphVector.getGlyphsOutline(StandardGlyphVector.java:1099)
at
sun.font.StandardGlyphVector.getGlyphOutline(StandardGlyphVector.java:329)
at
org.apache.batik.gvt.font.AWTGVTGlyphVector.getGlyphOutline(AWTGVTGlyphVector.java:361)
at
org.apache.batik.gvt.font.AWTGVTGlyphVector.getOutline(AWTGVTGlyphVector.java:496)
at
org.apache.batik.gvt.text.GlyphLayout.getOutline(GlyphLayout.java:171)
at
org.apache.batik.gvt.renderer.StrokingTextPainter.getOutline(StrokingTextPainter.java:811)
at
org.apache.batik.gvt.renderer.StrokingTextPainter.getBounds(StrokingTextPainter.java:778)
at
org.apache.batik.gvt.renderer.BasicTextPainter.getPaintedBounds(BasicTextPainter.java:116)
at
org.apache.batik.gvt.TextNode.getPrimitiveBounds(TextNode.java:217)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedPrimitiveBounds(AbstractGraphicsNode.java:877)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:282)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:282)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:282)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:282)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:282)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:282)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:287)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getPrimitiveBounds(CompositeGraphicsNode.java:238)
at
org.apache.batik.gvt.filter.GraphicsNodeRable8Bit.getBounds2D(GraphicsNodeRable8Bit.java:144)
at
org.apache.batik.gvt.filter.GraphicsNodeRable8Bit.createRendering(GraphicsNodeRable8Bit.java:288)
at
org.apache.batik.gvt.renderer.StaticRenderer.renderGNR(StaticRenderer.java:426)
at
org.apache.batik.gvt.renderer.StaticRenderer.updateWorkingBuffers(StaticRenderer.java:458)
at
org.apache.batik.gvt.renderer.StaticRenderer.clearOffScreen(StaticRenderer.java:297)
at
org.apache.batik.swing.gvt.GVTTreeRenderer.run(GVTTreeRenderer.java:98)
java.nio.channels.ClosedChannelException
at sun.nio.ch.FileChannelImpl.ensureOpen(FileChannelImpl.java:89)
at sun.nio.ch.FileChannelImpl.position(FileChannelImpl.java:276)
at sun.font.TrueTypeFont.readBlock(TrueTypeFont.java:304)
at sun.font.FileFont.getGlyphOutline(Native Method)
at sun.font.FileFontStrike.getGlyphOutline(FileFontStrike.java:648)
at
sun.font.CompositeStrike.getGlyphOutline(CompositeStrike.java:151)
at
sun.font.StandardGlyphVector$GlyphStrike.appendGlyphOutline(StandardGlyphVector.java:1722)
at
sun.font.StandardGlyphVector.getGlyphsOutline(StandardGlyphVector.java:1099)
at
org.apache.batik.gvt.font.AWTGVTGlyphVector.getGlyphOutline(AWTGVTGlyphVector.java:361)
at
org.apache.batik.gvt.font.AWTGVTGlyphVector.getOutline(AWTGVTGlyphVector.java:496)
at
org.apache.batik.gvt.text.GlyphLayout.getOutline(GlyphLayout.java:171)
at
org.apache.batik.gvt.renderer.StrokingTextPainter.getOutline(StrokingTextPainter.java:811)
at
org.apache.batik.gvt.renderer.StrokingTextPainter.getBounds(StrokingTextPainter.java:778)
at
org.apache.batik.gvt.renderer.BasicTextPainter.getPaintedBounds(BasicTextPainter.java:116)
at
org.apache.batik.gvt.TextNode.getPrimitiveBounds(TextNode.java:217)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedPrimitiveBounds(AbstractGraphicsNode.java:877)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:282)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:282)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:282)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:282)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(CompositeGraphicsNode.java:282)
at
org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(AbstractGraphicsNode.java:843)
at
org.apache.bati