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]