Return-Path: Delivered-To: apmail-db-jdo-dev-archive@www.apache.org Received: (qmail 4887 invoked from network); 23 Dec 2005 21:31:47 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 23 Dec 2005 21:31:47 -0000 Received: (qmail 36612 invoked by uid 500); 23 Dec 2005 21:31:46 -0000 Mailing-List: contact jdo-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jdo-dev@db.apache.org Delivered-To: mailing list jdo-dev@db.apache.org Received: (qmail 36600 invoked by uid 99); 23 Dec 2005 21:31:46 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 23 Dec 2005 13:31:46 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [212.224.30.66] (HELO service-01.spree.de) (212.224.30.66) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 23 Dec 2005 13:31:44 -0800 Received: from [172.16.2.80] (vpn-server [192.168.16.104]) (authenticated bits=0) by service-01.spree.de (8.13.4/8.13.4/Debian-3) with ESMTP id jBNLTO2H007434 for ; Fri, 23 Dec 2005 22:29:25 +0100 Message-ID: <43AC6CA8.3020906@spree.de> Date: Fri, 23 Dec 2005 22:31:20 +0100 From: Michael Bouschen Organization: Tech@Spree Engineering User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Apache JDO project Subject: NoClassDefFoundError on Windows Content-Type: multipart/mixed; boundary="------------060003030100000107000302" X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N --------------060003030100000107000302 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi Martin, here is a simple test case showing the NoClassDefFoundError discussed in JDO-194.I does a Class.forName for foo.bar when there is a class foo.Bar. Attached you find a class Bar, please store it in a directory foo. Class Main executes the Class.forName. I tried jdk 1.4.2_10 and 1.5.0_05. Both result in a NoClassDefFoundError: foo/bar (wrong name: foo/Bar). You find the stacktraces attached. Regards Michael -- Michael Bouschen Tech@Spree Engineering GmbH mailto:mbo.tech@spree.de http://www.tech.spree.de/ Tel.:++49/30/235 520-33 Buelowstr. 66 Fax.:++49/30/2175 2012 D-10783 Berlin --------------060003030100000107000302 Content-Type: text/plain; name="Bar.java" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="Bar.java" package foo; public class Bar {} --------------060003030100000107000302 Content-Type: text/plain; name="Main.java" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="Main.java" public class Main { public static void main(String[] args) { try { // Note, class foo.bar does not exist, but foo.Bar does! Class.forName("foo.bar"); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } } } --------------060003030100000107000302 Content-Type: text/plain; name="stacktrace14.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="stacktrace14.txt" java.lang.NoClassDefFoundError: foo/bar (wrong name: foo/Bar) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:539) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123) at java.net.URLClassLoader.defineClass(URLClassLoader.java:251) at java.net.URLClassLoader.access$100(URLClassLoader.java:55) at java.net.URLClassLoader$1.run(URLClassLoader.java:194) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:187) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:141) at Main.main(Main.java:6) Exception in thread "main" --------------060003030100000107000302 Content-Type: text/plain; name="stacktrace15.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="stacktrace15.txt" Exception in thread "main" java.lang.NoClassDefFoundError: foo/bar (wrong name: foo/Bar) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:164) at Main.main(Main.java:6) --------------060003030100000107000302--