mrglavas 2003/11/30 21:14:23 Modified: java/src/org/apache/xerces/parsers XML11Configuration.java Log: Fixing a couple reset bugs, including Bug #25043. We were overwriting the user's configuration with default values when namespace support was disabled. Revision Changes Path 1.12 +102 -127 xml-xerces/java/src/org/apache/xerces/parsers/XML11Configuration.java Index: XML11Configuration.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/XML11Configuration.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- XML11Configuration.java 18 Nov 2003 18:32:42 -0000 1.11 +++ XML11Configuration.java 1 Dec 2003 05:14:23 -0000 1.12 @@ -1367,140 +1367,115 @@ } // checkProperty(String) - /** - * Adds a component to the parser configuration. This method will - * also add all of the component's recognized features and properties - * to the list of default recognized features and properties. - * - * @param component The component to add. - */ - protected void addComponent(XMLComponent component) { - // don't add a component more than once - if (fComponents.contains(component)) { - return; - } - fComponents.addElement(component); + /** + * Adds a component to the parser configuration. This method will + * also add all of the component's recognized features and properties + * to the list of default recognized features and properties. + * + * @param component The component to add. + */ + protected void addComponent(XMLComponent component) { + + // don't add a component more than once + if (fComponents.contains(component)) { + return; + } + fComponents.addElement(component); + addRecognizedParamsAndSetDefaults(component); + + } // addComponent(XMLComponent) + + /** + * Adds common component to the parser configuration. This method will + * also add all of the component's recognized features and properties + * to the list of default recognized features and properties. + * + * @param component The component to add. + */ + protected void addCommonComponent(XMLComponent component) { + + // don't add a component more than once + if (fCommonComponents.contains(component)) { + return; + } + fCommonComponents.addElement(component); + addRecognizedParamsAndSetDefaults(component); - // register component's recognized features - String[] recognizedFeatures = component.getRecognizedFeatures(); - addRecognizedFeatures(recognizedFeatures); + } // addCommonComponent(XMLComponent) + + /** + * Adds an XML 1.1 component to the parser configuration. This method will + * also add all of the component's recognized features and properties + * to the list of default recognized features and properties. + * + * @param component The component to add. + */ + protected void addXML11Component(XMLComponent component) { + + // don't add a component more than once + if (fXML11Components.contains(component)) { + return; + } + fXML11Components.addElement(component); + addRecognizedParamsAndSetDefaults(component); - // register component's recognized properties - String[] recognizedProperties = component.getRecognizedProperties(); - addRecognizedProperties(recognizedProperties); - - // set default values - if (recognizedFeatures != null) { - for (int i = 0; i < recognizedFeatures.length; i++) { - String featureId = recognizedFeatures[i]; - Boolean state = component.getFeatureDefault(featureId); - if (state != null) { - super.setFeature(featureId, state.booleanValue()); - } - } - } - if (recognizedProperties != null) { - for (int i = 0; i < recognizedProperties.length; i++) { - String propertyId = recognizedProperties[i]; - Object value = component.getPropertyDefault(propertyId); - if (value != null) { - super.setProperty(propertyId, value); - } - } - } - - } // addComponent(XMLComponent) + } // addXML11Component(XMLComponent) - /** - * Adds common component to the parser configuration. This method will - * also add all of the component's recognized features and properties - * to the list of default recognized features and properties. - * - * @param component The component to add. - */ - protected void addCommonComponent(XMLComponent component) { - // don't add a component more than once - if (fCommonComponents.contains(component)) { - return; - } - fCommonComponents.addElement(component); - - // register component's recognized features - String[] recognizedFeatures = component.getRecognizedFeatures(); - addRecognizedFeatures(recognizedFeatures); + /** + * Adds all of the component's recognized features and properties + * to the list of default recognized features and properties, and + * sets default values on the configuration for features and + * properties which were previously absent from the configuration. + * + * @param component The component whose recognized features + * and properties will be added to the configuration + */ + protected void addRecognizedParamsAndSetDefaults(XMLComponent component) { - // register component's recognized properties - String[] recognizedProperties = component.getRecognizedProperties(); - addRecognizedProperties(recognizedProperties); - - // set default values - if (recognizedFeatures != null) { - for (int i = 0; i < recognizedFeatures.length; i++) { - String featureId = recognizedFeatures[i]; - Boolean state = component.getFeatureDefault(featureId); - if (state != null) { - super.setFeature(featureId, state.booleanValue()); - } - } - } - if (recognizedProperties != null) { - for (int i = 0; i < recognizedProperties.length; i++) { - String propertyId = recognizedProperties[i]; - Object value = component.getPropertyDefault(propertyId); - if (value != null) { - super.setProperty(propertyId, value); - } - } - } - - } // addCommonComponent(XMLComponent) - - /** - * Adds an XML 1.1 component to the parser configuration. This method will - * also add all of the component's recognized features and properties - * to the list of default recognized features and properties. - * - * @param component The component to add. - */ - protected void addXML11Component(XMLComponent component) { - // don't add a component more than once - if (fXML11Components.contains(component)) { - return; - } - fXML11Components.addElement(component); - - // register component's recognized features - String[] recognizedFeatures = component.getRecognizedFeatures(); - addRecognizedFeatures(recognizedFeatures); + // register component's recognized features + String[] recognizedFeatures = component.getRecognizedFeatures(); + addRecognizedFeatures(recognizedFeatures); - // register component's recognized properties - String[] recognizedProperties = component.getRecognizedProperties(); - addRecognizedProperties(recognizedProperties); - - // set default values - if (recognizedFeatures != null) { - for (int i = 0; i < recognizedFeatures.length; i++) { - String featureId = recognizedFeatures[i]; - Boolean state = component.getFeatureDefault(featureId); - if (state != null) { - checkFeature(featureId); - fFeatures.put(featureId, state); - } - } - } - if (recognizedProperties != null) { - for (int i = 0; i < recognizedProperties.length; i++) { - String propertyId = recognizedProperties[i]; - Object value = component.getPropertyDefault(propertyId); - if (value != null) { - checkProperty(propertyId); - fProperties.put(propertyId, value); - } - } - } - - } // addXML11Component(XMLComponent) - + // register component's recognized properties + String[] recognizedProperties = component.getRecognizedProperties(); + addRecognizedProperties(recognizedProperties); + + // set default values + if (recognizedFeatures != null) { + for (int i = 0; i < recognizedFeatures.length; ++i) { + String featureId = recognizedFeatures[i]; + Boolean state = component.getFeatureDefault(featureId); + if (state != null) { + // Do not overwrite values already set on the configuration. + if (!fFeatures.containsKey(featureId)) { + fFeatures.put(featureId, state); + // For newly added components who recognize this feature + // but did not offer a default value, we need to make + // sure these components will get an opportunity to read + // the value before parsing begins. + fConfigUpdated = true; + } + } + } + } + if (recognizedProperties != null) { + for (int i = 0; i < recognizedProperties.length; ++i) { + String propertyId = recognizedProperties[i]; + Object value = component.getPropertyDefault(propertyId); + if (value != null) { + // Do not overwrite values already set on the configuration. + if (!fProperties.containsKey(propertyId)) { + fProperties.put(propertyId, value); + // For newly added components who recognize this property + // but did not offer a default value, we need to make + // sure these components will get an opportunity to read + // the value before parsing begins. + fConfigUpdated = true; + } + } + } + } + } private void initXML11Components() { if (!f11Initialized) {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]