From be5e76b9b88aaaeab73a55916b515e01ef98ffdd Mon Sep 17 00:00:00 2001 From: Simon Steiner Date: Tue, 18 Jun 2024 10:16:23 +0100 Subject: [PATCH] BATIK-1318: Validate throws NPE --- .../anim/dom/resources/dtdids.properties | 18 ++++---- .../apache/batik/svg/ValidateDTDTestCase.java | 46 +++++++++++++++++++ 2 files changed, 55 insertions(+), 9 deletions(-) create mode 100644 batik-test-old/src/test/java/org/apache/batik/svg/ValidateDTDTestCase.java diff --git a/batik-anim/src/main/resources/org/apache/batik/anim/dom/resources/dtdids.properties b/batik-anim/src/main/resources/org/apache/batik/anim/dom/resources/dtdids.properties index 8d6f882029..ec4ae38fef 100644 --- a/batik-anim/src/main/resources/org/apache/batik/anim/dom/resources/dtdids.properties +++ b/batik-anim/src/main/resources/org/apache/batik/anim/dom/resources/dtdids.properties @@ -32,16 +32,16 @@ publicIds = \ -//W3C//DTD SVG 1.1 Tiny//EN\ -//W3C//DTD SVG 1.2//EN -systemId.-//W3C//DTD_SVG_1.0//EN = resources/svg10.dtd -systemId.-//W3C//DTD_SVG_20010904//EN = resources/svg10.dtd -systemId.-//W3C//DTD_SVG_20001102//EN = resources/svg10.dtd -systemId.-//W3C//DTD_SVG_20000802//EN = resources/svg10.dtd -systemId.-//W3C//DTD_SVG_20000303_Stylable//EN = resources/svg10.dtd +systemId.-//W3C//DTD_SVG_1.0//EN = /org/apache/batik/dom/svg/resources/svg10.dtd +systemId.-//W3C//DTD_SVG_20010904//EN = /org/apache/batik/dom/svg/resources/svg10.dtd +systemId.-//W3C//DTD_SVG_20001102//EN = /org/apache/batik/dom/svg/resources/svg10.dtd +systemId.-//W3C//DTD_SVG_20000802//EN = /org/apache/batik/dom/svg/resources/svg10.dtd +systemId.-//W3C//DTD_SVG_20000303_Stylable//EN = /org/apache/batik/dom/svg/resources/svg10.dtd -systemId.-//W3C//DTD_SVG_1.1//EN = resources/svg11-flat.dtd -systemId.-//W3C//DTD_SVG_1.1_Basic//EN = resources/svg11-basic-flat.dtd -systemId.-//W3C//DTD_SVG_1.1_Tiny//EN = resources/svg11-tiny-flat.dtd -systemId.-//W3C//DTD_SVG_1.2//EN = resources/svg12-flat.dtd +systemId.-//W3C//DTD_SVG_1.1//EN = /org/apache/batik/dom/svg/resources/svg11-flat.dtd +systemId.-//W3C//DTD_SVG_1.1_Basic//EN = /org/apache/batik/dom/svg/resources/svg11-basic-flat.dtd +systemId.-//W3C//DTD_SVG_1.1_Tiny//EN = /org/apache/batik/dom/svg/resources/svg11-tiny-flat.dtd +systemId.-//W3C//DTD_SVG_1.2//EN = /org/apache/batik/dom/svg/resources/svg12-flat.dtd # # The skippablePublicIds property represents the list of SVG DTD's we diff --git a/batik-test-old/src/test/java/org/apache/batik/svg/ValidateDTDTestCase.java b/batik-test-old/src/test/java/org/apache/batik/svg/ValidateDTDTestCase.java new file mode 100644 index 0000000000..6caabbaed1 --- /dev/null +++ b/batik-test-old/src/test/java/org/apache/batik/svg/ValidateDTDTestCase.java @@ -0,0 +1,46 @@ +/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + */ +package org.apache.batik.svg; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import org.apache.batik.transcoder.TranscoderInput; +import org.apache.batik.transcoder.TranscoderOutput; +import org.apache.batik.transcoder.image.ImageTranscoder; +import org.apache.batik.transcoder.image.PNGTranscoder; +import org.junit.Assert; +import org.junit.Test; + +public class ValidateDTDTestCase { + @Test + public void testValidateDTD() throws Exception { + String svgContent = "\n" + + "\n" + + "\n" + + " \n" + + ""; + PNGTranscoder transcoder = new PNGTranscoder(); + transcoder.addTranscodingHint(ImageTranscoder.KEY_XML_PARSER_VALIDATING, Boolean.TRUE); + TranscoderInput input = new TranscoderInput(new ByteArrayInputStream(svgContent.getBytes())); + ByteArrayOutputStream ostream = new ByteArrayOutputStream(); + TranscoderOutput output = new TranscoderOutput(ostream); + transcoder.transcode(input, output); + Assert.assertNotNull(ostream.toByteArray()); + } +}