mrglavas    2004/03/29 14:55:54

  Modified:    java/src/org/apache/xerces/impl/xs/traversers
                        XSDHandler.java
  Log:
  Fixing Bug #28022:

  http://nagoya.apache.org/bugzilla/show_bug.cgi?id=28022

  

  We keep a static pool of schema validators for use by DOM

  normalizer. If a validator had been previously used and it had

  an error-handler registered and another document later gets

  this validator but it offers no error-handler then XSDHandler

  would throw a NPE when trying to set the error handler to

  null on the schema parser.

  

  Set the DefaultErrorHandler on the schema parser to unregister

  the old error handler (if there was one). Thanks to Neil Delima

  for investigating this bug and verifying the fix.
  
  Revision  Changes    Path
  1.77      +3 -2      
xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java
  
  Index: XSDHandler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java,v
  retrieving revision 1.76
  retrieving revision 1.77
  diff -u -r1.76 -r1.77
  --- XSDHandler.java   24 Feb 2004 22:59:14 -0000      1.76
  +++ XSDHandler.java   29 Mar 2004 22:55:54 -0000      1.77
  @@ -41,6 +41,7 @@
   import org.apache.xerces.impl.xs.opti.ElementImpl;
   import org.apache.xerces.impl.xs.opti.SchemaParsingConfig;
   import org.apache.xerces.impl.xs.util.SimpleLocator;
  +import org.apache.xerces.util.DefaultErrorHandler;
   import org.apache.xerces.util.DOMUtil;
   import org.apache.xerces.util.SymbolTable;
   import org.apache.xerces.util.XMLSymbols;
  @@ -1578,7 +1579,7 @@
               // than checking its value.  Don't set the ERROR_HANDLER
               // property unless it's actually changed.
               if (currErrorHandler != fSchemaParser.getProperty(ERROR_HANDLER)) {
  -                fSchemaParser.setProperty(ERROR_HANDLER, currErrorHandler);
  +                fSchemaParser.setProperty(ERROR_HANDLER, (currErrorHandler != null) 
? currErrorHandler : new DefaultErrorHandler());
               }
           } catch (XMLConfigurationException e) {
           }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to