Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 65430 invoked from network); 15 Nov 2006 21:57:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Nov 2006 21:57:31 -0000 Received: (qmail 66788 invoked by uid 500); 15 Nov 2006 21:57:41 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 66762 invoked by uid 500); 15 Nov 2006 21:57:41 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 66746 invoked by uid 99); 15 Nov 2006 21:57:41 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Nov 2006 13:57:41 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Nov 2006 13:57:30 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id 2952B1A9846; Wed, 15 Nov 2006 13:56:59 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r475448 - /geronimo/server/trunk/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java Date: Wed, 15 Nov 2006 21:56:58 -0000 To: scm@geronimo.apache.org From: hogstrom@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20061115215659.2952B1A9846@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: hogstrom Date: Wed Nov 15 13:56:58 2006 New Revision: 475448 URL: http://svn.apache.org/viewvc?view=rev&rev=475448 Log: GERONIMO-2571 Improve classloading performance by directing class loading to known classloader for certain classes. Modified: geronimo/server/trunk/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java Modified: geronimo/server/trunk/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java?view=diff&rev=475448&r1=475447&r2=475448 ============================================================================== --- geronimo/server/trunk/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java (original) +++ geronimo/server/trunk/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java Wed Nov 15 13:56:58 2006 @@ -171,7 +171,7 @@ */ public MultiParentClassLoader(Artifact id, URL[] urls, ClassLoader[] parents, URLStreamHandlerFactory factory) { super(urls, null, factory); - this.id = id; + this.id = id; this.parents = copyParents(parents); inverseClassLoading = false; hiddenClasses = new String[0]; @@ -238,7 +238,23 @@ if (cachedClass != null) { return resolveClass(cachedClass, resolve); } - + + // This is a reasonable hack. We can add some classes to the list below. + // Since we know these classes are in the system class loader let's not waste our + // time going through the hierarchy. + // + // The order is based on profiling the server. It may not be optimal for all + // workloads. + + if ( name.startsWith("java.") || + name.equals("boolean") || + name.equals("int") || + name.equals("double") || + name.equals("long")) { + Class clazz = ClassLoader.getSystemClassLoader().loadClass(name); + return resolveClass(clazz, resolve); + } + // // if we are using inverse class loading, check local urls first //