To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=80338


User sb changed the following:

                What    |Old value                 |New value
================================================================================
             Assigned to|sb                        |oj
--------------------------------------------------------------------------------




------- Additional comments from [EMAIL PROTECTED] Mon Aug  6 11:04:35 +0000 
2007 -------
@oj:  "It seems that this line overwrites existing jar files."  No, that line
specifies the JVM's classpath.  With a standard, Sun-built OOo, the JVM
classpath is empty (so the line is missing entirely).  With a build that is
configured --with-system-hsqldb, the JVM classpath contains hsqldb.jar (in some
system location), but not sdbc_hsqldb.jar.  However, with the current code, code
from hsqldb.jar tries to load a class from sdbc_hsqldb.jar with Class.forName. 
That only works if the code from hsqldb.jar has been loaded with a classloader
that is a (reflexive, transitive) child of a classloader able to load from
sdbc_hsqldb.jar.  The assumption that this works is broken when configuring OOo
--with-system-hsqldb: hsqldb.jar is loaded by the JVM's application classloader
(as it is on the classpath), whereas sdbc_hsqldb.jar is only known to some more
specific classloader that is a (transitive) child of the application
classloader.  So, the current code is broken.

I can think of several ways how to fix that:

1  In Database.java from above, instead of only passing a fileaccess_class_name
property, also pass information where that class can be found (e.g., a URL with
which an appropriate classloader can be created; caveat: that could result in
the StorageFileAccess class being loaded multiple times by different,
incompatible classloaders).

2  In Database.java from above, instead of Class.forName use
Thread.getContextClassLoader to load the class, and at some appropriate place
down the call stack set an appropriate context classloader.

3  As a quick hack, at scp2/source/ooo/profileitem_ooo.scp:1.49 l. 874--876 also
add (the OOo-local program/classes/...) sdbc_hsqldb.jar to
UNO_JAVA_JFW_CLASSPATH_URLS if SYSTEM_HSQLDB is defined.

---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

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


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

Reply via email to