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]