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]

Reply via email to