diff options
Diffstat (limited to 'java/openjdk6/files/icedtea/openjdk/oj6-20-merge.patch')
-rw-r--r-- | java/openjdk6/files/icedtea/openjdk/oj6-20-merge.patch | 599 |
1 files changed, 0 insertions, 599 deletions
diff --git a/java/openjdk6/files/icedtea/openjdk/oj6-20-merge.patch b/java/openjdk6/files/icedtea/openjdk/oj6-20-merge.patch deleted file mode 100644 index e689c33d8a9f..000000000000 --- a/java/openjdk6/files/icedtea/openjdk/oj6-20-merge.patch +++ /dev/null @@ -1,599 +0,0 @@ -# HG changeset patch -# User andrew -# Date 1383034761 0 -# Tue Oct 29 08:19:21 2013 +0000 -# Node ID 05c35de6d7047c6d6d6e8edc402b7fab861d0a21 -# Parent efb24af909a020f3a3b3d446f6db15fc8b1c309a -OPENJDK6-20: Resolve merge issues with JAXP security fixes -Reviewed-by: omajid - -diff -r efb24af909a0 -r 05c35de6d704 drop_included/jaxp_src/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java ---- jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java Tue Oct 29 08:11:44 2013 +0000 -+++ jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java Tue Oct 29 08:19:21 2013 +0000 -@@ -157,6 +157,25 @@ - } - - /** -+ * Return allowed protocols for accessing external stylesheet. -+ */ -+ public Object getProperty(String name) { -+ if (name.equals(XalanConstants.SECURITY_MANAGER)) { -+ return _xmlSecurityManager; -+ } -+ return null; -+ } -+ -+ /** -+ * Set allowed protocols for accessing external stylesheet. -+ */ -+ public void setProperty(String name, Object value) { -+ if (name.equals(XalanConstants.SECURITY_MANAGER)) { -+ _xmlSecurityManager = (XMLSecurityManager)value; -+ } -+ } -+ -+ /** - * Only for user by the internal TrAX implementation. - */ - public Parser getParser() { -@@ -901,23 +920,4 @@ - return newDataOffset; - } - -- /** -- * Return allowed protocols for accessing external stylesheet. -- */ -- public Object getProperty(String name) { -- if (name.equals(XalanConstants.SECURITY_MANAGER)) { -- return _xmlSecurityManager; -- } -- return null; -- } -- -- /** -- * Set allowed protocols for accessing external stylesheet. -- */ -- public void setProperty(String name, Object value) { -- if (name.equals(XalanConstants.SECURITY_MANAGER)) { -- _xmlSecurityManager = (XMLSecurityManager)value; -- } -- } -- - } -diff -r efb24af909a0 -r 05c35de6d704 drop_included/jaxp_src/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java ---- jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java Tue Oct 29 08:11:44 2013 +0000 -+++ jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java Tue Oct 29 08:19:21 2013 +0000 -@@ -283,6 +283,14 @@ - } else if (name.equals(XalanConstants.SECURITY_MANAGER)) { - return _xmlSecurityManager; - } -+ -+ /** Check to see if the property is managed by the security manager **/ -+ String propertyValue = (_xmlSecurityManager != null) ? -+ _xmlSecurityManager.getLimitAsString(name) : null; -+ if (propertyValue != null) { -+ return propertyValue; -+ } -+ - // Throw an exception for all other attributes - ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_INVALID_ATTR_ERR, name); - throw new IllegalArgumentException(err.toString()); -@@ -383,6 +391,11 @@ - } - } - -+ if (_xmlSecurityManager != null && -+ _xmlSecurityManager.setLimit(name, XMLSecurityManager.State.APIPROPERTY, value)) { -+ return; -+ } -+ - // Throw an exception for all other attributes - final ErrorMsg err - = new ErrorMsg(ErrorMsg.JAXP_INVALID_ATTR_ERR, name); -@@ -856,7 +869,13 @@ - } else { - err = new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR); - } -- TransformerConfigurationException exc = new TransformerConfigurationException(err.toString(), err.getCause()); -+ Throwable cause = err.getCause(); -+ TransformerConfigurationException exc; -+ if (cause != null) { -+ exc = new TransformerConfigurationException(cause.getMessage(), cause); -+ } else { -+ exc = new TransformerConfigurationException(err.toString()); -+ } - - // Pass compiler errors to the error listener - if (_errorListener != null) { -diff -r efb24af909a0 -r 05c35de6d704 drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/PropertyManager.java ---- jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/PropertyManager.java Tue Oct 29 08:11:44 2013 +0000 -+++ jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/PropertyManager.java Tue Oct 29 08:19:21 2013 +0000 -@@ -179,6 +179,13 @@ - return; - } - -+ //check if the property is managed by security manager -+ if (fSecurityManager == null || -+ !fSecurityManager.setLimit(property, XMLSecurityManager.State.APIPROPERTY, value)) { -+ //fall back to the existing property manager -+ supportedProps.put(property, value); -+ } -+ - supportedProps.put(property, value ) ; - if(equivalentProperty != null){ - supportedProps.put(equivalentProperty, value ) ; -diff -r efb24af909a0 -r 05c35de6d704 drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java ---- jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java Tue Oct 29 08:11:44 2013 +0000 -+++ jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderFactoryImpl.java Tue Oct 29 08:19:21 2013 +0000 -@@ -191,6 +191,9 @@ - - public void setFeature(String name, boolean value) - throws ParserConfigurationException { -+ if (features == null) { -+ features = new Hashtable(); -+ } - // If this is the secure processing feature, save it then return. - if (name.equals(XMLConstants.FEATURE_SECURE_PROCESSING)) { - if (System.getSecurityManager() != null && (!value)) { -@@ -199,11 +202,10 @@ - "jaxp-secureprocessing-feature", null)); - } - fSecureProcess = value; -+ features.put(name, value ? Boolean.TRUE : Boolean.FALSE); - return; - } -- if (features == null) { -- features = new Hashtable(); -- } -+ - features.put(name, value ? Boolean.TRUE : Boolean.FALSE); - // Test the feature by possibly throwing SAX exceptions - try { -diff -r efb24af909a0 -r 05c35de6d704 drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java ---- jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java Tue Oct 29 08:11:44 2013 +0000 -+++ jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java Tue Oct 29 08:19:21 2013 +0000 -@@ -253,12 +253,16 @@ - } - } - } else { -- // Let Xerces code handle the property -- domParser.setProperty(name, val); -- } -- } -+ //check if the property is managed by security manager -+ if (fSecurityManager == null || -+ !fSecurityManager.setLimit(name, XMLSecurityManager.State.APIPROPERTY, val)) { -+ //fall back to the existing property manager -+ domParser.setProperty(name, val); -+ } - } -+ } - } -+ } - - /** - * Non-preferred: use the getDOMImplementation() method instead of this -diff -r efb24af909a0 -r 05c35de6d704 drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java ---- jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java Tue Oct 29 08:11:44 2013 +0000 -+++ jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserFactoryImpl.java Tue Oct 29 08:19:21 2013 +0000 -@@ -124,6 +124,7 @@ - "jaxp-secureprocessing-feature", null)); - } - fSecureProcess = value; -+ putInFeatures(name, value); - return; - } - -diff -r efb24af909a0 -r 05c35de6d704 drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java ---- jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java Tue Oct 29 08:11:44 2013 +0000 -+++ jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java Tue Oct 29 08:19:21 2013 +0000 -@@ -344,8 +344,10 @@ - fSecurityManager = new XMLSecurityManager(true); - try { - super.setProperty(SECURITY_MANAGER, fSecurityManager); -- } catch (Exception ex) { -- //shall not happen -+ } catch (SAXException e) { -+ throw new UnsupportedOperationException( -+ SAXMessageFormatter.formatMessage(fConfiguration.getLocale(), -+ "property-not-recognized", new Object [] {SECURITY_MANAGER}), e); - } - } - } -@@ -475,14 +477,21 @@ - return; - } - } -- if (!fInitProperties.containsKey(name)) { -- fInitProperties.put(name, super.getProperty(name)); -- } - /** Forward property to the schema validator if there is one. **/ - if (fSAXParser != null && fSAXParser.fSchemaValidator != null) { - setSchemaValidatorProperty(name, value); - } -- super.setProperty(name, value); -+ -+ //check if the property is managed by security manager -+ if (fSecurityManager == null || -+ !fSecurityManager.setLimit(name, XMLSecurityManager.State.APIPROPERTY, value)) { -+ //fall back to the existing property manager -+ if (!fInitProperties.containsKey(name)) { -+ fInitProperties.put(name, super.getProperty(name)); -+ } -+ super.setProperty(name, value); -+ } -+ - } - - public synchronized Object getProperty(String name) -@@ -495,6 +504,14 @@ - // JAXP 1.2 support - return fSAXParser.schemaLanguage; - } -+ -+ /** Check to see if the property is managed by the security manager **/ -+ String propertyValue = (fSecurityManager != null) ? -+ fSecurityManager.getLimitAsString(name) : null; -+ if (propertyValue != null) { -+ return propertyValue; -+ } -+ - return super.getProperty(name); - } - -diff -r efb24af909a0 -r 05c35de6d704 drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/validation/AbstractXMLSchema.java ---- jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/validation/AbstractXMLSchema.java Tue Oct 29 08:11:44 2013 +0000 -+++ jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/validation/AbstractXMLSchema.java Tue Oct 29 08:19:21 2013 +0000 -@@ -85,8 +85,7 @@ - /* - * Other methods - */ -- -- final void setFeature(String featureId, boolean state) { -+ public final void setFeature(String featureId, boolean state) { - fFeatures.put(featureId, state ? Boolean.TRUE : Boolean.FALSE); - } - -diff -r efb24af909a0 -r 05c35de6d704 drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java ---- jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java Tue Oct 29 08:11:44 2013 +0000 -+++ jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java Tue Oct 29 08:19:21 2013 +0000 -@@ -239,6 +239,7 @@ - else { - schema = new EmptyXMLSchema(); - } -+ propagateProperties(schema); - propagateFeatures(schema); - return schema; - } -@@ -247,6 +248,7 @@ - // Use a Schema that uses the system id as the equality source. - AbstractXMLSchema schema = new WeakReferenceXMLSchema(); - propagateFeatures(schema); -+ propagateProperties(schema); - return schema; - } - -@@ -322,7 +324,6 @@ - "jaxp-secureprocessing-feature", null)); - } - -- fSecurityManager = value ? new XMLSecurityManager() : null; - fSecurityManager.setSecureProcessing(value); - fXMLSchemaLoader.setProperty(SECURITY_MANAGER, fSecurityManager); - return; -@@ -362,7 +363,12 @@ - "property-not-supported", new Object [] {name})); - } - try { -- fXMLSchemaLoader.setProperty(name, object); -+ //check if the property is managed by security manager -+ if (fSecurityManager == null || -+ !fSecurityManager.setLimit(name, XMLSecurityManager.State.APIPROPERTY, object)) { -+ //fall back to the existing property manager -+ fXMLSchemaLoader.setProperty(name, object); -+ } - } - catch (XMLConfigurationException e) { - String identifier = e.getIdentifier(); -@@ -388,6 +394,15 @@ - } - } - -+ private void propagateProperties(AbstractXMLSchema schema) { -+ String[] properties = fXMLSchemaLoader.getRecognizedProperties(); -+ for (int i = 0; i < properties.length; ++i) { -+ Object state = fXMLSchemaLoader.getProperty(properties[i]); -+ schema.setProperty(properties[i], state); -+ } -+ } -+ -+ - /** - * Extension of XMLGrammarPoolImpl which exposes the number of - * grammars stored in the grammar pool. -diff -r efb24af909a0 -r 05c35de6d704 drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java ---- jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java Tue Oct 29 08:11:44 2013 +0000 -+++ jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java Tue Oct 29 08:19:21 2013 +0000 -@@ -368,11 +368,15 @@ - return; - } - -- //fall back to the existing property manager -- if (!fInitProperties.containsKey(propertyId)) { -- fInitProperties.put(propertyId, super.getProperty(propertyId)); -+ //check if the property is managed by security manager -+ if (fInitSecurityManager == null || -+ !fInitSecurityManager.setLimit(propertyId, XMLSecurityManager.State.APIPROPERTY, value)) { -+ //fall back to the existing property manager -+ if (!fInitProperties.containsKey(propertyId)) { -+ fInitProperties.put(propertyId, super.getProperty(propertyId)); -+ } -+ super.setProperty(propertyId, value); - } -- super.setProperty(propertyId, value); - } - - /** -diff -r efb24af909a0 -r 05c35de6d704 drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java ---- jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java Tue Oct 29 08:11:44 2013 +0000 -+++ jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java Tue Oct 29 08:19:21 2013 +0000 -@@ -25,6 +25,8 @@ - import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager; - import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool; - import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration; -+import org.xml.sax.SAXNotRecognizedException; -+import org.xml.sax.SAXNotSupportedException; - - /** - * This is the main Xerces SAX parser class. It uses the abstract SAX -@@ -125,4 +127,31 @@ - - } // <init>(SymbolTable,XMLGrammarPool) - -+ /** -+ * Sets the particular property in the underlying implementation of -+ * org.xml.sax.XMLReader. -+ */ -+ public void setProperty(String name, Object value) -+ throws SAXNotRecognizedException, SAXNotSupportedException { -+ /** -+ * It's possible for users to set a security manager through the interface. -+ * If it's the old SecurityManager, convert it to the new XMLSecurityManager -+ */ -+ if (name.equals(Constants.SECURITY_MANAGER)) { -+ securityManager = XMLSecurityManager.convert(value, securityManager); -+ super.setProperty(Constants.SECURITY_MANAGER, securityManager); -+ return; -+ } -+ -+ if (securityManager == null) { -+ securityManager = new XMLSecurityManager(true); -+ super.setProperty(Constants.SECURITY_MANAGER, securityManager); -+ } -+ -+ //check if the property is managed by security manager -+ if (!securityManager.setLimit(name, XMLSecurityManager.State.APIPROPERTY, value)) { -+ //fall back to the default configuration to handle the property -+ super.setProperty(name, value); -+ } -+ } - } // class SAXParser -diff -r efb24af909a0 -r 05c35de6d704 drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/util/SecurityManager.java ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ jaxp/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/util/SecurityManager.java Tue Oct 29 08:19:21 2013 +0000 -@@ -0,0 +1,215 @@ -+/* -+ * reserved comment block -+ * DO NOT REMOVE OR ALTER! -+ */ -+/* -+ * The Apache Software License, Version 1.1 -+ * -+ * -+ * Copyright (c) 2003 The Apache Software Foundation. -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in -+ * the documentation and/or other materials provided with the -+ * distribution. -+ * -+ * 3. The end-user documentation included with the redistribution, -+ * if any, must include the following acknowledgment: -+ * "This product includes software developed by the -+ * Apache Software Foundation (http://www.apache.org/)." -+ * Alternately, this acknowledgment may appear in the software itself, -+ * if and wherever such third-party acknowledgments normally appear. -+ * -+ * 4. The names "Xerces" and "Apache Software Foundation" must -+ * not be used to endorse or promote products derived from this -+ * software without prior written permission. For written -+ * permission, please contact apache@apache.org. -+ * -+ * 5. Products derived from this software may not be called "Apache", -+ * nor may "Apache" appear in their name, without prior written -+ * permission of the Apache Software Foundation. -+ * -+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR -+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ * ==================================================================== -+ * -+ * This software consists of voluntary contributions made by many -+ * individuals on behalf of the Apache Software Foundation and was -+ * originally based on software copyright (c) 1999, International -+ * Business Machines, Inc., http://www.apache.org. For more -+ * information on the Apache Software Foundation, please see -+ * <http://www.apache.org/>. -+ */ -+ -+package com.sun.org.apache.xerces.internal.util; -+import com.sun.org.apache.xerces.internal.impl.Constants; -+/** -+ * This class is a container for parser settings that relate to -+ * security, or more specifically, it is intended to be used to prevent denial-of-service -+ * attacks from being launched against a system running Xerces. -+ * Any component that is aware of a denial-of-service attack that can arise -+ * from its processing of a certain kind of document may query its Component Manager -+ * for the property (http://apache.org/xml/properties/security-manager) -+ * whose value will be an instance of this class. -+ * If no value has been set for the property, the component should proceed in the "usual" (spec-compliant) -+ * manner. If a value has been set, then it must be the case that the component in -+ * question needs to know what method of this class to query. This class -+ * will provide defaults for all known security issues, but will also provide -+ * setters so that those values can be tailored by applications that care. -+ * -+ * @author Neil Graham, IBM -+ * -+ */ -+public final class SecurityManager { -+ -+ // -+ // Constants -+ // -+ -+ // default value for entity expansion limit -+ private final static int DEFAULT_ENTITY_EXPANSION_LIMIT = 64000; -+ -+ /** Default value of number of nodes created. **/ -+ private final static int DEFAULT_MAX_OCCUR_NODE_LIMIT = 5000; -+ -+ // -+ // Data -+ // -+ -+ private final static int DEFAULT_ELEMENT_ATTRIBUTE_LIMIT = 10000; -+ -+ /** Entity expansion limit. **/ -+ private int entityExpansionLimit; -+ -+ /** W3C XML Schema maxOccurs limit. **/ -+ private int maxOccurLimit; -+ -+ private int fElementAttributeLimit; -+ // default constructor. Establishes default values for -+ // all known security holes. -+ /** -+ * Default constructor. Establishes default values -+ * for known security vulnerabilities. -+ */ -+ public SecurityManager() { -+ entityExpansionLimit = DEFAULT_ENTITY_EXPANSION_LIMIT; -+ maxOccurLimit = DEFAULT_MAX_OCCUR_NODE_LIMIT ; -+ fElementAttributeLimit = DEFAULT_ELEMENT_ATTRIBUTE_LIMIT; -+ //We are reading system properties only once , -+ //at the time of creation of this object , -+ readSystemProperties(); -+ } -+ -+ /** -+ * <p>Sets the number of entity expansions that the -+ * parser should permit in a document.</p> -+ * -+ * @param limit the number of entity expansions -+ * permitted in a document -+ */ -+ public void setEntityExpansionLimit(int limit) { -+ entityExpansionLimit = limit; -+ } -+ -+ /** -+ * <p>Returns the number of entity expansions -+ * that the parser permits in a document.</p> -+ * -+ * @return the number of entity expansions -+ * permitted in a document -+ */ -+ public int getEntityExpansionLimit() { -+ return entityExpansionLimit; -+ } -+ -+ /** -+ * <p>Sets the limit of the number of content model nodes -+ * that may be created when building a grammar for a W3C -+ * XML Schema that contains maxOccurs attributes with values -+ * other than "unbounded".</p> -+ * -+ * @param limit the maximum value for maxOccurs other -+ * than "unbounded" -+ */ -+ public void setMaxOccurNodeLimit(int limit){ -+ maxOccurLimit = limit; -+ } -+ -+ /** -+ * <p>Returns the limit of the number of content model nodes -+ * that may be created when building a grammar for a W3C -+ * XML Schema that contains maxOccurs attributes with values -+ * other than "unbounded".</p> -+ * -+ * @return the maximum value for maxOccurs other -+ * than "unbounded" -+ */ -+ public int getMaxOccurNodeLimit(){ -+ return maxOccurLimit; -+ } -+ -+ public int getElementAttrLimit(){ -+ return fElementAttributeLimit; -+ } -+ -+ public void setElementAttrLimit(int limit){ -+ fElementAttributeLimit = limit; -+ } -+ -+ private void readSystemProperties(){ -+ -+ try { -+ String value = System.getProperty(Constants.ENTITY_EXPANSION_LIMIT); -+ if(value != null && !value.equals("")){ -+ entityExpansionLimit = Integer.parseInt(value); -+ if (entityExpansionLimit < 0) -+ entityExpansionLimit = DEFAULT_ENTITY_EXPANSION_LIMIT; -+ } -+ else -+ entityExpansionLimit = DEFAULT_ENTITY_EXPANSION_LIMIT; -+ }catch(Exception ex){} -+ -+ try { -+ String value = System.getProperty(Constants.MAX_OCCUR_LIMIT); -+ if(value != null && !value.equals("")){ -+ maxOccurLimit = Integer.parseInt(value); -+ if (maxOccurLimit < 0) -+ maxOccurLimit = DEFAULT_MAX_OCCUR_NODE_LIMIT; -+ } -+ else -+ maxOccurLimit = DEFAULT_MAX_OCCUR_NODE_LIMIT; -+ }catch(Exception ex){} -+ -+ try { -+ String value = System.getProperty(Constants.ELEMENT_ATTRIBUTE_LIMIT); -+ if(value != null && !value.equals("")){ -+ fElementAttributeLimit = Integer.parseInt(value); -+ if ( fElementAttributeLimit < 0) -+ fElementAttributeLimit = DEFAULT_ELEMENT_ATTRIBUTE_LIMIT; -+ } -+ else -+ fElementAttributeLimit = DEFAULT_ELEMENT_ATTRIBUTE_LIMIT; -+ -+ }catch(Exception ex){} -+ -+ } -+ -+} // class SecurityManager |