"Multiple Namespace not found" exceptions thrown at runtime and captured in thread dump but not in the BW log file.

"Multiple Namespace not found" exceptions thrown at runtime and captured in thread dump but not in the BW log file.

book

Article ID: KB0093334

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks -
Not Applicable -

Description

Description:


"Multiple Namespace not found" exceptions (com.tibco.xml.data.primitive.NamespaceToPrefixResolver$NamespaceNotFoundException) and "PrefixNotFoundException"  (com.tibco.xml.data.primitive.PrefixToNamespaceResolver$PrefixNotFoundException) are thrown in thread dump but not in the BW log file.
Symptoms:

"Namespace not found" exceptions at runtime captured in thread dump but not in BW log file.


Cause:
This exception is not due to coding issues. BW catches this user defined exception when serializing the SOAP outbound message. Its internal SOAP engine performs a prefix lookup from the basic namespace cache for the  required namespace(s) using the getPrefixForNamespaceURI method. This method throws NamespaceNotFoundException if there is no matching prefix for a given namespace. On this exception, the XML processor will catch the exception and will return a qualified name for element (using : localName) instead of attaching a prefix (e.g. XML elements with default namespace declaration will not have a prefix) but produces a W3C compliant SOAP success response message.

Issue/Introduction

"Multiple Namespace not found" exceptions thrown at runtime and captured in thread dump but not in the BW log file.

Resolution

After BW catches this exception, it creates a namespaceNotfoundException object. This object will be cleaned by JVM GC. It should not have an impact 
on performance. No action needs to be taken for an unresolved namespace. Use the NULL prefix to create a qname, such as ":localName".