Return-Path: Delivered-To: apmail-db-jdo-commits-archive@www.apache.org Received: (qmail 62080 invoked from network); 18 Oct 2005 17:10:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 18 Oct 2005 17:10:19 -0000 Received: (qmail 54290 invoked by uid 500); 18 Oct 2005 17:10:11 -0000 Mailing-List: contact jdo-commits-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-commits@db.apache.org Received: (qmail 54257 invoked by uid 99); 18 Oct 2005 17:10:11 -0000 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 [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Tue, 18 Oct 2005 10:10:11 -0700 Received: (qmail 61677 invoked by uid 65534); 18 Oct 2005 17:09:50 -0000 Message-ID: <20051018170950.61674.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r326164 - in /incubator/jdo/trunk: api11/src/java/javax/jdo/spi/I18NHelper.java api20/src/java/javax/jdo/spi/I18NHelper.java Date: Tue, 18 Oct 2005 17:09:49 -0000 To: jdo-commits@db.apache.org From: clr@apache.org X-Mailer: svnmailer-1.0.5 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: clr Date: Tue Oct 18 10:09:46 2005 New Revision: 326164 URL: http://svn.apache.org/viewcvs?rev=326164&view=rev Log: JDO-178 fix suggested by Marcin Owsiany Modified: incubator/jdo/trunk/api11/src/java/javax/jdo/spi/I18NHelper.java incubator/jdo/trunk/api20/src/java/javax/jdo/spi/I18NHelper.java Modified: incubator/jdo/trunk/api11/src/java/javax/jdo/spi/I18NHelper.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api11/src/java/javax/jdo/spi/I18NHelper.java?rev=326164&r1=326163&r2=326164&view=diff ============================================================================== --- incubator/jdo/trunk/api11/src/java/javax/jdo/spi/I18NHelper.java (original) +++ incubator/jdo/trunk/api11/src/java/javax/jdo/spi/I18NHelper.java Tue Oct 18 10:09:46 2005 @@ -236,7 +236,13 @@ if (messages == null) //not found as loaded - add { - messages = ResourceBundle.getBundle(bundleName, locale, loader); + if (loader != null) { + messages = ResourceBundle.getBundle(bundleName, locale, loader); + } else { + // the JDO library is loaded by the boostrap class loader + messages = ResourceBundle.getBundle(bundleName, locale, + getSystemClassLoaderPrivileged()); + } bundles.put(bundleName, messages); } return messages; @@ -374,5 +380,19 @@ { final int index = className.lastIndexOf('.'); return ((index != -1) ? className.substring(0, index) : ""); // NOI18N + } + + /** + * Get the system class loader. This must be done in a doPrivileged + * block because of security. + */ + private static ClassLoader getSystemClassLoaderPrivileged() { + return (ClassLoader) AccessController.doPrivileged ( + new PrivilegedAction () { + public Object run () { + return ClassLoader.getSystemClassLoader(); + } + } + ); } } Modified: incubator/jdo/trunk/api20/src/java/javax/jdo/spi/I18NHelper.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/src/java/javax/jdo/spi/I18NHelper.java?rev=326164&r1=326163&r2=326164&view=diff ============================================================================== --- incubator/jdo/trunk/api20/src/java/javax/jdo/spi/I18NHelper.java (original) +++ incubator/jdo/trunk/api20/src/java/javax/jdo/spi/I18NHelper.java Tue Oct 18 10:09:46 2005 @@ -236,7 +236,13 @@ if (messages == null) //not found as loaded - add { - messages = ResourceBundle.getBundle(bundleName, locale, loader); + if (loader != null) { + messages = ResourceBundle.getBundle(bundleName, locale, loader); + } else { + // the JDO library is loaded by the boostrap class loader + messages = ResourceBundle.getBundle(bundleName, locale, + getSystemClassLoaderPrivileged()); + } bundles.put(bundleName, messages); } return messages; @@ -374,5 +380,19 @@ { final int index = className.lastIndexOf('.'); return ((index != -1) ? className.substring(0, index) : ""); // NOI18N + } + + /** + * Get the system class loader. This must be done in a doPrivileged + * block because of security. + */ + private static ClassLoader getSystemClassLoaderPrivileged() { + return (ClassLoader) AccessController.doPrivileged ( + new PrivilegedAction () { + public Object run () { + return ClassLoader.getSystemClassLoader(); + } + } + ); } }