You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by sa...@apache.org on 2002/05/21 23:41:50 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/impl/xs/util XSNamedMap4Types.java XSNamedMapImpl.java

sandygao    02/05/21 14:41:50

  Modified:    java/src/org/apache/xerces/impl/xs XSModelImpl.java
               java/src/org/apache/xerces/impl/xs/util
                        XSNamedMap4Types.java XSNamedMapImpl.java
  Log:
  Fixing potential NullPointerException bugs (including bug [9243]).
  
  Revision  Changes    Path
  1.2       +13 -8     xml-xerces/java/src/org/apache/xerces/impl/xs/XSModelImpl.java
  
  Index: XSModelImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/XSModelImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XSModelImpl.java	16 May 2002 18:25:54 -0000	1.1
  +++ XSModelImpl.java	21 May 2002 21:41:50 -0000	1.2
  @@ -71,7 +71,7 @@
    *
    * @author Sandy Gao, IBM
    *
  - * @version $Id: XSModelImpl.java,v 1.1 2002/05/16 18:25:54 sandygao Exp $
  + * @version $Id: XSModelImpl.java,v 1.2 2002/05/21 21:41:50 sandygao Exp $
    */
   public class XSModelImpl implements XSModel {
   
  @@ -164,7 +164,7 @@
           // establish the mapping from namespace to grammars
           fGrammarMap = new SymbolHash(len*2);
           for (i = 0; i < len; i++) {
  -            fGrammarMap.put(fNamespaces[i], fGrammarList[i]);
  +            fGrammarMap.put(null2EmptyString(fNamespaces[i]), fGrammarList[i]);
           }
           
           fGrammarCount = len;
  @@ -316,7 +316,7 @@
        */
       public XSTypeDefinition getTypeDefinition(String name,
                                                 String namespace) {
  -        SchemaGrammar sg = (SchemaGrammar)fGrammarMap.get(namespace);
  +        SchemaGrammar sg = (SchemaGrammar)fGrammarMap.get(null2EmptyString(namespace));
           if (sg == null)
               return null;
           return (XSTypeDefinition)sg.fGlobalTypeDecls.get(name);
  @@ -331,7 +331,7 @@
        */
       public XSAttributeDeclaration getAttributeDecl(String name,
                                                      String namespace) {
  -        SchemaGrammar sg = (SchemaGrammar)fGrammarMap.get(namespace);
  +        SchemaGrammar sg = (SchemaGrammar)fGrammarMap.get(null2EmptyString(namespace));
           if (sg == null)
               return null;
           return (XSAttributeDeclaration)sg.fGlobalAttrDecls.get(name);
  @@ -346,7 +346,7 @@
        */
       public XSElementDeclaration getElementDecl(String name,
                                                  String namespace) {
  -        SchemaGrammar sg = (SchemaGrammar)fGrammarMap.get(namespace);
  +        SchemaGrammar sg = (SchemaGrammar)fGrammarMap.get(null2EmptyString(namespace));
           if (sg == null)
               return null;
           return (XSElementDeclaration)sg.fGlobalElemDecls.get(name);
  @@ -361,7 +361,7 @@
        */
       public XSAttributeGroupDefinition getAttributeGroup(String name,
                                                           String namespace) {
  -        SchemaGrammar sg = (SchemaGrammar)fGrammarMap.get(namespace);
  +        SchemaGrammar sg = (SchemaGrammar)fGrammarMap.get(null2EmptyString(namespace));
           if (sg == null)
               return null;
           return (XSAttributeGroupDefinition)sg.fGlobalAttrGrpDecls.get(name);
  @@ -377,7 +377,7 @@
        */
       public XSModelGroupDefinition getModelGroupDefinition(String name,
                                                             String namespace) {
  -        SchemaGrammar sg = (SchemaGrammar)fGrammarMap.get(namespace);
  +        SchemaGrammar sg = (SchemaGrammar)fGrammarMap.get(null2EmptyString(namespace));
           if (sg == null)
               return null;
           return (XSModelGroupDefinition)sg.fGlobalGroupDecls.get(name);
  @@ -393,7 +393,7 @@
        */
       public XSNotationDeclaration getNotationDecl(String name,
                                                    String namespace) {
  -        SchemaGrammar sg = (SchemaGrammar)fGrammarMap.get(namespace);
  +        SchemaGrammar sg = (SchemaGrammar)fGrammarMap.get(null2EmptyString(namespace));
           if (sg == null)
               return null;
           return (XSNotationDeclaration)sg.fGlobalNotationDecls.get(name);
  @@ -407,4 +407,9 @@
           return null;
       }
   
  +    private static final String EMPTY_STRING = "";
  +    private static final String null2EmptyString(String str) {
  +        return str == null ? EMPTY_STRING : str;
  +    }
  +    
   } // class XSModelImpl
  
  
  
  1.2       +3 -2      xml-xerces/java/src/org/apache/xerces/impl/xs/util/XSNamedMap4Types.java
  
  Index: XSNamedMap4Types.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/util/XSNamedMap4Types.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XSNamedMap4Types.java	16 May 2002 18:25:56 -0000	1.1
  +++ XSNamedMap4Types.java	21 May 2002 21:41:50 -0000	1.2
  @@ -66,7 +66,7 @@
    *
    * @author Sandy Gao, IBM
    *
  - * @version $Id: XSNamedMap4Types.java,v 1.1 2002/05/16 18:25:56 sandygao Exp $
  + * @version $Id: XSNamedMap4Types.java,v 1.2 2002/05/21 21:41:50 sandygao Exp $
    */
   public class XSNamedMap4Types extends XSNamedMapImpl {
   
  @@ -141,7 +141,8 @@
        *   identify any <code>XSObject</code> in this map.
        */
       public XSObject getNSItem(String namespace, String localName) {
  -        namespace = namespace.intern();
  +        if (namespace != null)
  +            namespace = namespace.intern();
           for (int i = 0; i < fNSNum; i++) {
               if (namespace == fNamespaces[i]) {
                   XSTypeDefinition type = (XSTypeDefinition)fMaps[i].get(localName);
  
  
  
  1.2       +3 -2      xml-xerces/java/src/org/apache/xerces/impl/xs/util/XSNamedMapImpl.java
  
  Index: XSNamedMapImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/util/XSNamedMapImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XSNamedMapImpl.java	16 May 2002 18:25:56 -0000	1.1
  +++ XSNamedMapImpl.java	21 May 2002 21:41:50 -0000	1.2
  @@ -66,7 +66,7 @@
    *
    * @author Sandy Gao, IBM
    *
  - * @version $Id: XSNamedMapImpl.java,v 1.1 2002/05/16 18:25:56 sandygao Exp $
  + * @version $Id: XSNamedMapImpl.java,v 1.2 2002/05/21 21:41:50 sandygao Exp $
    */
   public class XSNamedMapImpl implements XSNamedMap {
   
  @@ -157,7 +157,8 @@
        *   identify any <code>XSObject</code> in this map.
        */
       public XSObject getNSItem(String namespace, String localName) {
  -        namespace = namespace.intern();
  +        if (namespace != null)
  +            namespace = namespace.intern();
           for (int i = 0; i < fNSNum; i++) {
               if (namespace == fNamespaces[i]) {
                   // when this map is created from SymbolHash's
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org