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 2001/06/14 11:58:22 UTC

[Bug 2175] New: - non unique method key for java extensions

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

*** shadow/2175	Thu Jun 14 02:58:22 2001
--- shadow/2175.tmp.18588	Thu Jun 14 02:58:22 2001
***************
*** 0 ****
--- 1,31 ----
+ +============================================================================+
+ | non unique method key for java extensions                                  |
+ +----------------------------------------------------------------------------+
+ |        Bug #: 2175                        Product: XalanJ2                 |
+ |       Status: NEW                         Version: 2.0.x                   |
+ |   Resolution:                            Platform: PC                      |
+ |     Severity: Blocker                  OS/Version: Windows NT/2K           |
+ |     Priority: Other                     Component: org.apache.xpath        |
+ +----------------------------------------------------------------------------+
+ |  Assigned To: xalan-dev@xml.apache.org                                     |
+ |  Reported By: roman.huerlimann@systor.com                                  |
+ |      CC list: Cc:                                                          |
+ +----------------------------------------------------------------------------+
+ |          URL:                                                              |
+ +============================================================================+
+ |                              DESCRIPTION                                   |
+ The method org.apache.xpath.compiler.Compiler.compileExtension(int opPos)
+ creates a non unique methodKey (should be unique!!) for the class FuncExtFunction!
+ 
+ This method key reached through to ExtensionHandlerJavaClass.callFunction where it is used to cache the extension function. Because this key is not unique as it should be, it happens that the wrong extension method is called!!!!
+ 
+ => Eighter the cache from ExtensionHandlerJava is changed, so it accepts that the key is not unique, or the Cmpiler needs to create a really unique key.
+ 
+ I have changed the code in the compiler like that:
+   Function extension = new FuncExtFunction(ns, funcName,
+    // Create a method key, for faster lookup.
+     String.valueOf(opPos) + String.valueOf(hashCode()) + funcName);
+ 
+ This seems to work, but as my knowledge in the xalan code is poor I don't know if this works for evry case.
+ 
+ Roman
\ No newline at end of file