I was running squiggle to view a document and this exception got spit out. Weirdly, the problem is not reproducible... i.e., further attempts to repeat it by doing the exact same thing were unsuccessful. Possibly relevant facts about the document: - It defines a few SVG fonts - It includes xlink:href references to other SVG documents java.lang.NegativeArraySizeException at java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:44) at java.lang.StringBuffer.<init>(StringBuffer.java:92) at org.apache.batik.gvt.text.BidiAttributedCharacterIterator.<init>(Unknown Source) at org.apache.batik.gvt.renderer.StrokingTextPainter.computeTextRuns(Unknown Source) at org.apache.batik.gvt.renderer.StrokingTextPainter.getTextRuns(Unknown Source) at org.apache.batik.gvt.renderer.StrokingTextPainter.getBounds2D(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.getPrimitiveBounds(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.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.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.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.ImageNode.getPrimitiveBounds(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.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.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.repaint(Unknown Source) at org.apache.batik.gvt.renderer.StaticRenderer.repaint(Unknown Source) at org.apache.batik.swing.gvt.GVTTreeRenderer.run(Unknown Source)