mrglavas 2004/03/19 11:46:54
Modified: java/src/org/apache/xerces/util DOMErrorHandlerWrapper.java
java/src/org/apache/xerces/parsers DOMParserImpl.java
java/src/org/apache/xerces/dom DOMConfigurationImpl.java
Log:
Fixing Bug #27750:
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27750
Setting 'error-handler' and 'resource-resolver' to null is
supposed to unset them in both DOM L3 Core and Load/Save.
We were raising a TYPE_MISMATCH_ERR instead. This is
now fixed thanks to the patch from Naela Nissar.
Also modifying DOMErrorHandlerWrapper so that it handles
null DOMErrorHandlers.
Revision Changes Path
1.11 +10 -4
xml-xerces/java/src/org/apache/xerces/util/DOMErrorHandlerWrapper.java
Index: DOMErrorHandlerWrapper.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/util/DOMErrorHandlerWrapper.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- DOMErrorHandlerWrapper.java 24 Feb 2004 23:15:53 -0000 1.10
+++ DOMErrorHandlerWrapper.java 19 Mar 2004 19:46:54 -0000 1.11
@@ -129,7 +129,9 @@
locator.fUri = exception.getExpandedSystemId();
locator.fRelatedNode = fCurrentNode;
}
- fDomErrorHandler.handleError(fDOMError);
+ if (fDomErrorHandler != null) {
+ fDomErrorHandler.handleError(fDOMError);
+ }
} // warning(String,String,XMLParseException)
/**
@@ -161,7 +163,9 @@
locator.fUri = exception.getExpandedSystemId();
locator.fRelatedNode= fCurrentNode;
}
- fDomErrorHandler.handleError(fDOMError);
+ if (fDomErrorHandler != null) {
+ fDomErrorHandler.handleError(fDOMError);
+ }
} // error(String,String,XMLParseException)
/**
@@ -201,7 +205,9 @@
locator.fUri = exception.getExpandedSystemId();
locator.fRelatedNode = fCurrentNode;
}
- fDomErrorHandler.handleError(fDOMError);
+ if (fDomErrorHandler != null) {
+ fDomErrorHandler.handleError(fDOMError);
+ }
} // fatalError(String,String,XMLParseException)
1.20 +3 -5 xml-xerces/java/src/org/apache/xerces/parsers/DOMParserImpl.java
Index: DOMParserImpl.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/DOMParserImpl.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- DOMParserImpl.java 16 Mar 2004 18:44:28 -0000 1.19
+++ DOMParserImpl.java 19 Mar 2004 19:46:54 -0000 1.20
@@ -410,9 +410,7 @@
}
else { // set properties
if (name.equalsIgnoreCase (Constants.DOM_ERROR_HANDLER)) {
- // REVISIT: we should probably allow unsetting error-handler
- if (value == null) return;
- if (value instanceof DOMErrorHandler) {
+ if (value instanceof DOMErrorHandler || value == null) {
try {
fErrorHandler = new DOMErrorHandlerWrapper
((DOMErrorHandler) value);
fConfiguration.setProperty (ERROR_HANDLER, fErrorHandler);
@@ -431,7 +429,7 @@
}
else if (name.equalsIgnoreCase (Constants.DOM_RESOURCE_RESOLVER)) {
- if (value instanceof LSResourceResolver) {
+ if (value instanceof LSResourceResolver || value == null) {
try {
fConfiguration.setProperty (ENTITY_RESOLVER, new
DOMEntityResolverWrapper ((LSResourceResolver) value));
}
1.26 +3 -3
xml-xerces/java/src/org/apache/xerces/dom/DOMConfigurationImpl.java
Index: DOMConfigurationImpl.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DOMConfigurationImpl.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- DOMConfigurationImpl.java 2 Mar 2004 20:27:51 -0000 1.25
+++ DOMConfigurationImpl.java 19 Mar 2004 19:46:54 -0000 1.26
@@ -605,7 +605,7 @@
}
else { // set properties
if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) {
- if (value instanceof DOMErrorHandler) {
+ if (value instanceof DOMErrorHandler || value == null) {
fErrorHandlerWrapper.setErrorHandler((DOMErrorHandler)value);
setErrorHandler(fErrorHandlerWrapper);
}
@@ -621,7 +621,7 @@
}
}
else if (name.equalsIgnoreCase(Constants.DOM_RESOURCE_RESOLVER)) {
- if (value instanceof LSResourceResolver) {
+ if (value instanceof LSResourceResolver || value == null) {
try {
setEntityResolver(new
DOMEntityResolverWrapper((LSResourceResolver) value));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]