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