xmlgraphics-batik-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gustavo Juan Cairo (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (BATIK-1246) [PATCH] PrettyPrinter fails when removing DOCTYPE with internal DTD
Date Thu, 24 Jan 2019 20:25:00 GMT

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

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

[~ssteiner1] - done

> [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


Mime
View raw message