You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by cl...@apache.org on 2005/10/18 19:09:49 UTC

svn commit: r326164 - in /incubator/jdo/trunk: api11/src/java/javax/jdo/spi/I18NHelper.java api20/src/java/javax/jdo/spi/I18NHelper.java

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();
+                }
+            }
+        );
     }
 }