Merge change 6801 into donut

* changes:
  Uri.EMPTY.toString() was returning null due to an initialization order bug. Fixes internal issue #1957015.
This commit is contained in:
Android (Google) Code Review
2009-07-10 13:40:02 -07:00
3 changed files with 17 additions and 10 deletions

View File

@@ -104,6 +104,18 @@ public abstract class Uri implements Parcelable, Comparable<Uri> {
/** Log tag. */
private static final String LOG = Uri.class.getSimpleName();
/**
* NOTE: EMPTY accesses this field during its own initialization, so this
* field *must* be initialized first, or else EMPTY will see a null value!
*
* Placeholder for strings which haven't been cached. This enables us
* to cache null. We intentionally create a new String instance so we can
* compare its identity and there is no chance we will confuse it with
* user data.
*/
@SuppressWarnings("RedundantStringConstructorCall")
private static final String NOT_CACHED = new String("NOT CACHED");
/**
* The empty URI, equivalent to "".
*/
@@ -349,15 +361,6 @@ public abstract class Uri implements Parcelable, Comparable<Uri> {
/** Placeholder value for an index which hasn't been calculated yet. */
private final static int NOT_CALCULATED = -2;
/**
* Placeholder for strings which haven't been cached. This enables us
* to cache null. We intentionally create a new String instance so we can
* compare its identity and there is no chance we will confuse it with
* user data.
*/
@SuppressWarnings("RedundantStringConstructorCall")
private static final String NOT_CACHED = new String("NOT CACHED");
/**
* Error message presented when a user tries to treat an opaque URI as
* hierarchical.

View File

@@ -1,4 +1,4 @@
framework=/system/framework
bpath=$framework/core.jar:$framework/ext.jar:$framework/framework.jar:$framework/android.test.runner.jar
adb shell exec dalvikvm -Xbootclasspath:$bpath -cp system/app/AndroidTests.apk \
adb shell exec dalvikvm -Xbootclasspath:$bpath -cp /system/app/AndroidTests.apk:/data/app/com.android.unit_tests.apk \
com.android.internal.util.WithFramework junit.textui.TestRunner $*

View File

@@ -499,4 +499,8 @@ public class UriTest extends TestCase {
assertEquals(uriString, uri.toString());
}
public void testEmptyToStringNotNull() {
assertNotNull(Uri.EMPTY.toString());
}
}