minchau     2004/10/06 13:06:51

  Modified:    java/src/org/apache/xalan/res XSLTErrorResources.java
               java/src/org/apache/xalan/processor
                        ProcessorNamespaceAlias.java
  Log:
  Null Pointer Exception when namespace-alias element says to
  use "#default" namespace but there is no default namespace.
  PR: XALANJ-1967
  Submitted by: Yash Talwar
  Reviewed by:  Brian Minchau
  
  Revision  Changes    Path
  1.45      +17 -3     
xml-xalan/java/src/org/apache/xalan/res/XSLTErrorResources.java
  
  Index: XSLTErrorResources.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/res/XSLTErrorResources.java,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- XSLTErrorResources.java   23 Feb 2004 21:33:14 -0000      1.44
  +++ XSLTErrorResources.java   6 Oct 2004 20:06:51 -0000       1.45
  @@ -90,6 +90,12 @@
     /* 
      * Static variables
      */
  +  public static final String 
ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX = 
  +     "ER_INVALID_SET_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX"; 
  +     
  +  public static final String 
ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT =
  +     "ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT";
  +   
     public static final String ER_NO_CURLYBRACE = "ER_NO_CURLYBRACE";
     public static final String ER_FUNCTION_NOT_SUPPORTED = 
"ER_FUNCTION_NOT_SUPPORTED";
     public static final String ER_ILLEGAL_ATTRIBUTE = "ER_ILLEGAL_ATTRIBUTE";
  @@ -2122,11 +2128,19 @@
       // Note to translators:  This message indicates that the value argument
       // of setParameter must be a valid Java Object.
   //  ER_INVALID_SET_PARAM_VALUE
  -//  public static final int ER_INVALID_SET_PARAM_VALUE = 256;
  +//  public static final int ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX 
= 256;
       { ER_INVALID_SET_PARAM_VALUE,
        "The value of param {0} must be a valid Java Object"},
   
  -
  +//   ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT
  +//   ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT = 257;
  +    { ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT,
  +      "The result-prefix attribute of an xsl:namespace-alias element has the 
value '#default', but there is no declaration of the default namespace in scope 
for the element"},
  +
  +//   ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX
  +//   public static final int 
ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX = 258;
  +    { ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX,
  +      "The result-prefix attribute of an xsl:namespace-alias element has the 
value ''{0}'', but there is no namespace declaration for the prefix ''{0}'' in 
scope for the element."},
   
     // Warnings...
   
  
  
  
  1.13      +12 -2     
xml-xalan/java/src/org/apache/xalan/processor/ProcessorNamespaceAlias.java
  
  Index: ProcessorNamespaceAlias.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/processor/ProcessorNamespaceAlias.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ProcessorNamespaceAlias.java      17 Aug 2004 18:18:08 -0000      1.12
  +++ ProcessorNamespaceAlias.java      6 Oct 2004 20:06:51 -0000       1.13
  @@ -18,6 +18,7 @@
    */
   package org.apache.xalan.processor;
   
  +import org.apache.xalan.res.XSLTErrorResources;
   import org.apache.xalan.templates.NamespaceAlias;
   import org.xml.sax.Attributes;
   
  @@ -59,7 +60,7 @@
             StylesheetHandler handler, String uri, String localName, String 
rawName, Attributes attributes)
               throws org.xml.sax.SAXException
     {
  -
  +    final String resultNS;
       NamespaceAlias na = new NamespaceAlias(handler.nextUid());
   
       setPropertiesFromAttributes(handler, rawName, attributes, na);
  @@ -76,8 +77,17 @@
       {
         prefix = "";
         na.setResultPrefix(prefix);
  +      resultNS = handler.getNamespaceForPrefix(prefix);
  +      if(null == resultNS)
  +        
handler.error(XSLTErrorResources.ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX_FOR_DEFAULT,
 null, null);
  +    }
  +    else
  +    {
  +        resultNS = handler.getNamespaceForPrefix(prefix);
  +        if(null == resultNS)
  +         
handler.error(XSLTErrorResources.ER_INVALID_NAMESPACE_URI_VALUE_FOR_RESULT_PREFIX,
 new Object[] {prefix}, null);
       }
  -    String resultNS = handler.getNamespaceForPrefix(prefix);
  +   
       na.setResultNamespace(resultNS);
       handler.getStylesheet().setNamespaceAlias(na);
       handler.getStylesheet().appendChild(na);
  
  
  

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

Reply via email to