You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by "Gustavo Juan Cairo (JIRA)" <ji...@apache.org> on 2019/02/19 21:14:00 UTC

[jira] [Commented] (BATIK-1246) [PATCH] PrettyPrinter fails when removing DOCTYPE with internal DTD

    [ https://issues.apache.org/jira/browse/BATIK-1246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16772339#comment-16772339 ] 

Gustavo Juan Cairo commented on BATIK-1246:
-------------------------------------------

 

[~ssteiner1] any updated on this?

> [PATCH] PrettyPrinter fails when removing DOCTYPE with internal DTD
> -------------------------------------------------------------------
>
>                 Key: BATIK-1246
>                 URL: https://issues.apache.org/jira/browse/BATIK-1246
>             Project: Batik
>          Issue Type: Bug
>    Affects Versions: 1.10
>            Reporter: Gustavo Juan Cairo
>            Priority: Critical
>              Labels: patch, pull-request-available
>
> This change fixes a bug with PrettyPrinter where, if the `DOCTYPE_REMOVE` option is passed and there is an internal DTD (square brackets) in the DOCTYPE, an exception will always be (incorrectly) thrown.
> I found this while using the `SVGTranscoder` and passing the hint `KEY_DOCTYPE` with value `VALUE_DOCTYPE_REMOVE`. Calling `transcode()` on it fails because of the PrettyPrinter bug. As a consequence, this bug essentially renders the SGV Transcoder useless in some scenarios.
> [You can find the Pull Request here.|https://github.com/apache/batik/pull/16]
>  
> +Replication steps+
>  # Create an SVGTranscoder
>  # Add a transcoding hint: (KEY_DOCTYPE, VALUE_DOCTYPE_REMOVE)
>  # Transcode using an SVG with an internal DTD in the DOCTYPE
>  # Notice an exception with description "end" is incorrectly thrown.
> The following snippet could be used to replicate this:
> {code:java}
> import org.apache.batik.transcoder.TranscoderInput
> import org.apache.batik.transcoder.TranscoderOutput
> import org.apache.batik.transcoder.svg2svg.SVGTranscoder
> String svg = "<!DOCTYPE svg [<!ENTITY test \"TEST\">]><svg xmlns=\"http://www.w3.org/2000/svg\"></svg>"
> StringWriter stringWriter = new StringWriter();
> TranscoderInput input = new TranscoderInput(new StringReader(svg));
> TranscoderOutput output = new TranscoderOutput(stringWriter);
> SVGTranscoder svgTranscoder = new SVGTranscoder();
> svgTranscoder.addTranscodingHint(SVGTranscoder.KEY_DOCTYPE, SVGTranscoder.VALUE_DOCTYPE_REMOVE);
> svgTranscoder.transcode(input, output);
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: batik-dev-help@xmlgraphics.apache.org