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]