From e0b971bb3c0e30e17c2af5d46438ef2ae56045ae Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Fri, 30 Dec 2016 18:54:47 +0000 Subject: [PATCH] Add test provided via bug 60536 for bug 60526, remove some warnings git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1776622 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/poi/util/SAXHelper.java | 8 ++-- .../org/apache/poi/util/TestSAXHelper.java | 40 +++++++++++++++++++ 2 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 src/ooxml/testcases/org/apache/poi/util/TestSAXHelper.java diff --git a/src/ooxml/java/org/apache/poi/util/SAXHelper.java b/src/ooxml/java/org/apache/poi/util/SAXHelper.java index 3ff70a5be3..41f14fbcc2 100644 --- a/src/ooxml/java/org/apache/poi/util/SAXHelper.java +++ b/src/ooxml/java/org/apache/poi/util/SAXHelper.java @@ -37,7 +37,7 @@ import org.xml.sax.XMLReader; */ public final class SAXHelper { private static final POILogger logger = POILogFactory.getLogger(SAXHelper.class); - private static long lastLog = 0; + private static long lastLog; private SAXHelper() {} @@ -47,7 +47,7 @@ public final class SAXHelper { public static synchronized XMLReader newXMLReader() throws SAXException, ParserConfigurationException { XMLReader xmlReader = saxFactory.newSAXParser().getXMLReader(); xmlReader.setEntityResolver(IGNORING_ENTITY_RESOLVER); - trySetSAXFeature(xmlReader, XMLConstants.FEATURE_SECURE_PROCESSING, true); + trySetSAXFeature(xmlReader, XMLConstants.FEATURE_SECURE_PROCESSING); trySetXercesSecurityManager(xmlReader); return xmlReader; } @@ -67,9 +67,9 @@ public final class SAXHelper { saxFactory.setNamespaceAware(true); } - private static void trySetSAXFeature(XMLReader xmlReader, String feature, boolean enabled) { + private static void trySetSAXFeature(XMLReader xmlReader, String feature) { try { - xmlReader.setFeature(feature, enabled); + xmlReader.setFeature(feature, true); } catch (Exception e) { logger.log(POILogger.WARN, "SAX Feature unsupported", feature, e); } catch (AbstractMethodError ame) { diff --git a/src/ooxml/testcases/org/apache/poi/util/TestSAXHelper.java b/src/ooxml/testcases/org/apache/poi/util/TestSAXHelper.java new file mode 100644 index 0000000000..bb31656f39 --- /dev/null +++ b/src/ooxml/testcases/org/apache/poi/util/TestSAXHelper.java @@ -0,0 +1,40 @@ +/* ==================================================================== + 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.poi.util; + +import javax.xml.XMLConstants; + +import org.junit.Test; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; + +import java.io.ByteArrayInputStream; + +import static org.junit.Assert.*; + +public class TestSAXHelper { + @Test + public void testXMLReader() throws Exception { + XMLReader reader = SAXHelper.newXMLReader(); + assertNotSame(reader, SAXHelper.newXMLReader()); + assertTrue(reader.getFeature(XMLConstants.FEATURE_SECURE_PROCESSING)); + assertEquals(SAXHelper.IGNORING_ENTITY_RESOLVER, reader.getEntityResolver()); + assertNotNull(reader.getProperty("http://apache.org/xml/properties/security-manager")); + + reader.parse(new InputSource(new ByteArrayInputStream("".getBytes()))); + } +} -- 2.39.5