You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by bu...@apache.org on 2004/01/20 14:58:28 UTC

DO NOT REPLY [Bug 26280] New: - FunctionTable.installFunction(String s, Expression e) doesn't work in jdk 1.4 when xalan.jar in endorsed dir.

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26280>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

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

FunctionTable.installFunction(String s, Expression e) doesn't work in jdk 1.4 when xalan.jar in endorsed dir.

           Summary: FunctionTable.installFunction(String s, Expression e)
                    doesn't work in jdk 1.4 when xalan.jar in endorsed dir.
           Product: XalanJ2
           Version: 2.5
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: org.apache.xpath
        AssignedTo: xalan-dev@xml.apache.org
        ReportedBy: Jared_Groth@stercomm.com


In order to use xalan 2.5 under jdk 1.4, I needed to place the jars in the
endorsed directory.  When this was done however, XPath expressions that used
custom functions no longer worked - instead, we got class not found exceptions.
 The custom functions were "installed" by using
FunctionTable.installFunction(String s, Expression e).  

A little digging showed that the problem was because xalan was loaded by a
classloader higher in the delegation chain than our XPath expression code was.  

To verify this was the problem, changed the code so that the FuncLoader created
to load this expression is given the classloader of the expression object passed
to installFunction().  This guarentees that the function will always be the same
as the expression object passed in, and this works under jdk 1.4 with xalan in
the endorsed directory.  

The patch for this change will be included.