You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ne...@apache.org on 2004/01/27 09:00:02 UTC
cvs commit: xml-xerces/java/src/org/apache/xerces/impl/msg XMLMessages.properties
neeraj 2004/01/27 00:00:02
Modified: java/src/org/apache/xerces/impl Tag: jaxp_1_2_3_branch
XMLDocumentFragmentScannerImpl.java
java/src/org/apache/xerces/impl/msg Tag: jaxp_1_2_3_branch
XMLMessages.properties
Log:
Revision Changes Path
No revision
No revision
1.26.2.1 +27 -2 xml-xerces/java/src/org/apache/xerces/impl/XMLDocumentFragmentScannerImpl.java
Index: XMLDocumentFragmentScannerImpl.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLDocumentFragmentScannerImpl.java,v
retrieving revision 1.26
retrieving revision 1.26.2.1
diff -u -r1.26 -r1.26.2.1
--- XMLDocumentFragmentScannerImpl.java 7 Dec 2002 00:15:58 -0000 1.26
+++ XMLDocumentFragmentScannerImpl.java 27 Jan 2004 08:00:01 -0000 1.26.2.1
@@ -164,6 +164,10 @@
protected static final String NOTIFY_BUILTIN_REFS =
Constants.XERCES_FEATURE_PREFIX + Constants.NOTIFY_BUILTIN_REFS_FEATURE;
+
+ protected static final String SYSTEM_PROPERTY_ELEMENT_ATTRIBUTE_LIMIT = "elementAttributeLimit" ;
+ protected static final int DEFAULT_ELEMENT_ATTRIBUTE_LIMIT = 10000;
+
// recognized features and properties
/** Recognized features. */
@@ -234,6 +238,9 @@
/** Standalone. */
protected boolean fStandalone;
+ //variable to restrict attribute limit
+ protected int fElementAttributeLimit;
+
// element information
/** Current element. */
@@ -405,6 +412,19 @@
fHasExternalDTD = false;
fStandalone = false;
+
+ //There is little overhead in doing this again and again but it allows to reset the value b/w parse
+ try{
+ String value = System.getProperty(SYSTEM_PROPERTY_ELEMENT_ATTRIBUTE_LIMIT);
+ if(value != null && !value.equals(""))
+ fElementAttributeLimit = Integer.parseInt(value);
+ else{
+ fElementAttributeLimit = DEFAULT_ELEMENT_ATTRIBUTE_LIMIT;
+ }
+ } catch (Exception ex){
+ fElementAttributeLimit = DEFAULT_ELEMENT_ATTRIBUTE_LIMIT;
+ }
+
// setup dispatcher
setScannerState(SCANNER_STATE_CONTENT);
setDispatcher(fContentDispatcher);
@@ -799,7 +819,12 @@
// attributes
scanAttribute(fAttributes);
-
+ if (fAttributes.getLength() > fElementAttributeLimit){
+ fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,
+ "ElementAttributeLimit",
+ new Object[]{rawname, new Integer(fElementAttributeLimit) },
+ XMLErrorReporter.SEVERITY_FATAL_ERROR );
+ }
} while (true);
// call handler
No revision
No revision
1.16.2.1 +1 -0 xml-xerces/java/src/org/apache/xerces/impl/msg/XMLMessages.properties
Index: XMLMessages.properties
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/msg/XMLMessages.properties,v
retrieving revision 1.16
retrieving revision 1.16.2.1
diff -u -r1.16 -r1.16.2.1
--- XMLMessages.properties 8 Jan 2003 23:04:11 -0000 1.16
+++ XMLMessages.properties 27 Jan 2004 08:00:01 -0000 1.16.2.1
@@ -279,3 +279,4 @@
#Application can set the limit of number of entities that should be expanded by the parser.
EntityExpansionLimitExceeded=The parser has encountered more than \"{0}\" entity expansions in this document; this is the limit imposed by the application.
+ElementAttributeLimit= Element \"{0}\" has more than \"{1}\" attributes, \"{1}\" is the limit imposed by the application.
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org