Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 70703 invoked from network); 23 Nov 2005 22:32:03 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 23 Nov 2005 22:32:03 -0000 Received: (qmail 75228 invoked by uid 500); 23 Nov 2005 22:32:02 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 74995 invoked by uid 500); 23 Nov 2005 22:32:01 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 74688 invoked by uid 99); 23 Nov 2005 22:32:00 -0000 X-ASF-Spam-Status: No, hits=1.3 required=10.0 tests=SPF_FAIL X-Spam-Check-By: apache.org Received: from [192.87.106.226] (HELO ajax.apache.org) (192.87.106.226) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 23 Nov 2005 14:31:59 -0800 Received: from ajax.apache.org (ajax.apache.org [127.0.0.1]) by ajax.apache.org (Postfix) with ESMTP id E9C05230 for ; Wed, 23 Nov 2005 23:31:37 +0100 (CET) Message-ID: <743665712.1132785097955.JavaMail.jira@ajax.apache.org> Date: Wed, 23 Nov 2005 23:31:37 +0100 (CET) From: "Bryan Pendleton (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Updated: (DERBY-668) SysInfo can give misleading information when JDBC jars are loaded from jre/lib/ext In-Reply-To: <1153567093.1130883415407.JavaMail.jira@ajax.apache.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N [ http://issues.apache.org/jira/browse/DERBY-668?page=all ] Bryan Pendleton updated DERBY-668: ---------------------------------- Attachment: derby-668-2.diff Hi Kathey, I re-worked my patch based on your comments, and I think it is more useful now. I abstracted the code out into a subroutine so that it could be shared, added some comments, and, most importantly, used the code in the "sysinfo -cp" code path, where it actually makes a lot more sense and is more useful. The net effect of this patch is: 1) If you run "sysinfo -cp" (and any of its variants), sysinfo now reports the actual location where the class was loaded from, in addition to telling you whether or not it loaded the class successfully. 2) If you run just "sysinfo", when it is processing the db2jcc.jar file in your classpath, it now reports the actual location where the DB2Driver class was loaded from, which may not be the db2jcc.jar file in your classpath (if you've placed db2jcc.jar somewhere else). Please have a look at this new patch when you get a chance and tell me what you think. > SysInfo can give misleading information when JDBC jars are loaded from jre/lib/ext > ---------------------------------------------------------------------------------- > > Key: DERBY-668 > URL: http://issues.apache.org/jira/browse/DERBY-668 > Project: Derby > Type: Bug > Components: Build tools > Versions: 10.1.1.0 > Reporter: Bryan Pendleton > Priority: Minor > Attachments: Derby-668.diff, derby-668-2.diff > > There is a section in the SysInfo tool's output titled "Derby Information", which prints location and version information for the major Derby jars. Here is an example of that output: > --------- Derby Information -------- > JRE - JDBC: J2SE 1.4.2 - JDBC 3.0 > [/home/bpendleton/src/derby-subversion/trunk/jars/insane/derby.jar] 10.2.0.0 alpha - (315052M) > [/home/bpendleton/src/derby-subversion/trunk/jars/insane/derbytools.jar] 10.2.0.0 alpha - (315052M) > [/home/bpendleton/src/derby-subversion/trunk/jars/insane/derbynet.jar] 10.2.0.0 alpha - (315052M) > [/home/bpendleton/src/derby-subversion/trunk/jars/insane/derbyclient.jar] 10.2.0.0 alpha - (315052M) > [/home/bpendleton/downloads/derby/db2jcc/lib/db2jcc.jar] 2.4 - (17) > [/home/bpendleton/downloads/derby/db2jcc/lib/db2jcc_license_c.jar] 2.4 - (17) > Unfortunately, this tool can be fooled if you arrange for one of these jar files to be loaded from a magic location like $JAVA_HOME/jre/lib/ext. > For example, I had (accidentally) placed an old version of db2jcc.jar into $JAVA_HOME/jre/lib/ext. When I ran SysInfo, it printed out: > --------- Derby Information -------- > JRE - JDBC: J2SE 1.4.2 - JDBC 3.0 > [/home/bpendleton/src/derby-subversion/trunk/jars/insane/derby.jar] 10.2.0.0 alpha - (315052M) > [/home/bpendleton/src/derby-subversion/trunk/jars/insane/derbytools.jar] 10.2.0.0 alpha - (315052M) > [/home/bpendleton/src/derby-subversion/trunk/jars/insane/derbynet.jar] 10.2.0.0 alpha - (315052M) > [/home/bpendleton/src/derby-subversion/trunk/jars/insane/derbyclient.jar] 10.2.0.0 alpha - (315052M) > [/home/bpendleton/downloads/derby/db2jcc/lib/db2jcc.jar] 1.0 - (581) > [/home/bpendleton/downloads/derby/db2jcc/lib/db2jcc_license_c.jar] 1.0 - (581) > However, the "1.0 (581)" information actually came from $JAVA_HOME/jre/lib/ext/db2jcc.jar, NOT from > /home/bpendleton/downloads/derby/db2jcc/lib/db2jcc.jar. > It would be nice if SysInfo could detect the difference between a jar file being loaded via the application class loader using $CLASSPATH, and a jar file being loaded via the system class loader using JDK library extensions. > To reproduce the problem, simply: > 1) Place an older version of db2jcc.jar into $JAVA_HOME/jre/lib/ext > 2) Place a newer version of db2jcc.jar into your $CLASSPATH > 3) Run SysInfo. You will see that it prints the name of the jarfile from $CLASSPATH, but the version info from the JDK copy. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira