You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ay...@apache.org on 2007/05/17 17:30:56 UTC
svn commit: r538967 - in /harmony/enhanced/classlib/trunk/modules/luni/src:
main/java/java/util/ test/java/tests/api/java/util/
test/java/tests/api/java/util/support/ test/resources/tests/api/java/util/
test/resources/tests/api/java/util/support/
Author: ayza
Date: Thu May 17 08:30:55 2007
New Revision: 538967
URL: http://svn.apache.org/viewvc?view=rev&rev=538967
Log:
Applying slightly modified version of the patch from HARMONY-3823 ([classlib][luni] Wrong implementation of strategy for instantiating resource bundles in java.util.ResourceBundle)
Added:
harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/
harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/A.java (with props)
harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/B.java (with props)
harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/I.java (with props)
harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/P.java (with props)
harmony/enhanced/classlib/trunk/modules/luni/src/test/resources/tests/api/java/util/
harmony/enhanced/classlib/trunk/modules/luni/src/test/resources/tests/api/java/util/support/
harmony/enhanced/classlib/trunk/modules/luni/src/test/resources/tests/api/java/util/support/B.properties (with props)
Modified:
harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ResourceBundle.java
harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ResourceBundleTest.java
Modified: harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ResourceBundle.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ResourceBundle.java?view=diff&rev=538967&r1=538966&r2=538967
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ResourceBundle.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ResourceBundle.java Thu May 17 08:30:55 2007
@@ -267,13 +267,17 @@
try {
Class<?> bundleClass = Class.forName(bundleName, true, loader);
- bundle = (ResourceBundle) bundleClass.newInstance();
- bundle.setLocale(locale);
+
+ if (ResourceBundle.class.isAssignableFrom(bundleClass)) {
+ bundle = (ResourceBundle) bundleClass.newInstance();
+ }
} catch (LinkageError e) {
} catch (Exception e) {
}
- if (bundle == null) {
+ if (bundle != null) {
+ bundle.setLocale(locale);
+ } else {
final String fileName = bundleName.replace('.', '/');
InputStream stream = AccessController
.doPrivileged(new PrivilegedAction<InputStream>() {
Modified: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ResourceBundleTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ResourceBundleTest.java?view=diff&rev=538967&r1=538966&r2=538967
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ResourceBundleTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ResourceBundleTest.java Thu May 17 08:30:55 2007
@@ -28,6 +28,7 @@
import java.util.Vector;
import tests.support.resource.Support_Resources;
+import tests.api.java.util.support.B;
public class ResourceBundleTest extends junit.framework.TestCase {
@@ -126,6 +127,12 @@
bundle = ResourceBundle.getBundle(name, Locale.getDefault(), loader);
assertEquals("Wrong cached value",
"resource", bundle.getString("property"));
+
+ // Regression test for Harmony-3823
+ B bb = new B();
+ String s = bb.find("nonexistent");
+ s = bb.find("name");
+ assertEquals("Wrong property got", "Name", s);
}
/**
Added: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/A.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/A.java?view=auto&rev=538967
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/A.java (added)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/A.java Thu May 17 08:30:55 2007
@@ -0,0 +1,13 @@
+package tests.api.java.util.support;
+
+public class A implements I {
+ private static P pp = new P();
+
+ public A() {
+ pp.setClazz(getClass());
+ }
+
+ public String find(String key) {
+ return pp.findProp(key);
+ }
+}
Propchange: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/A.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/B.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/B.java?view=auto&rev=538967
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/B.java (added)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/B.java Thu May 17 08:30:55 2007
@@ -0,0 +1,4 @@
+package tests.api.java.util.support;
+
+public class B extends A {
+}
Propchange: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/B.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/I.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/I.java?view=auto&rev=538967
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/I.java (added)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/I.java Thu May 17 08:30:55 2007
@@ -0,0 +1,5 @@
+package tests.api.java.util.support;
+
+public interface I {
+ String find(String key);
+}
Propchange: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/I.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/P.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/P.java?view=auto&rev=538967
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/P.java (added)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/P.java Thu May 17 08:30:55 2007
@@ -0,0 +1,28 @@
+package tests.api.java.util.support;
+
+import java.util.ResourceBundle;
+
+public class P {
+ private Class c;
+
+ public void setClazz(Class c) {
+ this.c = c;
+ }
+
+ public String findProp(String key) {
+ return findProp(this.c, key);
+ }
+
+ private String findProp(Class cls, String key) {
+ String ret = null;
+ try {
+ ResourceBundle b = ResourceBundle.getBundle(cls.getName());
+ ret = (String)b.getObject(key);
+ } catch (Exception e) {
+ }
+ if (ret == null && !cls.equals(Object.class) && !cls.isPrimitive()) {
+ ret = findProp(cls.getSuperclass(), key);
+ }
+ return ret;
+ }
+}
Propchange: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/support/P.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: harmony/enhanced/classlib/trunk/modules/luni/src/test/resources/tests/api/java/util/support/B.properties
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/resources/tests/api/java/util/support/B.properties?view=auto&rev=538967
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/resources/tests/api/java/util/support/B.properties (added)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/resources/tests/api/java/util/support/B.properties Thu May 17 08:30:55 2007
@@ -0,0 +1 @@
+name=Name
\ No newline at end of file
Propchange: harmony/enhanced/classlib/trunk/modules/luni/src/test/resources/tests/api/java/util/support/B.properties
------------------------------------------------------------------------------
svn:eol-style = native