Skip to content

Commit be5e76b

Browse files
BATIK-1318: Validate throws NPE
1 parent fa93a4e commit be5e76b

File tree

2 files changed

+55
-9
lines changed

2 files changed

+55
-9
lines changed

Diff for: batik-anim/src/main/resources/org/apache/batik/anim/dom/resources/dtdids.properties

+9-9
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@ publicIds = \
3232
-//W3C//DTD SVG 1.1 Tiny//EN\
3333
-//W3C//DTD SVG 1.2//EN
3434

35-
systemId.-//W3C//DTD_SVG_1.0//EN = resources/svg10.dtd
36-
systemId.-//W3C//DTD_SVG_20010904//EN = resources/svg10.dtd
37-
systemId.-//W3C//DTD_SVG_20001102//EN = resources/svg10.dtd
38-
systemId.-//W3C//DTD_SVG_20000802//EN = resources/svg10.dtd
39-
systemId.-//W3C//DTD_SVG_20000303_Stylable//EN = resources/svg10.dtd
35+
systemId.-//W3C//DTD_SVG_1.0//EN = /org/apache/batik/dom/svg/resources/svg10.dtd
36+
systemId.-//W3C//DTD_SVG_20010904//EN = /org/apache/batik/dom/svg/resources/svg10.dtd
37+
systemId.-//W3C//DTD_SVG_20001102//EN = /org/apache/batik/dom/svg/resources/svg10.dtd
38+
systemId.-//W3C//DTD_SVG_20000802//EN = /org/apache/batik/dom/svg/resources/svg10.dtd
39+
systemId.-//W3C//DTD_SVG_20000303_Stylable//EN = /org/apache/batik/dom/svg/resources/svg10.dtd
4040

41-
systemId.-//W3C//DTD_SVG_1.1//EN = resources/svg11-flat.dtd
42-
systemId.-//W3C//DTD_SVG_1.1_Basic//EN = resources/svg11-basic-flat.dtd
43-
systemId.-//W3C//DTD_SVG_1.1_Tiny//EN = resources/svg11-tiny-flat.dtd
44-
systemId.-//W3C//DTD_SVG_1.2//EN = resources/svg12-flat.dtd
41+
systemId.-//W3C//DTD_SVG_1.1//EN = /org/apache/batik/dom/svg/resources/svg11-flat.dtd
42+
systemId.-//W3C//DTD_SVG_1.1_Basic//EN = /org/apache/batik/dom/svg/resources/svg11-basic-flat.dtd
43+
systemId.-//W3C//DTD_SVG_1.1_Tiny//EN = /org/apache/batik/dom/svg/resources/svg11-tiny-flat.dtd
44+
systemId.-//W3C//DTD_SVG_1.2//EN = /org/apache/batik/dom/svg/resources/svg12-flat.dtd
4545

4646
#
4747
# The skippablePublicIds property represents the list of SVG DTD's we
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
3+
Licensed to the Apache Software Foundation (ASF) under one or more
4+
contributor license agreements. See the NOTICE file distributed with
5+
this work for additional information regarding copyright ownership.
6+
The ASF licenses this file to You under the Apache License, Version 2.0
7+
(the "License"); you may not use this file except in compliance with
8+
the License. You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing, software
13+
distributed under the License is distributed on an "AS IS" BASIS,
14+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
See the License for the specific language governing permissions and
16+
limitations under the License.
17+
18+
*/
19+
package org.apache.batik.svg;
20+
21+
import java.io.ByteArrayInputStream;
22+
import java.io.ByteArrayOutputStream;
23+
import org.apache.batik.transcoder.TranscoderInput;
24+
import org.apache.batik.transcoder.TranscoderOutput;
25+
import org.apache.batik.transcoder.image.ImageTranscoder;
26+
import org.apache.batik.transcoder.image.PNGTranscoder;
27+
import org.junit.Assert;
28+
import org.junit.Test;
29+
30+
public class ValidateDTDTestCase {
31+
@Test
32+
public void testValidateDTD() throws Exception {
33+
String svgContent = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
34+
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n" +
35+
"<svg width=\"100\" height=\"100\" xmlns=\"http://www.w3.org/2000/svg\">\n" +
36+
" <rect fill=\"#ff0000\" x=\"0\" y=\"0\" width=\"50\" height=\"50\"/>\n" +
37+
"</svg>";
38+
PNGTranscoder transcoder = new PNGTranscoder();
39+
transcoder.addTranscodingHint(ImageTranscoder.KEY_XML_PARSER_VALIDATING, Boolean.TRUE);
40+
TranscoderInput input = new TranscoderInput(new ByteArrayInputStream(svgContent.getBytes()));
41+
ByteArrayOutputStream ostream = new ByteArrayOutputStream();
42+
TranscoderOutput output = new TranscoderOutput(ostream);
43+
transcoder.transcode(input, output);
44+
Assert.assertNotNull(ostream.toByteArray());
45+
}
46+
}

0 commit comments

Comments
 (0)