summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorJesse Wilson <jessewilson@google.com>2010-09-22 10:28:27 -0700
committerJesse Wilson <jessewilson@google.com>2010-09-22 10:28:27 -0700
commit64b25cf736bc5f9b9f6d548f0694fb76fe805d0c (patch)
treeea99384a30a7c996ff10d84aa2b94c5600ddcdd3 /core
parentb08013c312e3d849029a2f4c11889274c00f438d (diff)
downloadframeworks_base-64b25cf736bc5f9b9f6d548f0694fb76fe805d0c.zip
frameworks_base-64b25cf736bc5f9b9f6d548f0694fb76fe805d0c.tar.gz
frameworks_base-64b25cf736bc5f9b9f6d548f0694fb76fe805d0c.tar.bz2
Fix problem where Base64InputStream single-byte reads were unsigned.
Change-Id: Ibdfb77a283300baa61738fe98aa1c9f29eaf976f http://b/3026478
Diffstat (limited to 'core')
-rw-r--r--core/java/android/util/Base64InputStream.java2
-rw-r--r--core/tests/coretests/src/android/util/Base64Test.java11
2 files changed, 12 insertions, 1 deletions
diff --git a/core/java/android/util/Base64InputStream.java b/core/java/android/util/Base64InputStream.java
index da3911d..e9dac24 100644
--- a/core/java/android/util/Base64InputStream.java
+++ b/core/java/android/util/Base64InputStream.java
@@ -112,7 +112,7 @@ public class Base64InputStream extends FilterInputStream {
if (outputStart >= outputEnd) {
return -1;
} else {
- return coder.output[outputStart++];
+ return coder.output[outputStart++] & 0xff;
}
}
diff --git a/core/tests/coretests/src/android/util/Base64Test.java b/core/tests/coretests/src/android/util/Base64Test.java
index 0f5b090..53368d4 100644
--- a/core/tests/coretests/src/android/util/Base64Test.java
+++ b/core/tests/coretests/src/android/util/Base64Test.java
@@ -16,6 +16,9 @@
package android.util;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
import junit.framework.TestCase;
import java.io.ByteArrayInputStream;
@@ -404,6 +407,14 @@ public class Base64Test extends TestCase {
}
}
+ /** http://b/3026478 */
+ public void testSingleByteReads() throws IOException {
+ InputStream in = new Base64InputStream(
+ new ByteArrayInputStream("/v8=".getBytes()), Base64.DEFAULT);
+ assertEquals(254, in.read());
+ assertEquals(255, in.read());
+ }
+
/**
* Tests that Base64OutputStream produces exactly the same results
* as calling Base64.encode/.decode on an in-memory array.