• Home
  • History
  • Annotate
  • only in /libcore/luni/src/main/java/
History log of /libcore/luni/src/main/java/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f05f3a6bfe27e05fcd38ace7f0cd4cfe2a30cf00 20-Feb-2014 Brian Carlstrom <bdc@google.com> When decoding enum annotation value, treat it as a field name, not enum value

Bug: 13078746

(cherry picked from commit cc346026b56ca68149b9f1cbbb42136e09ef0be3)

Change-Id: I647b2121c20072f9872ef010b9ced88874af9fb9
ibcore/reflect/AnnotationAccess.java
0f702e293cb57da788261a80abc84391543f6791 13-Sep-2013 Elliott Hughes <enh@google.com> Clean up CharsetDecoder and CharsetEncoder.

This patch also fixes a few bugs, and a few test bugs, and then the bugs
exposed by fixing those tests.

(cherry picked from commit 6ad37f500b023ef09fd177ad8cd8e2ba0b842cae)

Change-Id: Ia58d30e414cc59c27a1d259e8056523d6df2c6bc
ava/nio/charset/CharsetDecoder.java
ava/nio/charset/CharsetEncoder.java
92918daeb43dbb9079f1f856c5a18329da82c15a 04-Nov-2013 Oliver Woodman <olly@google.com> Merge "Make getInetAddress generate less garbage." into klp-dev
87093a8b17f669c5c1487549a43e2b811b6fafea 04-Nov-2013 Oliver Woodman <olly@google.com> Merge "Remove UnsafeByteSequence." into klp-dev
93da7dfb1f3c08400831606d3666569be8a7c067 30-Oct-2013 Narayan Kamath <narayan@google.com> Remove use of UnsafeByteSequence.

We get most of the way there with BAOS in this use case,
except that we pay for additional locking and a call to
Charsets.forName.

JarFileBenchmark results :

AFTER
0% filename=/system/framework/bouncycastle.jar 989706.59 ns; stddev=28699.19 ns @ 10 trials
33% filename=/system/framework/core.jar 1115640.38 ns; stddev=13687.70 ns @ 10 trials
67% filename=/system/framework/framework.jar 1027097.16 ns; stddev=33908.38 ns @ 10 trials

BEFORE
0% filename=/system/framework/bouncycastle.jar 1016998.68 ns; sttdev=9393.46 ns @ 3 trials
33% filename=/system/framework/core.jar 1163348.29 ns; sttdev=42646.58 ns @ 10 trials
67% filename=/system/framework/framework.jar 1042157.91 ns; sttdev=32679.86 ns @ 10 trials

(Cherry picked from b7d186b5f0d2a6406146ad1f366642d86f5e6933)

Bug: b/11411129
Change-Id: Ib94789fb8396b4f2aad31cc8232b6f0bb0672238
ava/util/jar/ManifestReader.java
c7b35cdea3d660c8d4b77e11fa0ef19f6ca17db9 30-Oct-2013 Narayan Kamath <narayan@google.com> Remove UnsafeByteSequence.

Replace it with a smaller, less general class for reading
the contents of a file into a byte array or a string.

Remove the need for an additional buffer and instead read
the contents of the file directly into a buffer owned by
FileReader. Optimise for the case where the length
of the file is known.

This imposes the additional restriction on callers that the
path of the file they're reading is an absolute path. I've
checked that all callers obey that currently.

(Cherry picked from b0674a77ed67e30f2510064b89151002d7f2eb2a)

Bug: b/11411129
Change-Id: Ic020a45051416f2de9a2f78bd5f99a21feff17df
ava/lang/UnsafeByteSequence.java
ibcore/io/IoUtils.java
671a834be6d345a7df01ba19407dd1c96509c785 29-Oct-2013 Narayan Kamath <narayan@google.com> Make getInetAddress generate less garbage.

This function is now on the critical path for URLConnection
since OkHttp calls it to figure out what the MTU for the
NetworkInterface is.

This function performs poorly when there are a large
number of interfaces available.

- Read /proc/net/if_inet6 exactly once, instead of
once per interface.
- List the contents of /sys/class/net exactly once,
and not once per interface.

Also adds a couple of tests for if_inet6 parsing.

TODO: Add a "zero copy" version of UnsafeByteSequence
and then move readIntFile over to that version.

(Cherry picked from ab6d858336e6db8b5117b78837fee2a9f35fdf2c)

Bug: b/11411129

Change-Id: Ieb1d5f0beaf462721f897a5f6376a4587f3aebaf
ava/net/NetworkInterface.java
2496a680ade790744df6815bbb6ed144a7028b87 31-Oct-2013 Elliott Hughes <enh@google.com> Add a cache to ICU.getBestDateTimePattern.

Brings the time down from 7ms to 7us for a cache hit on Nexus 4.

Bug: 11447043

(cherry picked from commit 0fd776f4dbf7c1940c080003f0c7a02d35374ab9)

Change-Id: I6659ff8ea29227777db0c359024f1361a7cb47e6
ibcore/icu/ICU.java
ibcore/icu/LocaleData.java
e690ff8e85c0e0ed461112085a30496b771bc352 25-Oct-2013 Jeff Sharkey <jsharkey@android.com> Add more certificate MIME type mappings.

Bug: 11354402
Change-Id: I8fd361de60e4170546bad8e5e58170768778f00e
ibcore/net/MimeUtils.java
34f81a14c7c4002ab141ba90b2498974211b7df2 02-Oct-2013 Kenny Root <kroot@google.com> ZipFile: fix comparison for offset, pt 2

Also remove the "byteOffset" value for the length calculation.

Bug: 10947135
Change-Id: I6cbe3ed5552cd595020e8f3d0099daab6cada88e
ava/util/zip/ZipFile.java
a0f57f03512611f0c734d1cf00602f5c08bc593d 01-Oct-2013 Kenny Root <kroot@google.com> Merge "ZipFile: fix comparison for offset" into klp-dev
81e81ce7aa930332cbc35d06809b11b6d8fe2251 27-Sep-2013 Kenny Root <kroot@google.com> ZipFile: fix comparison for offset

The "byteOffset" value for the reading buffer was being checked against
the RandomAccessFile length value which didn't make much sense. Remove
that line to restore sanity.

Bug: 10947135
Change-Id: I4f85f5f1e162aeb19ff876a32e5b22bb876aacdb
ava/util/zip/ZipFile.java
a6e22fc9b70ebe39abd716ce37450bda935c0fb8 19-Sep-2013 Ian Rogers <irogers@google.com> Avoid computing class def indices.

Bug: 10244719
Also tidy AnnotationAccess.

(cherry-picked from 8b2c0b9abc3f520495f4387ea040132ba85cae69)
Change-Id: I6ec8fd4e36b428d7e16e01d98b7bebc143fac8c3

Conflicts:
libdvm/src/main/java/java/lang/Class.java
ibcore/reflect/AnnotationAccess.java
ibcore/reflect/GenericSignatureParser.java
d4ec55c4e1acc3c3df937facbd367aff6618536c 07-Sep-2013 Ian Rogers <irogers@google.com> Lazier annotation signature parsing.

Bug: 10244719.
Also, make wider use of empty arrays.
Also, use named inner classes to aid profiling.
Remove caching as the empty result will be fast.
Porting the ART changes to DVM, to avoid the caching, results in bringing
in a bunch of other ART clean-up.
TODO, avoid modified-UTF8 to String conversions by Dex.

Change-Id: I051b6e34b5a4e7a7f1383461a799755947a5ba36

Conflicts:
libdvm/src/main/java/java/lang/Class.java
ibcore/reflect/AnnotationAccess.java
ibcore/reflect/GenericSignatureParser.java
ibcore/reflect/ListOfTypes.java
ibcore/reflect/ListOfVariables.java
ibcore/reflect/Types.java
ibcore/util/EmptyArray.java
f9fbb9da62283dfc5d23b7e8f0a1746c89ee2c5e 12-Sep-2013 Kenny Root <kroot@google.com> Add specific exception for wrong final block length

EVP_DecryptFinal_ex can have an error on the wrong block length at the
end of a decrypted block, so throw IllegalBlockSizeException when that
happens instead of a RuntimeException.

(cherry picked from commit 9a4eb515a0b50c9ff5c57127a0ddcbd07dbcc312)

Bug: 10610957
Bug: https://code.google.com/p/android/issues/detail?id=58396
Change-Id: I4a4ee85f57e1507bb645b2177cfdf44e5e274b49
avax/crypto/CipherInputStream.java
e78392830b4548c65364449441cac3ff16f955f5 11-Sep-2013 Elliott Hughes <enh@google.com> icu4c DateIntervalFormat objects are expensive enough that we need to cache them.

It takes ~1ms to create a DateIntervalFormat on a z620, and around 8ms on a
current mobile device (Nexus 4). Add a small cache of recently-used formatters,
using a big lock rather than per-thread caches since this typically only
happens on the UI thread anyway, and because all the other frameworks date/time
formatting is behind a single lock too.

Bug: 10696944

(cherry picked from commit fd1d5e92b2eaf785cb18aa295b7b846cfc5e29af)

Change-Id: Iefd573ff6f9851efda0ebe18418dba61fb151e65
ibcore/icu/DateIntervalFormat.java
3d2b2ad2cd1f05ba72a550082083da4b5898f30b 11-Sep-2013 Kenny Root <kroot@google.com> Revert "Revert "Reconcile differences between zip implementations""

This reverts commit c2bcd6f029fa02657889af1120f2eaaf73da968e.

Bug: 10424836
Change-Id: I63f801c4f451383bfadd9c76f99c3ebb2726e7b0
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
c2bcd6f029fa02657889af1120f2eaaf73da968e 11-Sep-2013 Kenny Root <kroot@google.com> Revert "Reconcile differences between zip implementations"

This reverts commit bb68396d3c4262760055101cbf18c80999c692f5.

Change-Id: I56daf02fe24cc592844a5d0a9f1ca7432da2293e
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
bb68396d3c4262760055101cbf18c80999c692f5 21-Aug-2013 Kenny Root <kroot@google.com> Reconcile differences between zip implementations

Reconcile the difference between ZipFileRO and java.util.ZipFile to have
the same behavior.

Bug: 10424836
Change-Id: I6dcbb5234142dc8574052be2b18f062ef2e93b02
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
6243428ca4ba6d9d767070bbe2d5c480bbcd0669 09-Sep-2013 Kenny Root <kroot@google.com> Make sure AlgNameMapper has the latest name version

In the current design, if AlgNameMapper's class initialization is run
too early, the data will be incomplete. This change uses the Services's
cache versioning system to check when it should update its internal
cache ensuring it's never out of date.

Bug: 10666722
Change-Id: I0549ebb8fa1b5b3a8af71ceb179d5d217bdbdf59
rg/apache/harmony/security/utils/AlgNameMapper.java
41a439b85b660a1c7cb33b1ae0e4b3e5713664f1 07-Sep-2013 Elliott Hughes <enh@google.com> Fix formatDateRange's decisions about when to show a year.

Bug: 10209343

(cherry picked from commit e1a17472940f90d6712203f3523bb054bdbfd6e4)

Change-Id: I9931c3e72d5623dec8cc21c09eae5532aa7eb7f6
ibcore/icu/DateIntervalFormat.java
6111f2237489aea4fc3f3d84ccc2c1ae64b0654e 07-Sep-2013 Kenny Root <kroot@google.com> Merge "Register Conscrypt as the AlgNameMapper source" into klp-dev
b6963ac272834ec5f791ecdc773d17cb156e23f0 06-Sep-2013 Kenny Root <kroot@google.com> Register Conscrypt as the AlgNameMapper source

Conscrypt was moved out of libcore, so the call directly to NativeCrypto
was removed as well. To break the dependency, introduce an interface
that Conscrypt registers as to answer algorithm name to OID mapping
queries and vice versa.

Bug: 10310296
Change-Id: I5fcda678a995bc800b97d8fb0ce2f16553dff5dd
rg/apache/harmony/security/utils/AlgNameMapper.java
rg/apache/harmony/security/utils/AlgNameMapperSource.java
dc25e3cb1da6073f5d84216c418b42afba4adcad 07-Sep-2013 Kenny Root <kroot@google.com> Merge "Revert "Register Conscrypt as the AlgNameMapper source"" into klp-dev
1f4cefdd6ead5316eb4df810d1ce4ab316fff5f8 07-Sep-2013 Kenny Root <kroot@google.com> Revert "Register Conscrypt as the AlgNameMapper source"

This causes the preloading to explode because it touches a native class.

This reverts commit 6fcfb5a75dfb595ccbcf0a7a576ee7515fe2da32.

Change-Id: I7dfc922de827ec5d01ead7592efd01c48ec17fc2
rg/apache/harmony/security/utils/AlgNameMapper.java
rg/apache/harmony/security/utils/AlgNameMapperSource.java
3160a05f77f25fde5dcefd48538e48247ef3ae68 07-Sep-2013 Kenny Root <kroot@google.com> Merge "Register Conscrypt as the AlgNameMapper source" into klp-dev
6fcfb5a75dfb595ccbcf0a7a576ee7515fe2da32 06-Sep-2013 Kenny Root <kroot@google.com> Register Conscrypt as the AlgNameMapper source

Conscrypt was moved out of libcore, so the call directly to NativeCrypto
was removed as well. To break the dependency, introduce an interface
that Conscrypt registers as to answer algorithm name to OID mapping
queries and vice versa.

Bug: 10310296
Change-Id: I06de1501681d28afbc36de9c32e384dd32790a53
rg/apache/harmony/security/utils/AlgNameMapper.java
rg/apache/harmony/security/utils/AlgNameMapperSource.java
bb0a7318f2ca1bc9768d6d68b9a4521dd40f09a9 06-Sep-2013 Elliott Hughes <enh@google.com> Fix formatDateRange's handling of all-day events.

Android's formatDateRange's interpretation of a time span running until 0 ms
into a day is different from icu4c. Traditionally we didn't count that as
being the next day, but icu4c does.

Bug: 10560853

(cherry picked from commit e6d0a351d58747ca6958ee9c9a12d2c3feb7f9db)

Change-Id: Ia394fe541afcfccfe801a8aa704ad8d14212d817
ibcore/icu/DateIntervalFormat.java
e8f98b22cbd859c5c2cad9866335128a95adcd81 04-Sep-2013 Elliott Hughes <enh@google.com> Don't abbreviate 24-hour times.

Bug: 10318326

(cherry picked from commit 504a9b9d616bd108d26077d6d215677a29605f22)

Change-Id: I3ea76ad516b7d76b7e56a562b56cdfeff451f289
ibcore/icu/DateIntervalFormat.java
4a01f60804080f5e01873c218be287d456ad0d32 04-Sep-2013 Elliott Hughes <enh@google.com> Remove some unnecessary native code for LocaleData.

We already have a more general implementation, exposed as public
API >= jb-mr2.

(cherry picked from commit 783112d47e2236b6a7e2315c2e50166d755422a7)

Bug: 10611001
Change-Id: I5dc1c6588c183783053549e1052a475465d380e5
ibcore/icu/LocaleData.java
084a11c99172f083b0887438428a0df91065a1ed 04-Sep-2013 Elliott Hughes <enh@google.com> There's no space in "KitKat".

Just a kind of groove between the bars.

Change-Id: I311f14c3910646ab1716961d5be03b1457a61905
ava/util/Locale.java
413d4592ee114eac81014af4b6347e73873ce8ce 03-Sep-2013 Elliott Hughes <enh@google.com> Use the docs-approved Android x.y (Name) format consistently.

Also include the API level where the reason for mentioning the version
is an API difference (as opposed to simply a behavioral difference).

Change-Id: Idd69630fc5d6f6f0bd5d1c524cb32fd8c2fb750d
ava/net/HttpURLConnection.java
ava/text/SimpleDateFormat.java
ava/util/Locale.java
482b89bdd3e2069852061909f35823ab7dba844f 27-Aug-2013 Elliott Hughes <enh@google.com> Fix German date parsing.

CLDR changed German from having a mix of 3- and 4-character abbreviated month
names (such as "Juli" and "Aug"[ust]) to having only 4-character names by
adding periods to the end of abbreviated names (giving "Juli" and "Aug.").
This means that a date formatted with the old data (by jb-mr1, say) can't
be parsed with the new data (in jb-mr2, say). Work around this by doing what
icu4c's SimpleDateFormat::parse does --- accepting "xxx" as a match for "xxx.".

Bug: https://code.google.com/p/android/issues/detail?id=59383
Bug: 10511599

(cherry picked from commit df0ad3c0e7a4b15fc7ac16b7aaf6be3e7acfa309)

Change-Id: Iefa65f8399a5657f7060d40baab43f909d4b0481
ava/text/SimpleDateFormat.java
3b91d105cbd66fabcb5f4bf5d7a257cb58364bbb 27-Aug-2013 Elliott Hughes <enh@google.com> Merge "Improve the sort documentation slightly." into klp-dev
223ab34ad4890414b278a1e7893a99220c8f3203 27-Aug-2013 Elliott Hughes <enh@google.com> Fix ByteBuffer.duplicate documentation.

Bug: https://code.google.com/p/android/issues/detail?id=59403

(cherry picked from commit 1c298efc60083a2ce5bdbf3febb942f5ce4c621d)

Change-Id: Iff5df247768e87cc92cb7dcc390fe58dc738642f
ava/nio/ByteBuffer.java
ava/nio/CharBuffer.java
ava/nio/DoubleBuffer.java
ava/nio/FloatBuffer.java
ava/nio/IntBuffer.java
ava/nio/LongBuffer.java
ava/nio/ShortBuffer.java
8691dcf7c114c429dc451b306dcfd399b9aa4e45 27-Aug-2013 Elliott Hughes <enh@google.com> Improve the sort documentation slightly.

Make it a little clearer when ClassCastException can be thrown.

Bug: 10491028

(cherry picked from commit 35def4c9d5fb52e0eb2cb4fa7d8d10618d7e8baa)

Change-Id: I421fb03e8a58fdfebce86f434bf8813075d9bf2f
ava/util/Arrays.java
ava/util/Collections.java
224eac38f9d12acf212022fe2275117c01ba8b3d 22-Aug-2013 Vladimir Marko <vmarko@google.com> Fix PriorityQueue.removeAt(.), call siftUp(.) if needed.

Bug: 10424240

(cherry picked from commit cc9eae501ba0064681e44e175f2afdc6c190d9ca)

Change-Id: Id62d69926235912d047c71975bdb541f1cf67ad7
ava/util/PriorityQueue.java
613ebea3da2d973bbe6496d6e57eb4c8d75b148e 21-Aug-2013 Kenny Root <kroot@google.com> Fix extra and comment ordering in ZipEntry reading

(cherry picked from commit c242577b1569f97f806ef176e4549141df147b78)

Bug: 10424836
Change-Id: I99e6722ef898baa7f9a2d56e84e88aae5a6c9f4a
ava/util/zip/ZipEntry.java
20bcec87d24710e0d0469020f8738583218ab5bb 21-Aug-2013 Elliott Hughes <enh@google.com> Merge "Fix java.util.Scanner bugs." into klp-dev
2beb44385de1a04f6dc2a922f9b755f852d63b3c 21-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "Clarify that nanoTime works between processes" into klp-dev
84dc741f553e9f1f98456fe983bff2fb9914d727 20-Aug-2013 Elliott Hughes <enh@google.com> Fix java.util.Scanner bugs.

Also improve the documentation for java.util.regex.Matcher and unify the Scanner tests.

Bug: 10310707
Bug: https://code.google.com/p/android/issues/detail?id=40555

(cherry picked from commit 56ff05b16d4a82bc2386082409c78c3d94e0df01)

Change-Id: I4d7ff44a77768821970c9bab560d5facdb75e1b9
ava/util/Scanner.java
ava/util/regex/Matcher.java
7de50739bb51d7373686f060d8bd0dccc88b3276 20-Aug-2013 Kenny Root <kroot@google.com> Merge "Make sure seed values use full range" into klp-dev
a00497d7629726a7d258cefb7318d4ee2cd10c56 20-Aug-2013 Glenn Kasten <gkasten@google.com> Clarify that nanoTime works between processes

Change-Id: I7b71096aa5189c6f31d18931ebe95dc20478a9f1
ava/lang/System.java
a7f57f4eeb646195183b6a7fecf38cf35b37b196 20-Aug-2013 Elliott Hughes <enh@google.com> Fix Selector's handling of POLLHUP.

Bug: 10310709

(cherry picked from commit ed3322f25d79b6607fc314d75f96d46b7c783f43)

Change-Id: I3f9ce080170ed49f46650420673ca27863381852
ava/nio/SelectorImpl.java
f5d8857b623192a985e449453de5bf1efaa4ea79 16-Aug-2013 Elliott Hughes <enh@google.com> Fix a bunch of Charset tests.

The isRegistered test is still failing. The problem is that icu4c's
convrtrs.txt has names like "windows-1252" that are both the canonical
name for one charset and an alias for another legacy charset. I need
to work out how to resolve that.

Bug: 10210999

(cherry picked from commit ea1caf4ccc5c2255f384c0774aa9e055763a6a41)

Change-Id: I83cf1b9ae1d29f9956f443ef914a3e473e0f4692
ava/nio/charset/Charset.java
ab6d7714b47c04cc4bd812b32e6a6370181a06e4 16-Aug-2013 Kenny Root <kroot@google.com> Make sure seed values use full range

(cherry picked from commit 004435719afbe62d7ce6b39d69181b5dd801d598)

Bug: 6642616
Change-Id: I773dd31d92207151df05122920170851fa021fd5
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
b8e456e3b6d9184d81760a9b68cd1103e610846a 14-Aug-2013 Elliott Hughes <enh@google.com> More Charset test fixes.

Bug: 10210999

(cherry picked from commit c44b103bfd1a79762811d2125e9b94ce37300a44)

Change-Id: If28d9e2eb3d1d148863f0a08c1e17371918fcaa2
ava/nio/charset/Charset.java
71dc4f7d4829335f7aba5414b43d16cd316ba22f 31-Jul-2013 Brian Carlstrom <bdc@google.com> Refactor ART java.lang.reflect implementation

Bug: 10014286.

(cherry picked from commit 1222a700a25956b0e3634731160017f0d3aa0585)

Change-Id: Ic5672489f6c028d47e6c2a499d6a2bbdd5cc4e4c
ava/lang/reflect/Modifier.java
ibcore/reflect/AnnotationAccess.java
9edca89080204647492b04f848107bcb90798a1c 14-Aug-2013 Elliott Hughes <enh@google.com> Work around icu4c causing canEncode to always return true for surrogates.

Bug: 10310751

(cherry picked from commit bb317b5a6ff071ee4ffa0b4e811367be962238b7)

Change-Id: Id31ea5715c1e3f744ed8eb33d6a7f3cca03159d1
ava/nio/charset/CharsetEncoder.java
4f048e215773f825ec8129363fd2eb989b6a272f 09-Aug-2013 Elliott Hughes <enh@google.com> am fdf82f8b: Merge "Fix various Charset tests, clean up the implementation."

* commit 'fdf82f8ba94915a263b418350c3b55ab42002841':
Fix various Charset tests, clean up the implementation.
8405b26225d88812bb336b2b6c0181266768c3f0 06-Aug-2013 Elliott Hughes <enh@google.com> Disallow filenames containing NUL bytes.

C code gets confused by such filenames, and even if we can handle them,
they're a misleading and of questionable utility because a valid pathname
can't contain a NUL byte.

Bug: https://code.google.com/p/android/issues/detail?id=58465
Bug: 10148349
Change-Id: I3f7e1a17c526b6bb5752dae82610125ad2648d54
(cherry picked from commit b1d05573ae20cdd3d5b4e25f905ce44c8f7d5c0e)
ava/util/zip/ZipEntry.java
5ec6bf8d033754e06a463adb091d2c0afd0755ac 08-Aug-2013 Elliott Hughes <enh@google.com> Fix various Charset tests, clean up the implementation.

Bug: 10211558
Bug: 10211378
Change-Id: Ib3f97430f62163c0459c53e0c282ae0ca840e0af
ava/nio/charset/CharsetDecoder.java
ava/nio/charset/CharsetEncoder.java
ava/nio/charset/CharsetEncoderICU.java
ava/nio/charset/CoderResult.java
ibcore/icu/NativeConverter.java
87f155f5761977276cd2aff66afe9312aefec02d 08-Aug-2013 Chad Brubaker <cbrubaker@google.com> Use uncompressed size for uncompressed zip entries

Use the uncompressed size when setting the length of entries stored
without compression, conistent with the other Zip implementations.

Bug: 10148349
Change-Id: I7559a32b1190d27d9e8e2bd3dd419171e971644d
ava/util/zip/ZipFile.java
edbebbc8658a3517b9223b1b27927fdffd500661 07-Aug-2013 Elliott Hughes <enh@google.com> am 5a846f38: Merge "Improve a constant name and related comments."

* commit '5a846f3874cc3e0fa67e5dee1c5a8f83d9d440d6':
Improve a constant name and related comments.
a925c59e2a7a6ddc40f8bbc6e28697d7add63497 07-Aug-2013 Elliott Hughes <enh@google.com> am 0a1664dd: Merge "Rename InitManifest to ManifestReader."

* commit '0a1664ddae59d0be08955264e9c32eaca76f09ec':
Rename InitManifest to ManifestReader.
0e1d1de2f98541c57b222a7733b4492450dae733 06-Aug-2013 Elliott Hughes <enh@google.com> Merge "Fix ZipFile local file entry parsing."
16a25028cb607a2ea27908858ef5363c0b20e0b6 06-Aug-2013 Elliott Hughes <enh@google.com> Improve a constant name and related comments.

Change-Id: I607a084a31a9e941d17938eec10239776b19882a
ava/util/zip/ZipOutputStream.java
3a99bc391e224b8f1d371955c61dd47642e25b53 06-Aug-2013 Elliott Hughes <enh@google.com> Rename InitManifest to ManifestReader.

Change-Id: I4bb53d7a625324c5b7ca28a3dc0759f2b107825f
ava/util/jar/InitManifest.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
ava/util/jar/ManifestReader.java
40996320ce46ca44f68b911f3b9e2bcdcf1168db 06-Aug-2013 Elliott Hughes <enh@google.com> am 31694145: Merge "Cache the few unique Attributes.Name values."

* commit '3169414555baa35aeca4028a5abda543a37c45cc':
Cache the few unique Attributes.Name values.
59675dbb837c2a92352032e2ef0c8fc3305da9c8 06-Aug-2013 Elliott Hughes <enh@google.com> Cache the few unique Attributes.Name values.

Google+ was seeing ~8k duplicate names. Their real fix is to not
accidentally cause us to parse their jar manifest, but we shouldn't
be unnecessarily wasteful in the common case, should anyone actually
need their jar manifest.

Change-Id: Ia06b0964956332975e5efd079d96aa76ba605f48
ava/util/jar/Attributes.java
ava/util/jar/InitManifest.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
ibcore/net/url/JarURLConnectionImpl.java
12f61daa38a472fafa15b71f70b4ffafa8591968 02-Aug-2013 Elliott Hughes <enh@google.com> am 0c9024de: Merge "Minor cleanup from investigating UnixSelectorTest failures."

* commit '0c9024de8e594f6daa16217d339cb39cac0ea7e2':
Minor cleanup from investigating UnixSelectorTest failures.
318d6de23bec3024a85eb211f5843d925774622a 01-Aug-2013 Elliott Hughes <enh@google.com> Minor cleanup from investigating UnixSelectorTest failures.

This doesn't address the failures, but I'm moving on to look at the
other failures first.

Bug: 10127357
Change-Id: I6382e843bcb0d3e4b8726500beba2b5e123e9e01
ava/nio/SelectorImpl.java
e6aca39ed1c8279ceada88e272f5debeeb54087e 01-Aug-2013 Elliott Hughes <enh@google.com> am 0e42c47b: Merge "Fix a Selector bug and a test bug."

* commit '0e42c47b4bd2d59930f2caf54cadb016ddcfcbc7':
Fix a Selector bug and a test bug.
067e5d68f30887f1d53bf6afde6007beb749e2c5 01-Aug-2013 Elliott Hughes <enh@google.com> Fix a Selector bug and a test bug.

Bug: 10127357
Change-Id: I6d80586b243d6bd45fda5a36c043600d7528e891
ava/nio/SelectionKeyImpl.java
51e40f516e2b014ced04bfffb3969e30ae78138c 01-Aug-2013 Elliott Hughes <enh@google.com> am cc69d5a0: Merge "Fix DateIntervalFormat to take time zone into account."

* commit 'cc69d5a0015c64a58caba83d97fd5ed7febd7dd1':
Fix DateIntervalFormat to take time zone into account.
507e7789a5aace0f30d85dab8862151b1eba693a 01-Aug-2013 Elliott Hughes <enh@google.com> Fix DateIntervalFormat to take time zone into account.

Bug: 10089890
Change-Id: I91e61429108abb16810701d6d9feb6d1ad431740
ibcore/icu/DateIntervalFormat.java
2993ed36295270cc6746d7bf88583ee7d9a4af4c 31-Jul-2013 Elliott Hughes <enh@google.com> am 5d3163e4: Merge "Improve Map documentation."

* commit '5d3163e446f35f6cbb25259efc253d070c8c1142':
Improve Map documentation.
8e3102e7940bb0817b0b2fc92d5f9fdcffc12ebf 31-Jul-2013 Elliott Hughes <enh@google.com> Improve Map documentation.

Bug: https://code.google.com/p/android/issues/detail?id=58255
Change-Id: Ibfc76628fc548d7f205d76603b6b1b72ceb3e66e
ava/util/NavigableMap.java
ava/util/SortedMap.java
5beecc6d7b7e8a9cf5d34d8c1d3a82b55891dcb2 30-Jul-2013 Elliott Hughes <enh@google.com> am b10f96fc: Merge "Add gettid."

* commit 'b10f96fc09e18672cb0ea464b6c38c2f59a24277':
Add gettid.
069525a39125c203b658c805685b6045a7d4dfeb 30-Jul-2013 Elliott Hughes <enh@google.com> Add gettid.

Change-Id: Ie18095d696ebeb8f056fb7f5b7cfbc452cdf8206
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
301174b9ed79a73e35d7463f06ae48eb0654c6ca 26-Jul-2013 Elliott Hughes <enh@google.com> Use the libcore.reflect implementation.

(cherry-pick of 07e1d1125c11b8e037a31e9ebb6b64332a394a9f.)

Change-Id: I06ccfb93525525ec4f417bcbabdcead2e817ced6
ibcore/reflect/AnnotationAccess.java
ibcore/reflect/GenericArrayTypeImpl.java
ibcore/reflect/GenericSignatureParser.java
ibcore/reflect/InternalNames.java
ibcore/reflect/ListOfTypes.java
ibcore/reflect/ListOfVariables.java
ibcore/reflect/ParameterizedTypeImpl.java
ibcore/reflect/TypeVariableImpl.java
ibcore/reflect/Types.java
ibcore/reflect/WildcardTypeImpl.java
07e1d1125c11b8e037a31e9ebb6b64332a394a9f 26-Jul-2013 Elliott Hughes <enh@google.com> Use the libcore.reflect implementation.

Change-Id: I3cb180d3c1912b9362c5a2e8dbedc1e80fb0c14f
ibcore/reflect/AnnotationAccess.java
ibcore/reflect/GenericArrayTypeImpl.java
ibcore/reflect/GenericSignatureParser.java
ibcore/reflect/InternalNames.java
ibcore/reflect/ListOfTypes.java
ibcore/reflect/ListOfVariables.java
ibcore/reflect/ParameterizedTypeImpl.java
ibcore/reflect/TypeVariableImpl.java
ibcore/reflect/Types.java
ibcore/reflect/WildcardTypeImpl.java
b8f93421684a6292496804ca30d8428d2602ce7a 25-Jul-2013 Kenny Root <kroot@google.com> Rename inner class to NoPreloadHolder

This is a magic name that the preload tool will not add to the preload
list. This will prevent these classes from being instantiated during
Zygote's class preloading stage.

Bug: 9984058
Change-Id: Ie0f8a70e9bbf76a4beb7d862c67f665fe6aed280
avax/net/ssl/HttpsURLConnection.java
bde17cc7dd7e1b3f4449a498973a9489035b975f 25-Jul-2013 Elliott Hughes <enh@google.com> am 22755461: Merge "Add an icu4c-based DateIntervalFormat."

* commit '22755461d76d43473782dcd6e01defcffa3effb8':
Add an icu4c-based DateIntervalFormat.
480537d9d51add98bffe6d9a9ef3b1022b959336 03-May-2013 Elliott Hughes <enh@google.com> Add an icu4c-based DateIntervalFormat.

This will be used to replace DateUtils.formatDateRange's implementation.

Bug: 7289514
Change-Id: I5588c79a9d0a5cbed3b4600389c545e83fc26967
ibcore/icu/DateIntervalFormat.java
da5b7116b58795b169961cbd63c2b21bac741d9a 24-Jul-2013 Kenny Root <kroot@google.com> Delay SSLSocketImpl instantiation until needed

Class preloading will create an instance of objects if they are in
static fields, so put the ones we don't want instantiated into a holder
class that is not preloaded.

Bug: 9984058
Change-Id: I0f61deb9120d67d0e855bbc044a2565dbba44e29
avax/net/ssl/HttpsURLConnection.java
24748992ed6eccfa4e9b8aa90cbb599045816d81 24-Jul-2013 Elliott Hughes <enh@google.com> am 18c6ef53: am ce6f7cc5: Merge "Return a more specific type from AnnotationFactory.createAnnotation."

* commit '18c6ef53b56aa0ae9ff225bf7567375e7448923c':
Return a more specific type from AnnotationFactory.createAnnotation.
18c6ef53b56aa0ae9ff225bf7567375e7448923c 24-Jul-2013 Elliott Hughes <enh@google.com> am ce6f7cc5: Merge "Return a more specific type from AnnotationFactory.createAnnotation."

* commit 'ce6f7cc54d4b71b2fd33288c8bf7c0fc863745f8':
Return a more specific type from AnnotationFactory.createAnnotation.
47f7d00f0edf404e1cac410334e1ea4d75a28b8d 24-Jul-2013 Elliott Hughes <enh@google.com> Return a more specific type from AnnotationFactory.createAnnotation.

Change-Id: Ic73ff86addb689c4b67298d45385a293ccc4ecef
ibcore/reflect/AnnotationFactory.java
55e7e8ac6bf34c75461f416b0a8249b023318872 24-Jul-2013 Elliott Hughes <enh@google.com> am 5a2fc9c9: am 4323ab38: Merge "Simplify merges of the annotation code."

* commit '5a2fc9c912510c65504a548f2b26328d11017059':
Simplify merges of the annotation code.
5a2fc9c912510c65504a548f2b26328d11017059 24-Jul-2013 Elliott Hughes <enh@google.com> am 4323ab38: Merge "Simplify merges of the annotation code."

* commit '4323ab3865dfeca2ecba7fd612e4ed103452b328':
Simplify merges of the annotation code.
d736c6d053f63e4cd8dfb16c57093c67be3e18cd 24-Jul-2013 Elliott Hughes <enh@google.com> Simplify merges of the annotation code.

Change-Id: Ifb43ae14efcbfad1da600f97e3b3763ad9764b1f
ibcore/reflect/AnnotationFactory.java
ibcore/reflect/AnnotationMember.java
2da1bf57a6631f1cbd47cdd7692ba8743c993ad9 21-Jul-2013 Elliott Hughes <enh@google.com> Fix ZipFile local file entry parsing.

The file name length is given in both the central directory entry
and the local file entry, with no consistency check. ZipInputStream
and the VM's native code both use the local file entry's value but
ZipFile was using the value from the central directory.

This patch makes ZipFile behave like the other two. (Even though,
unlike the others, ZipFile actually has enough information to detect the
inconsistency and reject the file.)

Bug: https://code.google.com/p/android/issues/detail?id=57851
Bug: 9950697
Change-Id: I1d58ac523ad2024baff1644d7bf822dae412495d
(cherry picked from commit 257d72c1b3a69e0af0abe44801b53966dbf7d214)
ava/util/zip/ZipFile.java
8bb7bbad12d79f01c00cab515ecd290d560bd7f9 23-Jul-2013 Elliott Hughes <enh@google.com> am e5110fd4: am 320b233c: Merge "Remove HistoricalCharsetNames."

* commit 'e5110fd4c21fcf6dfe3253d989d40b747d8e7ef7':
Remove HistoricalCharsetNames.
e5110fd4c21fcf6dfe3253d989d40b747d8e7ef7 23-Jul-2013 Elliott Hughes <enh@google.com> am 320b233c: Merge "Remove HistoricalCharsetNames."

* commit '320b233c17ee4c743176e6ae2ace4825d1c0e1d8':
Remove HistoricalCharsetNames.
869c70395f50f75c4358fd47961af412db941405 23-Jul-2013 Elliott Hughes <enh@google.com> Update Locale documentation after icu4c 51 upgrade.

Change-Id: Id924fd12cbf6e1c5494a9f6d3b0d2a2daf72ef90
ava/util/Locale.java
817b74b58acb99b2e161228e329a6e6ae2d9d62b 23-Jul-2013 Elliott Hughes <enh@google.com> Remove HistoricalCharsetNames.

Bug: 3032697
Change-Id: Idbf92cded4a7c55b97ee558b0fa844237d262206
ava/io/HistoricalCharsetNames.java
ava/io/InputStreamReader.java
ava/io/OutputStreamWriter.java
ava/nio/charset/Charset.java
ba22290197a6d5f462b6e181515303c4ea4a3280 18-Jul-2013 Elliott Hughes <enh@google.com> resolved conflicts for merge of a6ca7a95 to stage-aosp-master

Change-Id: Icc74574f5e99d9b2076b3a1ae0136f8fdf944ee5
0ef9944d1968207ae8501aca5f904809320c520e 19-Jun-2013 Elliott Hughes <enh@google.com> Fixes for icu4c 51.

Change getYesterdayTodayAndTomorrow to cope with the new data layout.

Extend getDateFormatOrder to cope with 'G' in fa's preferred yyyyMMdd
pattern.

Fix a few tests to correspond to data changes.

Change-Id: I2478ae960ff6ec0b9a95290132c0ae0d5d8eff5a
ibcore/icu/ICU.java
53296749ee56c64d566ed99b8d85ecbfeee86196 10-Jul-2013 Elliott Hughes <enh@google.com> am 131dcd13: Merge "Fix Selector to allow read and write at the same time."

* commit '131dcd13038e931d75cd3a63d14df0527670f7f3':
Fix Selector to allow read and write at the same time.
57656d21f772aacbe0d05e54b1274f4c58993a52 10-Jul-2013 Elliott Hughes <enh@google.com> Fix Selector to allow read and write at the same time.

Bug: https://code.google.com/p/android/issues/detail?id=57456
Change-Id: I29e6688aafce886803bbbd12793df3ab952459c8
ava/nio/SelectorImpl.java
029b00d62b71747b2a700788066f92a7dd8579e2 10-Jul-2013 Elliott Hughes <enh@google.com> am ec618403: Merge "Switch libcore from statfs to statvfs."

* commit 'ec618403efee992f232f017fbff1afff6cfa0de3':
Switch libcore from statfs to statvfs.
721ceca2a52a3c27aa751476c8562e1e68088e15 09-Jul-2013 Elliott Hughes <enh@google.com> Switch libcore from statfs to statvfs.

Change-Id: I5115b9203ce6b11c37c0eb41fbc84fa5962ce196
ava/io/File.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
ibcore/io/StructStatFs.java
ibcore/io/StructStatVfs.java
9b0e19a42edab9f0426cff86d6ba41721d46750d 08-Jul-2013 Elliott Hughes <enh@google.com> am 1e1804d8: Merge "Permit content lengths greater than 2 GiB"

* commit '1e1804d82a82200f77edbf704cad825fea80527b':
Permit content lengths greater than 2 GiB
1e1804d82a82200f77edbf704cad825fea80527b 08-Jul-2013 Elliott Hughes <enh@google.com> Merge "Permit content lengths greater than 2 GiB"
f649e9972264cbe48f0be90c25e5661c50963f82 06-Jul-2013 jwilson <jwilson@squareup.com> Permit content lengths greater than 2 GiB

Change-Id: Id14de316d1eff3443ff9c91f098fe7ae4b6561cd
ava/net/HttpURLConnection.java
79ea6206d6c3bcbbd8ad199f69f5c989ad846c1c 04-Jul-2013 Elliott Hughes <enh@google.com> am 995537af: Merge "Values in ZIP files are unsigned."

* commit '995537af19719bf8c62f19b6df28d35ab52a5c4b':
Values in ZIP files are unsigned.
9edf43dfcc35c761d97eb9156ac4254152ddbc55 04-Jul-2013 Elliott Hughes <enh@google.com> Values in ZIP files are unsigned.

Bug: 9695860
Change-Id: I5c12dc5f3c70a9fe081adf5bf5b6b4b3a115e7e1
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
263e4e7325f9f4d16936cd82be41385a212a59bd 03-Jul-2013 Elliott Hughes <enh@google.com> am 10d1f630: Merge "Fix Character.isWhitespace and Character.isSpaceChar."

* commit '10d1f630d8df0064ed966193fa8c9d10a96a8321':
Fix Character.isWhitespace and Character.isSpaceChar.
a7752f4d22097346dd7849b92b9f36d0a0a7a8f3 03-Jul-2013 Elliott Hughes <enh@google.com> Fix Character.isWhitespace and Character.isSpaceChar.

Also add tests so we can't drift again in future.

Bug: 9690863
Change-Id: If9d43a67a4879cb5c6b8e6cab5f7ffd7a93035ac
ava/lang/Character.java
7381513bfbaf8fa431e1e661cafd7558b2a298ee 03-Jul-2013 Elliott Hughes <enh@google.com> am fee8ca27: Merge "Add a definition for IPPROTO_ICMPV6."

* commit 'fee8ca277b2621aea0729426af66356001e3b463':
Add a definition for IPPROTO_ICMPV6.
dca34b591430a1f1c1aabab1beb5cd6e5bd4d2f8 03-Jul-2013 Lorenzo Colitti <lorenzo@google.com> Add a definition for IPPROTO_ICMPV6.

This will allow us to write a CTS test for ICMPv6 datagram
socket support.

Bug: 9469865
Change-Id: I3da0918fa0797e7319f8b2f71856f455858bdc18
ibcore/io/OsConstants.java
4cd0c93509d1b357fd658d122fcbfdcba8118aa5 03-Jul-2013 Elliott Hughes <enh@google.com> am 1962abb0: Merge "Retire the java.nio.charset.Charsets Charset constants."

* commit '1962abb0885d9750635f25d3eb2aa2c75ef00680':
Retire the java.nio.charset.Charsets Charset constants.
29377d58c8ffc0b54134f588084b8c1ab7c8c994 03-Jul-2013 Elliott Hughes <enh@google.com> Retire the java.nio.charset.Charsets Charset constants.

Change-Id: Icf339230e1f2789ccb5f7dbff99c760aba7b2456
ava/nio/charset/Charsets.java
9cb861facc2f70d7876de79a8ef83a82133c25d9 02-Jul-2013 Elliott Hughes <enh@google.com> am b6e8336a: Merge "Implement Character.isAlphabetic and Character.isIdeographic."

* commit 'b6e8336a21b18213c4729658d25f4735c514eb17':
Implement Character.isAlphabetic and Character.isIdeographic.
2d99feb311425dda5e5e2223626d30eb5a0ae95a 02-Jul-2013 Elliott Hughes <enh@google.com> Implement Character.isAlphabetic and Character.isIdeographic.

Bug: 3484927
Change-Id: I0360fca2adf366009a5c2ae0e6a18f4e975c481a
ava/lang/Character.java
c611bca666f83409db0f274dcd7abf8c2d9d433a 02-Jul-2013 Elliott Hughes <enh@google.com> am 9642a650: Merge "Bring Character.UnicodeBlock up to Unicode 6.0."

* commit '9642a65009f5f986a341b5c265bae174d945aefb':
Bring Character.UnicodeBlock up to Unicode 6.0.
9642a65009f5f986a341b5c265bae174d945aefb 02-Jul-2013 Elliott Hughes <enh@google.com> Merge "Bring Character.UnicodeBlock up to Unicode 6.0."
448053c9f0b3294b627cf8f1157ab8664abff3a8 02-Jul-2013 Kenny Root <kroot@google.com> am 35e2b734: Merge "JarFile: finish support for authenticated attributes"

* commit '35e2b734149e88874883e48785f8263a8972ec61':
JarFile: finish support for authenticated attributes
35e2b734149e88874883e48785f8263a8972ec61 02-Jul-2013 Kenny Root <kroot@google.com> Merge "JarFile: finish support for authenticated attributes"
3de7083091497358d003bb889eba909f85b69fad 01-Jul-2013 Kenny Root <kroot@google.com> JarFile: finish support for authenticated attributes

There was an unfinished code path to use Authenticated Attributes to
verify JAR files. This finishes it up and allows PKCS#7 signatures with
that field instead of a direct digest on the encapsulated data.

The description of Authenticated Attributes can be found in RFC 3852
section 9 referred to as "authAttrs."

Bug: 9625223
Change-Id: Ia2c8fc09d39fbb67c1bdcdfe087f185471dcedd4
rg/apache/harmony/security/pkcs7/SignerInfo.java
rg/apache/harmony/security/utils/JarUtils.java
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/apache/harmony/security/x501/AttributeValue.java
35edbd5fca5f4180fe7a57101a38ea01a2d9cc62 01-Jul-2013 Elliott Hughes <enh@google.com> Bring Character.UnicodeBlock up to Unicode 6.0.

Bug: 3484927
Bug: 9656330
Change-Id: I34dbf3398ed955a6c621e154a7c0e4c0b51b9ebd
ava/lang/Character.java
ava/util/regex/Pattern.java
3daf45b4f36523a826c2ed7714a1dc8f87c70371 29-Jun-2013 Elliott Hughes <enh@google.com> am b36484da: Merge "Simplify Character.UnicodeBlock."

* commit 'b36484da340c327e492b170d2e3cd64f948c1255':
Simplify Character.UnicodeBlock.
fed2ee9e249b952c76f11110c41b33c4829aa56f 29-Jun-2013 Elliott Hughes <enh@google.com> Simplify Character.UnicodeBlock.

Bug: 3484927
Change-Id: I6d2417e04fd65ee95160a54b08d7cd5210973354
ava/lang/Character.java
dc36678d3ba7d256a79caf6c401e5fcee8b7d30d 29-Jun-2013 Elliott Hughes <enh@google.com> am c5cd81d1: Merge "Implement ZipFile.getComment."

* commit 'c5cd81d198a2c8196077af6d544bbe6daf02b421':
Implement ZipFile.getComment.
820c09bae53d20c5954d544ebc8a6ee8e54abbae 29-Jun-2013 Elliott Hughes <enh@google.com> Implement ZipFile.getComment.

Bug: 3484927
Change-Id: I30c30799aed1b3bbd1b2c90825685cea457600d1
ava/util/zip/ZipFile.java
ava/util/zip/ZipOutputStream.java
85fe9d70ed5939686ebb29034807f95d793198f7 29-Jun-2013 Elliott Hughes <enh@google.com> am 02127781: Merge "Add java.nio.charsets.StandardCharsets."

* commit '02127781afeb957f182d57f588053ee06ed3a6ab':
Add java.nio.charsets.StandardCharsets.
2a6f23ff8690ac2f025588a360547ce96cde0943 29-Jun-2013 Elliott Hughes <enh@google.com> Add java.nio.charsets.StandardCharsets.

Bug: 3484927
Change-Id: I5820267491b850b8fcc696fa48962710de123009
ava/net/InetUnixAddress.java
ava/net/Socks4Message.java
ava/net/URLClassLoader.java
ava/net/URLEncoder.java
ava/nio/charset/StandardCharsets.java
ava/util/ResourceBundle.java
ava/util/jar/InitManifest.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
ava/util/prefs/AbstractPreferences.java
ava/util/zip/ZipEntry.java
ava/util/zip/ZipOutputStream.java
ibcore/io/Base64.java
ibcore/io/IoUtils.java
ibcore/io/StrictLineReader.java
ibcore/net/UriCodec.java
ibcore/net/url/FtpURLConnection.java
ibcore/util/ZoneInfoDB.java
rg/apache/harmony/security/asn1/ASN1GeneralizedTime.java
rg/apache/harmony/security/asn1/ASN1StringType.java
rg/apache/harmony/security/asn1/ASN1UTCTime.java
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/xml/sax/helpers/XMLReaderFactory.java
d5ff78bee6dcc6428bdbd44f04146f1987e7fb46 29-Jun-2013 Elliott Hughes <enh@google.com> am 52ac4053: Merge "Add syncFlush support to GZIPOutputStream."

* commit '52ac40530506afe4c5a85d370e04ee77e523b1fa':
Add syncFlush support to GZIPOutputStream.
35f9da25ee063a0d0c32f7246b466cff8e57c9ee 29-Jun-2013 Elliott Hughes <enh@google.com> Add syncFlush support to GZIPOutputStream.

Bug: 3484927
Change-Id: I9a2702970fe746b1f6bbbb438e4ce830e916bad4
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/GZIPOutputStream.java
5e4829482fe61480088a30dd26e9229ab75f1f7b 28-Jun-2013 Elliott Hughes <enh@google.com> am d1d7384d: Merge "Implement java.util.Objects."

* commit 'd1d7384d00c53ea7cb0fe334654d5bcc7daced79':
Implement java.util.Objects.
4daf167bcaae54986cd4d9ad9b604700fde8f2fe 28-Jun-2013 Elliott Hughes <enh@google.com> Implement java.util.Objects.

Bug: 3484927
Change-Id: I759b10ff42ebbc5849b174241fa3d9b004e10959
ava/util/Objects.java
f3a3cb4a17e11854a71bcf3c30aaa1a7e07b610b 28-Jun-2013 Elliott Hughes <enh@google.com> am e858ac84: Merge "Improve Scanner performance."

* commit 'e858ac84568552273ae47391ac9be139cf0fc608':
Improve Scanner performance.
5c8452e1fca6a47ecbe71ac7f71e378b3be16ec7 27-Jun-2013 Elliott Hughes <enh@google.com> Improve Scanner performance.

We really don't want to compute a new regular expression and compile
it into a new Pattern every time we call nextInt (and friends). Adding
a single-element cache (flushed if the Scanner's locale changes) makes
this 100x faster. There still exists a pathological case where you
switch back and forth between bases.

Also improve the documentation to make it clearer that you really don't
want to use this awful class anyway.

Also bring back a few more of the tests we lost in the gingerbread timeframe.

Bug: https://code.google.com/p/android/issues/detail?id=57050
Change-Id: Id6095682fb44abae2887dda29dd3d32ac777c68f
ava/util/Scanner.java
ee3299722d1df30e7250cbb8430427a65416eec6 25-Jun-2013 Elliott Hughes <enh@google.com> am ca4d71b0: Merge "Clean up the #read javadoc."

* commit 'ca4d71b0e4578698ee95d98c1e9402a34f40e035':
Clean up the #read javadoc.
325ff8c68ed5e530e9e1d487b9e2e6d8f8e2bd37 25-Jun-2013 Elliott Hughes <enh@google.com> Clean up the #read javadoc.

By being more consistent in parameter naming, we can inherit more javadoc.

Also fix a couple of javadoc warnings in KnownFailure and DataInputStream.

Change-Id: I778f40469404fb50c51cdb1068970974f923180c
ava/io/BufferedInputStream.java
ava/io/BufferedReader.java
ava/io/ByteArrayInputStream.java
ava/io/CharArrayReader.java
ava/io/DataInputStream.java
ava/io/FilterInputStream.java
ava/io/FilterReader.java
ava/io/InputStream.java
ava/io/InputStreamReader.java
ava/io/LineNumberInputStream.java
ava/io/LineNumberReader.java
ava/io/ObjectInput.java
ava/io/ObjectInputStream.java
ava/io/PipedInputStream.java
ava/io/PipedReader.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/RandomAccessFile.java
ava/io/Reader.java
ava/io/SequenceInputStream.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/net/PlainSocketImpl.java
ava/nio/SocketChannelImpl.java
ava/nio/channels/Channels.java
ava/security/DigestInputStream.java
ava/util/jar/JarFile.java
ava/util/jar/JarInputStream.java
ava/util/zip/CheckedInputStream.java
ava/util/zip/DeflaterInputStream.java
ava/util/zip/GZIPInputStream.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
58a4696a387ba1bec629ebefcaa24fbf2bc0d9e5 22-Jun-2013 Elliott Hughes <enh@google.com> am cfc22029: Merge "Fix the SocketChannel accept locking behavior."

* commit 'cfc2202995730d853a0b2f77e4fa956158e64c3f':
Fix the SocketChannel accept locking behavior.
c43083ece7c4479fbe38001983a0d28893d0812a 22-Jun-2013 Elliott Hughes <enh@google.com> Fix the SocketChannel accept locking behavior.

Fixes a harmony-tests/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/ServerSocketChannelTest
test that had been failing since we turned it back on.

Change-Id: I76cbc5edc1ab9edc4d2818bd23649f4b906d662c
ava/nio/DatagramChannelImpl.java
ava/nio/ServerSocketChannelImpl.java
ava/nio/SocketChannelImpl.java
c886758ac4e49e91bb9f1a1db5db89bae6caf804 22-Jun-2013 Elliott Hughes <enh@google.com> am 29b4c788: Merge "Fix non-blocking SocketChannel connects."

* commit '29b4c7889ba10c41da5d2ed0e9c7057eb051ccbd':
Fix non-blocking SocketChannel connects.
c6ad01d286af243fd300dd105eb2e4437e0b6b16 21-Jun-2013 Elliott Hughes <enh@google.com> Fix non-blocking SocketChannel connects.

There are many reasons why the initial connect(2) may have resulted
in a ConnectException, only one of which (EINPROGRESS) means we haven't
yet failed.

Bug: https://code.google.com/p/android/issues/detail?id=56684
Change-Id: I2115998bce9043f076418fb0d1c22a26e04ee2e1
ava/nio/SocketChannelImpl.java
18a8b91a5ee97b7a6e8c0849b542ea765dc738a5 21-Jun-2013 Elliott Hughes <enh@google.com> am 61abfba7: Merge "Revert "Use CLOCK_MONOTONIC_RAW for System.nanoTime.""

* commit '61abfba7767a4ceb09ba69b03f42ef3bc3828e37':
Revert "Use CLOCK_MONOTONIC_RAW for System.nanoTime."
61abfba7767a4ceb09ba69b03f42ef3bc3828e37 21-Jun-2013 Elliott Hughes <enh@google.com> Merge "Revert "Use CLOCK_MONOTONIC_RAW for System.nanoTime.""
508bf13ba75610c75c4f40811dde0ec7e401f4c1 21-Jun-2013 Elliott Hughes <enh@google.com> Revert "Use CLOCK_MONOTONIC_RAW for System.nanoTime."

This reverts commit 7757924895a28a43ab9f7c3931cc9f972e870ddc.

Further investigation suggests this is a worse clock for our purposes, not the better one it would appear to be from the man page. It looks more like it should have been called CLOCK_TSC.

Change-Id: I6bf7fe4dac19272f145d240917129b4d5ab5ade1
ava/lang/System.java
7ce2f38cb64f5a5ef3bf31f7ce539b74c9c1b10e 21-Jun-2013 Elliott Hughes <enh@google.com> am 7bd5cc7f: Merge "Use CLOCK_MONOTONIC_RAW for System.nanoTime."

* commit '7bd5cc7f252dc16ab434cb1440abe5152e28f9c1':
Use CLOCK_MONOTONIC_RAW for System.nanoTime.
7bd5cc7f252dc16ab434cb1440abe5152e28f9c1 21-Jun-2013 Elliott Hughes <enh@google.com> Merge "Use CLOCK_MONOTONIC_RAW for System.nanoTime."
c82a2127689a9e8f8661f7fafae1346f399dbaa5 21-Jun-2013 Elliott Hughes <enh@google.com> am 20bbe6cc: Merge "Sync java.util.concurrent library up to 12.06.2013."

* commit '20bbe6cc4f3974bb038aa035bcebd205fc9171e8':
Sync java.util.concurrent library up to 12.06.2013.
20bbe6cc4f3974bb038aa035bcebd205fc9171e8 21-Jun-2013 Elliott Hughes <enh@google.com> Merge "Sync java.util.concurrent library up to 12.06.2013."
7757924895a28a43ab9f7c3931cc9f972e870ddc 21-Jun-2013 Elliott Hughes <enh@google.com> Use CLOCK_MONOTONIC_RAW for System.nanoTime.

We still need to use CLOCK_MONOTONIC on Darwin.

Bug: 9511688
Change-Id: Ieb1091e24ad5cd3bab79a4de1b1494cc64eef3d4
ava/lang/System.java
90181ef5bba842e587aac694bc3edfb65107ea18 17-Jun-2013 Elliott Hughes <enh@google.com> am 42602143: Merge "Add a short date format that\'s guaranteed to have 4-digit years."

* commit '42602143f054ccf7ab692c8fe229dadc8fcb58e7':
Add a short date format that's guaranteed to have 4-digit years.
2f5b39ddcdfc4ab7edd0a5a02801eb3dc96e0266 17-Jun-2013 Elliott Hughes <enh@google.com> Add a short date format that's guaranteed to have 4-digit years.

Bug: https://code.google.com/p/android/issues/detail?id=56385
Change-Id: Ie60d8c61aae09358d296654bd30378cbd11eeecb
ibcore/icu/LocaleData.java
91770798d8b9280d48d30df2ed7f63b3ed9b036f 14-Jun-2013 Calin Juravle <calin@google.com> Sync java.util.concurrent library up to 12.06.2013.

CouncurrentHashMap was skipped from this sync.

Change-Id: I29c67698a2e706b22e3cb5920c5fe91f1f15461c
ava/util/concurrent/AbstractExecutorService.java
ava/util/concurrent/ArrayBlockingQueue.java
ava/util/concurrent/BlockingDeque.java
ava/util/concurrent/BlockingQueue.java
ava/util/concurrent/BrokenBarrierException.java
ava/util/concurrent/Callable.java
ava/util/concurrent/CancellationException.java
ava/util/concurrent/CompletionService.java
ava/util/concurrent/ConcurrentLinkedDeque.java
ava/util/concurrent/ConcurrentLinkedQueue.java
ava/util/concurrent/ConcurrentMap.java
ava/util/concurrent/ConcurrentNavigableMap.java
ava/util/concurrent/ConcurrentSkipListMap.java
ava/util/concurrent/ConcurrentSkipListSet.java
ava/util/concurrent/CopyOnWriteArraySet.java
ava/util/concurrent/CountDownLatch.java
ava/util/concurrent/CountedCompleter.java
ava/util/concurrent/CyclicBarrier.java
ava/util/concurrent/DelayQueue.java
ava/util/concurrent/Delayed.java
ava/util/concurrent/Exchanger.java
ava/util/concurrent/ExecutionException.java
ava/util/concurrent/Executor.java
ava/util/concurrent/ExecutorService.java
ava/util/concurrent/Executors.java
ava/util/concurrent/ForkJoinPool.java
ava/util/concurrent/ForkJoinTask.java
ava/util/concurrent/ForkJoinWorkerThread.java
ava/util/concurrent/Future.java
ava/util/concurrent/FutureTask.java
ava/util/concurrent/LinkedBlockingDeque.java
ava/util/concurrent/LinkedBlockingQueue.java
ava/util/concurrent/LinkedTransferQueue.java
ava/util/concurrent/Phaser.java
ava/util/concurrent/PriorityBlockingQueue.java
ava/util/concurrent/RecursiveAction.java
ava/util/concurrent/RecursiveTask.java
ava/util/concurrent/RejectedExecutionException.java
ava/util/concurrent/RunnableFuture.java
ava/util/concurrent/RunnableScheduledFuture.java
ava/util/concurrent/ScheduledExecutorService.java
ava/util/concurrent/ScheduledThreadPoolExecutor.java
ava/util/concurrent/Semaphore.java
ava/util/concurrent/SynchronousQueue.java
ava/util/concurrent/ThreadPoolExecutor.java
ava/util/concurrent/TimeUnit.java
ava/util/concurrent/TimeoutException.java
ava/util/concurrent/atomic/AtomicBoolean.java
ava/util/concurrent/atomic/AtomicInteger.java
ava/util/concurrent/atomic/AtomicIntegerArray.java
ava/util/concurrent/atomic/AtomicIntegerFieldUpdater.java
ava/util/concurrent/atomic/AtomicLong.java
ava/util/concurrent/atomic/AtomicLongArray.java
ava/util/concurrent/atomic/AtomicLongFieldUpdater.java
ava/util/concurrent/atomic/AtomicMarkableReference.java
ava/util/concurrent/atomic/AtomicReference.java
ava/util/concurrent/atomic/AtomicReferenceArray.java
ava/util/concurrent/atomic/AtomicReferenceFieldUpdater.java
ava/util/concurrent/atomic/AtomicStampedReference.java
ava/util/concurrent/atomic/package-info.java
ava/util/concurrent/locks/AbstractOwnableSynchronizer.java
ava/util/concurrent/locks/AbstractQueuedLongSynchronizer.java
ava/util/concurrent/locks/AbstractQueuedSynchronizer.java
ava/util/concurrent/locks/Condition.java
ava/util/concurrent/locks/Lock.java
ava/util/concurrent/locks/LockSupport.java
ava/util/concurrent/locks/ReadWriteLock.java
ava/util/concurrent/locks/ReentrantLock.java
ava/util/concurrent/locks/ReentrantReadWriteLock.java
ava/util/concurrent/package-info.java
c75ada154be90edff2277b5b2217494050479694 13-Jun-2013 Elliott Hughes <enh@google.com> am cf353b74: Merge "Fix CharBuffer.subSequence return type."

* commit 'cf353b74ba45a796fdc0d0e334dc40968d57066e':
Fix CharBuffer.subSequence return type.
cf353b74ba45a796fdc0d0e334dc40968d57066e 13-Jun-2013 Elliott Hughes <enh@google.com> Merge "Fix CharBuffer.subSequence return type."
8a48ae9737cf7b78c3cfd304b8c975fe644cc310 08-Jun-2013 Brian Carlstrom <bdc@google.com> am f47f0bdf: Merge "Offer default implementations of various dalvik intrinsics in the library."

* commit 'f47f0bdff8807ff419fb3553e510abaa36a3f98b':
Offer default implementations of various dalvik intrinsics in the library.
3443a5e4e7ea9fa3fdc3495a1f2c44bea97ac100 07-Jul-2011 Elliott Hughes <enh@google.com> Offer default implementations of various dalvik intrinsics in the library.

(cherry-picked from commit 2f95766aac3df74c6c641232eec4791b2330c9df)

Change-Id: I1005ee22ed8a017bb536bfd76df2173c7e8dcf64
ava/lang/Math.java
1ce091a1dbae09bbc554104e48e13c80134e9270 07-Jun-2013 Elliott Hughes <enh@google.com> am d1c6786d: Merge "Fix zone.tab parsing."

* commit 'd1c6786d289258a054a57eaae6a0700b74fb0157':
Fix zone.tab parsing.
b2181542090a8ff8801331e6ad8f9afcb62da8b3 07-Jun-2013 Elliott Hughes <enh@google.com> Fix zone.tab parsing.

Not every zone.tab line has a comment.

Bug: 9327819
Change-Id: I32811c2da34755e2a15334f8701523505e1398b3
ibcore/icu/TimeZoneNames.java
c286ebcb2be9bd7f2dd1c14b132dbf85ee7ca314 07-Jun-2013 Elliott Hughes <enh@google.com> am b5ba804a: Merge "Fix @deprecated javadoc orthography."

* commit 'b5ba804a3b6d00c63a59902b782c11a0af9ed205':
Fix @deprecated javadoc orthography.
3a46c21b773f1623edacb7b876c23cec75245b12 07-Jun-2013 Brian Carlstrom <bdc@google.com> am 31a0ff20: Merge "Fix bug in DNParser change"

* commit '31a0ff2017820560e428ac94bf2ccce044e42fe5':
Fix bug in DNParser change
b5ba804a3b6d00c63a59902b782c11a0af9ed205 07-Jun-2013 Elliott Hughes <enh@google.com> Merge "Fix @deprecated javadoc orthography."
99b4489d0555c6e0e5df941cbfad4cf250c8f0b8 07-Jun-2013 Elliott Hughes <enh@google.com> Fix @deprecated javadoc orthography.

Change-Id: I6db6d91e21b8e1aca5b5338534196fd5bdef8a06
ava/io/ByteArrayOutputStream.java
ava/io/File.java
ava/io/LineNumberInputStream.java
ava/io/ObjectInputStream.java
ava/io/StreamTokenizer.java
ava/io/StringBufferInputStream.java
ava/lang/Character.java
ava/lang/Runtime.java
ava/lang/SecurityManager.java
ava/lang/System.java
ava/net/DatagramSocketImpl.java
ava/net/HttpURLConnection.java
ava/net/MulticastSocket.java
ava/net/URLConnection.java
ava/net/URLDecoder.java
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ava/security/Certificate.java
ava/security/Identity.java
ava/security/IdentityScope.java
ava/security/Security.java
ava/security/Signature.java
ava/security/Signer.java
ava/sql/CallableStatement.java
ava/sql/Date.java
ava/sql/DriverManager.java
ava/sql/ResultSet.java
ava/sql/Time.java
ava/sql/Timestamp.java
ava/util/Date.java
ava/util/Properties.java
ava/util/logging/Logger.java
ibcore/io/IoUtils.java
166679d093d1bd51fde23952779b8d899d87674a 06-Jun-2013 Brian Carlstrom <bdc@google.com> Fix bug in DNParser change

Ensure emailAddress encoded as IA5String

Bug: http://code.google.com/p/android/issues/detail?id=21531
Bug: 5580664
Change-Id: I19b432bc84468828258cbcd44266e4b712e6175d

Bug: 9198822
Change-Id: I8a29f160e870f8deb4b8f3787bb69b4971942c5d
rg/apache/harmony/security/x509/DNParser.java
37fdaa7ea0ce20e0e97f8b65aab9aaada1af7178 06-Jun-2013 Elliott Hughes <enh@google.com> am 04d92ec6: Merge "Add ReflectiveOperationException."

* commit '04d92ec6fd445613801688f45fa934cf39190605':
Add ReflectiveOperationException.
04d92ec6fd445613801688f45fa934cf39190605 06-Jun-2013 Elliott Hughes <enh@google.com> Merge "Add ReflectiveOperationException."
66811020aec0b284bb95e3e43e751062927e62fc 06-Jun-2013 Brian Carlstrom <bdc@google.com> am 28d0eab7: Merge "Moving java.lang.String to libdvm"

* commit '28d0eab796d6f9e990c8d8393e1769ac27892d7c':
Moving java.lang.String to libdvm
eabeb4b870bf7eefecf2fd3853551bc918fff897 06-Jun-2013 Brian Carlstrom <bdc@google.com> Moving java.lang.String to libdvm

Change-Id: Ia03630612b6d4e116b9c737cdf7a93c8eacee910
ava/lang/String.java
e91d1c4ef333b6b65cf1c902e683b2f8cd699d3f 11-May-2013 Elliott Hughes <enh@google.com> Add ReflectiveOperationException.

Bug: 3484927
Change-Id: I6ef7b71aba70bab7664ea29ef73ba8a542550e27
ava/lang/ClassNotFoundException.java
ava/lang/IllegalAccessException.java
ava/lang/InstantiationException.java
ava/lang/NoSuchFieldException.java
ava/lang/NoSuchMethodException.java
ava/lang/ReflectiveOperationException.java
ava/lang/reflect/InvocationTargetException.java
c9d1392c2c5509519f46bf0c856bfbf7a217bca7 05-Jun-2013 Brian Carlstrom <bdc@google.com> am a65d5826: Merge "Move additional files to libdvm"

* commit 'a65d5826d30d42f59283e24047810a4b940335b4':
Move additional files to libdvm
53764ee20bd97afcc5c96c79ccb2cbfcab3a4c1a 05-Jun-2013 Brian Carlstrom <bdc@google.com> Move additional files to libdvm

Change-Id: Idc1caee3a0afb61d159cd046348ecb11db3d9e10
ava/lang/Enum.java
f080c9f3644514ba5335108e337216a719f6014f 05-Jun-2013 Brian Carlstrom <bdc@google.com> am 86baf720: Merge "Change the VMStack interface used by serialization."

* commit '86baf7201d3bfd1bac6af95c6aec35def603bcfa':
Change the VMStack interface used by serialization.
552f220a1c5f481293bf47b21726635a0e5df601 20-Sep-2011 Elliott Hughes <enh@google.com> Change the VMStack interface used by serialization.

(cherry picked from commit 8b44bdb6063816eeb90da6b4f8aa3ed9f38fe140)

Change-Id: I5da041caa3037a4093f05dec4e03aed4f466a21d
ava/io/ObjectInputStream.java
5f5a8b87a7457dc41bcf3e3bf8eb52f09e98d031 05-Jun-2013 Brian Carlstrom <bdc@google.com> am 324021dc: Merge "Add hidden Modifiers for SYNTHETIC and MIRANDA"

* commit '324021dc37781b90bad85b83c29f9f6dc298b6d8':
Add hidden Modifiers for SYNTHETIC and MIRANDA
90b84e0ea31dad48496ff4ce34bf5fee5ed9482e 10-Oct-2012 Ian Rogers <irogers@google.com> Add hidden Modifiers for SYNTHETIC and MIRANDA

(cherry picked from commit e976fbc396bdc5863ce289c38a44d296ea84f159)

Change-Id: Ia2289bff0bb0ef49af84306f9fa22cbf3c76a674
ava/lang/reflect/Modifier.java
9a272f433da746ae356e9e779943d45c8e96ff99 31-May-2013 Kenny Root <kroot@google.com> am 551d67ed: Merge "Move initialization check higher for updateAAD"

* commit '551d67ed92233b0d5a3eeeeb2b35f15b7b91480b':
Move initialization check higher for updateAAD
57323260f130e086301b1b7c0d3124a6c51f9fa8 31-May-2013 Kenny Root <kroot@google.com> Move initialization check higher for updateAAD

This allows the tests to pass on the RI and Dalvik by ordering the
exceptions in the same way.

Change-Id: Icb5a313f86c90ed8f1d703b5cb996783ca3a214b
avax/crypto/Cipher.java
9d4ac657d46e277d94fea23f54197c2a62467d0f 29-May-2013 Kenny Root <kroot@google.com> am 5a77ade7: Merge "Use the jarjar names of security providers"

* commit '5a77ade75d48732b5c46a08223f3538dc899be47':
Use the jarjar names of security providers
a2805c5e3a29414dc9d600a5322d0bc4491fddd6 28-May-2013 Kenny Root <kroot@google.com> Use the jarjar names of security providers

The platform was using the security.properties file, but running the
tests outside of the platform was using the registerDefaultProviders()
call. Those won't work with a jarjar'd library.

Change-Id: If0472d99b45c274a63003c53bf91a37bfb23fda4
ava/security/Security.java
40b4f1db4031eff92cb0b31740b6e644b8e4c733 17-May-2013 Elliott Hughes <enh@google.com> Fix CharBuffer.subSequence return type.

Bug: 3484927
Change-Id: I06dae03b0803d1373e268e854e9e0e4b6c59e13a
ava/nio/ByteBufferAsCharBuffer.java
ava/nio/CharArrayBuffer.java
ava/nio/CharBuffer.java
ava/nio/CharSequenceAdapter.java
5dcdb633b75960699d62401619085abd7190ee85 15-May-2013 Elliott Hughes <enh@google.com> am c07655a8: Merge "Simplify defaulting for system properties, and trust the environment less."

* commit 'c07655a84cd02dea400d882dd783b420e59d2465':
Simplify defaulting for system properties, and trust the environment less.
c07655a84cd02dea400d882dd783b420e59d2465 15-May-2013 Elliott Hughes <enh@google.com> Merge "Simplify defaulting for system properties, and trust the environment less."
41d00b744b7772f9302fdb94dddadb165b951220 15-May-2013 Elliott Hughes <enh@google.com> Simplify defaulting for system properties, and trust the environment less.

The originally-reported bug (https://android-review.googlesource.com/58258)
was that dalvik would fail to start if LD_LIBRARY_PATH was unset.

This changes things so we no longer have multiple default values for
java.library.path, cope better with that not being set, and don't set
it if LD_LIBRARY_PATH isn't set.

Change-Id: I55d48a35b1b42df872e6dcd0a38fc7bc4b8cad5a
ava/lang/Runtime.java
ava/lang/System.java
7ee2b0c9ce5da8431071addec8f9a6328d78dfa4 15-May-2013 Kenny Root <kroot@google.com> am 07eae878: Merge "Add classes for AEAD encryption"

* commit '07eae878ab525523e722eda6735f63022dbc0df2':
Add classes for AEAD encryption
d416195acbc08f2b3bdd5d5532d40438465d99e9 13-May-2013 Kenny Root <kroot@google.com> Add classes for AEAD encryption

New classes in Java 7 for Authenicated Encryption with Additional Data
(AEAD). This allows the use of encryption modes such as Galois/Counter
Mode with performs the equivalent of MAC and encryption simultaneously
and consequently makes encryption safer to use for implementors.

Change-Id: I6302826b096044ade5f62a667dc240e3ab07b351
avax/crypto/AEADBadTagException.java
avax/crypto/Cipher.java
avax/crypto/CipherSpi.java
avax/crypto/spec/GCMParameterSpec.java
7c4ed1c62c2da5aaad8885ae5d435e84c1072a14 14-May-2013 Elliott Hughes <enh@google.com> am e95612e1: Merge "Expose Throwable changes."

* commit 'e95612e19f51b0fbcc9196e7a07737388010a4ea':
Expose Throwable changes.
fc3dd1f9e2424e6c75e13b576a4a6906148fc6d6 14-May-2013 Elliott Hughes <enh@google.com> am c86b6a1a: Merge "Fix java.lang.Throwable\'s protected constructor."

* commit 'c86b6a1addc08cfc3a3a6587ca46ad1be363d408':
Fix java.lang.Throwable's protected constructor.
e03c9c042a4624c181c59d0f48a2e0e569fe303e 14-May-2013 Elliott Hughes <enh@google.com> Expose Throwable changes.

Bug: 3484927
Change-Id: If4d39c9af3a7b0bd60f31ad7e969baa6b27e3d86
ava/lang/Throwable.java
c2f2aaaae219c69d50eee6549d507c91e9a08519 14-May-2013 Elliott Hughes <enh@google.com> Fix java.lang.Throwable's protected constructor.

Bug: 3484927
Change-Id: Ib8088ec50a767390b6416b73a0e66887ece5c719
ava/lang/Throwable.java
8b607ee513a5a9e53421497c88b75615584793ec 13-May-2013 Conley Owens <cco3@android.com> am 0230da36: Merge "Un-@hide various APIs."

* commit '0230da3614fd012851bd42898dcd1f4db1c57223':
Un-@hide various APIs.
20829f207ecc73b8007e2df2e90a7b62dde43343 13-May-2013 Elliott Hughes <enh@google.com> am b4e8996c: Merge "Fix build."

* commit 'b4e8996c0dae2a8531fa81980bde20747fefad4d':
Fix build.
8ffa0b68c9fd3f722bee2bcd94b1d38151a0791d 13-May-2013 Elliott Hughes <enh@google.com> Un-@hide various APIs.

Bug: 3484927
Change-Id: I4cda326a31240135d883528d9cb976a9db084234
ava/lang/AssertionError.java
ava/lang/Boolean.java
ava/lang/Byte.java
ava/lang/Character.java
ava/lang/Integer.java
ava/lang/LinkageError.java
ava/lang/Long.java
ava/lang/Short.java
ava/lang/System.java
ava/lang/Throwable.java
ava/lang/reflect/Modifier.java
ava/net/InetAddress.java
ava/net/InetSocketAddress.java
ava/net/NetworkInterface.java
ava/util/BitSet.java
ava/util/Collections.java
ava/util/ConcurrentModificationException.java
ava/util/Currency.java
ava/util/Formatter.java
ava/util/logging/Logger.java
ava/util/zip/Deflater.java
ava/util/zip/DeflaterOutputStream.java
7f23e215f96ba2a21ad22e88f1e2b7bbbf3f9643 13-May-2013 Elliott Hughes <enh@google.com> Fix build.

Change-Id: Ibfbba9fdb1d5ca00aad55cc1c62766821175f384
ava/lang/reflect/Modifier.java
81f9e919b8cd238e4729e9108400a9af75a32826 13-May-2013 Elliott Hughes <enh@google.com> am a3d0410f: Merge "Fix Short.compare."

* commit 'a3d0410f59f48cfe5f42b798f00e15a33e87120f':
Fix Short.compare.
b4932764b5a6d637ca40bd2165eeaa7424e20b95 13-May-2013 Elliott Hughes <enh@google.com> am 52f836e8: Merge "Improve java.lang.reflect.Modifier documentation."

* commit '52f836e8bf94a6e73373a3cb2c3fcc66d1122da6':
Improve java.lang.reflect.Modifier documentation.
ac1232b5fe9b3f254829b6ca5ecf3c0f988ba0cf 13-May-2013 Brian Carlstrom <bdc@google.com> am 71dbee01: Merge "Move some files with dalvik dependencies to libdvm"

* commit '71dbee010b14541de3d3a6e3843881547a006f91':
Move some files with dalvik dependencies to libdvm
cbd61d6846af5d48fbb1c34b60a5c74a94f71901 13-May-2013 Elliott Hughes <enh@google.com> Fix Short.compare.

Bug: 3484927
Change-Id: I53fbed8d7060556ade960174d567e975ebc70928
ava/lang/Short.java
52f836e8bf94a6e73373a3cb2c3fcc66d1122da6 13-May-2013 Elliott Hughes <enh@google.com> Merge "Improve java.lang.reflect.Modifier documentation."
71dbee010b14541de3d3a6e3843881547a006f91 13-May-2013 Brian Carlstrom <bdc@google.com> Merge "Move some files with dalvik dependencies to libdvm"
82a47dc51eba87fe901e675f050ab591c663e0be 13-May-2013 Elliott Hughes <enh@google.com> Improve java.lang.reflect.Modifier documentation.

Change-Id: I514ab7668a933f7ce724408d95464ef25d76b53b
ava/lang/reflect/Modifier.java
895bba44ff59d2225532a1fe9842c8b9a70a9f9a 13-May-2013 Brian Carlstrom <bdc@google.com> Move some files with dalvik dependencies to libdvm

Change-Id: I04498d8d8c4b065dbda8d7b30b8b77ce53e63a77
ava/lang/Class.java
ava/lang/ClassLoader.java
ava/lang/Daemons.java
ava/lang/Object.java
ava/lang/Thread.java
ava/lang/ThreadGroup.java
ava/lang/VMClassLoader.java
ava/lang/VMThread.java
ava/lang/reflect/AccessibleObject.java
ava/lang/reflect/Constructor.java
ava/lang/reflect/Field.java
ava/lang/reflect/Method.java
ava/lang/reflect/Proxy.java
rg/apache/harmony/kernel/vm/StringUtils.java
rg/apache/harmony/lang/annotation/AnnotationFactory.java
rg/apache/harmony/lang/annotation/AnnotationMember.java
rg/apache/harmony/luni/lang/reflect/GenericSignatureParser.java
rg/apache/harmony/luni/lang/reflect/ImplForArray.java
rg/apache/harmony/luni/lang/reflect/ImplForType.java
rg/apache/harmony/luni/lang/reflect/ImplForVariable.java
rg/apache/harmony/luni/lang/reflect/ImplForWildcard.java
rg/apache/harmony/luni/lang/reflect/ListOfTypes.java
rg/apache/harmony/luni/lang/reflect/ListOfVariables.java
rg/apache/harmony/luni/lang/reflect/Types.java
un/misc/Unsafe.java
1ca5f863614dae88fcdeadf823035275812e9465 13-May-2013 Elliott Hughes <enh@google.com> am de6c6eeb: Merge "Fix String.replace("", x) for strings with non-0 offsets."

* commit 'de6c6eebbace906077e6de87b7d99dd5350b6037':
Fix String.replace("", x) for strings with non-0 offsets.
5fb22c375c55a9575cfb2e0b651c744e98fb6aa6 13-May-2013 Elliott Hughes <enh@google.com> Fix String.replace("", x) for strings with non-0 offsets.

Also fix the sizing of the StringBuilder.

Bug: https://code.google.com/p/android/issues/detail?id=55129
Change-Id: Ic56763ef90451a25a0adfbe649b0a766e9b930f9
ava/lang/String.java
002f88ca942331ecb2ff48e8a68e21d50842bc04 11-May-2013 Elliott Hughes <enh@google.com> am 8245506e: Merge "Clean up two unnecessary \'implements\' clauses."

* commit '8245506ebe0cbeba47c99e1e109c8da31c1626bc':
Clean up two unnecessary 'implements' clauses.
8245506ebe0cbeba47c99e1e109c8da31c1626bc 11-May-2013 Elliott Hughes <enh@google.com> Merge "Clean up two unnecessary 'implements' clauses."
cc2915b8b2e3ea92e10aa73ef748e845d4443db3 11-May-2013 Elliott Hughes <enh@google.com> am b1635d52: Merge "Add @SafeVarargs."

* commit 'b1635d52c96e2906485bfe4439d402365d5a025b':
Add @SafeVarargs.
bce3d7cfe03fcb70bd374ad2e8b16ba64a45e993 11-May-2013 Elliott Hughes <enh@google.com> Add @SafeVarargs.

Bug: 3484927
Change-Id: I3c235502d6542767a2f5818b203ff7520073a053
ava/lang/SafeVarargs.java
ava/util/Arrays.java
ava/util/Collections.java
ava/util/EnumSet.java
d45b1db47a0258ecb532671e87ebd5ec3df28498 11-May-2013 Elliott Hughes <enh@google.com> Clean up two unnecessary 'implements' clauses.

Bug: 3484927
Change-Id: I29ce16d47f880399894c84940dbe9f091831fa06
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
634c2fa67705abe32f258297ed43bed9210d0dbd 11-May-2013 Conley Owens <cco3@android.com> am 0fbcc277: Merge "Finish off AutoCloseable."

* commit '0fbcc27768d69281b4bced043fa25c9addb9f9b4':
Finish off AutoCloseable.
9902f3494c6d983879d8b9cfe6b1f771cfefe703 10-May-2013 Elliott Hughes <enh@google.com> Finish off AutoCloseable.

Bug: 3484927
Change-Id: Ia0f5ad3db9807459ce6cda05bc2f53564b63b375
ava/lang/AutoCloseable.java
ava/net/DatagramSocket.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/nio/channels/FileLock.java
ava/nio/channels/Selector.java
ava/util/Scanner.java
ava/util/zip/ZipFile.java
d4f2f951b5c72dd26c2f65ba446e3ef256d27b08 10-May-2013 Brian Carlstrom <bdc@google.com> am d9f9db27: Merge changes Ie07e5901,I8a154f8b

* commit 'd9f9db273afab35baee1db4d22a65ae819e72b74':
resolved conflicts for merge of f78109f6 to dalvik-dev
Some of our helpers have moved into libnativehelpers.
7cad2d4e4e00bb152b726541b62840708d1cbcb1 20-Jul-2011 Elliott Hughes <enh@google.com> Some of our helpers have moved into libnativehelpers.

(cherry picked from commit 4b5012a6cd5f7f32f33a776c9e2c94ca3f3eb1d5)

Change-Id: I8a154f8b6e39b8ed0a633fab9ba31d557b545bb5
ava/lang/ClassLoader.java
ava/lang/VMClassLoader.java
cf9829d5c35749192096b5d96653875a0a33fbb0 04-May-2013 Elliott Hughes <enh@google.com> am f7e1ba48: Merge "Various regex test fixes."

* commit 'f7e1ba4804f7365e6ab47a34e019532b428b1546':
Various regex test fixes.
5700a9718eef20f4228ed97d54a59cc70bf40753 04-May-2013 Elliott Hughes <enh@google.com> Various regex test fixes.

Mostly test changes and some duplication removal, but I did turn up a couple of
small bugs.

Change-Id: I46f99cdf0cdb8a67d358c0acc03079360fe5c333
ava/util/regex/Matcher.java
ava/util/regex/Pattern.java
48269d2a5b97d55b8d86e3936bbdc2bdca61a2cf 02-May-2013 Elliott Hughes <enh@google.com> am e2aa9af9: Merge "Fix BufferedReader.readLine to not read ahead after \'\r\'."

* commit 'e2aa9af94aeeab0e245c3f423f90c76b8cbe0229':
Fix BufferedReader.readLine to not read ahead after '\r'.
0409fa8fe9b1b3cd501931a8c25e109e6ff71be0 02-May-2013 Elliott Hughes <enh@google.com> Fix BufferedReader.readLine to not read ahead after '\r'.

Bug: 8778372
Change-Id: I789d0ff5498cca48b16bb7b3b363014f7b6bcf95
ava/io/BufferedReader.java
667623f62fcac691065337e55cde90f19aa8319b 01-May-2013 Elliott Hughes <enh@google.com> am e2c689ab: Merge "Improve System.nanoTime documentation."

* commit 'e2c689ab581762cab6fdb70951b50458a30be1ee':
Improve System.nanoTime documentation.
e2c689ab581762cab6fdb70951b50458a30be1ee 01-May-2013 Elliott Hughes <enh@google.com> Merge "Improve System.nanoTime documentation."
37f79a6eb5d4f378ff6b0b56e21d5d5d1f4cc9a2 01-May-2013 Elliott Hughes <enh@google.com> Improve System.nanoTime documentation.

Bug: 8733179
Change-Id: I12cf7fba00736ff1e9b2d8b2a1f5e50cf1070353
ava/lang/System.java
b49e8eb63f768e195869a98076dc96514f357a14 01-May-2013 Brian Carlstrom <bdc@google.com> am 9b040f6a: Merge "Add missing @Override annotations"

* commit '9b040f6a4e6865ee72db707d27381d4886229eaa':
Add missing @Override annotations
04b2ff92ae27b3acd82148d9252253573638ccc6 30-Jan-2012 Ian Rogers <irogers@google.com> Add missing @Override annotations

Change-Id: I4c5772c9549375beeb0e4f269bd61d623fca7e35
(cherry picked from commit 49992f5003aac55e1b1cf54769abc93630ccde93)
ava/nio/ByteBuffer.java
51377dcfd7cb06cb25d55ec818a941304eb0a11e 30-Apr-2013 Elliott Hughes <enh@google.com> am 87b4b0f8: Merge "Implement getDateFormatOrder."

* commit '87b4b0f88fe0b5fa5c271593e483fb5bd306a6a4':
Implement getDateFormatOrder.
87b4b0f88fe0b5fa5c271593e483fb5bd306a6a4 30-Apr-2013 Elliott Hughes <enh@google.com> Merge "Implement getDateFormatOrder."
0604cf761b8717c025a5e78031fde1edf71c7757 30-Apr-2013 Elliott Hughes <enh@google.com> Implement getDateFormatOrder.

I do wonder if we shouldn't generalize this, rather than hard-code yMd,
but YAGNI.

Bug: 7207103
Change-Id: Ib59191eee97c08913f9a0a4ea52fb6eb8c677918
ava/text/SimpleDateFormat.java
ibcore/icu/ICU.java
033c85712e2d91657e2f5df8743d2fd0ddbf5a2d 30-Apr-2013 Kenny Root <kroot@google.com> am 0800e47a: Merge "Move JSSE to new package"

* commit '0800e47a2e19f185b7a62f1d26a74748db0cc047':
Move JSSE to new package
0800e47a2e19f185b7a62f1d26a74748db0cc047 30-Apr-2013 Kenny Root <kroot@google.com> Merge "Move JSSE to new package"
e3cfd0d894d8b3b4bf54367d3631334d85760bcc 29-Apr-2013 Elliott Hughes <enh@google.com> am 6cc37941: Merge "Fix various of the harmony nio tests."

* commit '6cc37941a936a9f054bdeed83b7ea3321c844182':
Fix various of the harmony nio tests.
38375a4d0b3d34e2babbd2f6a013976c7c439696 24-Apr-2013 Kenny Root <kroot@google.com> Move JSSE to new package

To help with shipping the JSSE with apps that want to bundle it, move
it to a new package so that the tangles in other parts of the library
can be untangled.

Change-Id: I810b6861388635301e28aee5b9b47b8e6b35b430
ava/security/Security.java
ava/security/security.properties
rg/apache/harmony/security/utils/AlgNameMapper.java
rg/apache/harmony/security/utils/JarUtils.java
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/AlertException.java
rg/apache/harmony/xnet/provider/jsse/AlertProtocol.java
rg/apache/harmony/xnet/provider/jsse/Appendable.java
rg/apache/harmony/xnet/provider/jsse/ByteArray.java
rg/apache/harmony/xnet/provider/jsse/CertPinManager.java
rg/apache/harmony/xnet/provider/jsse/CertificateMessage.java
rg/apache/harmony/xnet/provider/jsse/CertificateRequest.java
rg/apache/harmony/xnet/provider/jsse/CertificateVerify.java
rg/apache/harmony/xnet/provider/jsse/ChainStrengthAnalyzer.java
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/ClientHello.java
rg/apache/harmony/xnet/provider/jsse/ClientKeyExchange.java
rg/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
rg/apache/harmony/xnet/provider/jsse/ConnectionState.java
rg/apache/harmony/xnet/provider/jsse/ConnectionStateSSLv3.java
rg/apache/harmony/xnet/provider/jsse/ConnectionStateTLS.java
rg/apache/harmony/xnet/provider/jsse/ContentType.java
rg/apache/harmony/xnet/provider/jsse/DHParameters.java
rg/apache/harmony/xnet/provider/jsse/DataStream.java
rg/apache/harmony/xnet/provider/jsse/DefaultSSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/DelegatedTask.java
rg/apache/harmony/xnet/provider/jsse/DigitalSignature.java
rg/apache/harmony/xnet/provider/jsse/EndOfBufferException.java
rg/apache/harmony/xnet/provider/jsse/EndOfSourceException.java
rg/apache/harmony/xnet/provider/jsse/FileClientSessionCache.java
rg/apache/harmony/xnet/provider/jsse/Finished.java
rg/apache/harmony/xnet/provider/jsse/Handshake.java
rg/apache/harmony/xnet/provider/jsse/HandshakeIODataStream.java
rg/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
rg/apache/harmony/xnet/provider/jsse/HelloRequest.java
rg/apache/harmony/xnet/provider/jsse/JSSEProvider.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/Logger.java
rg/apache/harmony/xnet/provider/jsse/Message.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLBIOInputStream.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipher.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipherContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipherRSA.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyPairGenerator.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAParams.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDigestContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECDHKeyAgreement.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECGroupContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyPairGenerator.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPointContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLEngine.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKeyHolder.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMac.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyPairGenerator.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateCrtKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRandom.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSecretKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignatureRawRSA.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImplWrapper.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CRL.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CRLEntry.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertPath.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509Certificate.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertificateFactory.java
rg/apache/harmony/xnet/provider/jsse/PRF.java
rg/apache/harmony/xnet/provider/jsse/PinEntryException.java
rg/apache/harmony/xnet/provider/jsse/PinFailureLogger.java
rg/apache/harmony/xnet/provider/jsse/PinListEntry.java
rg/apache/harmony/xnet/provider/jsse/PinManagerException.java
rg/apache/harmony/xnet/provider/jsse/ProtocolVersion.java
rg/apache/harmony/xnet/provider/jsse/SSLBufferedInput.java
rg/apache/harmony/xnet/provider/jsse/SSLClientSessionCache.java
rg/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineAppData.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineDataStream.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLInputStream.java
rg/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLRecordProtocol.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSessionCache.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketInputStream.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketOutputStream.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketWrapper.java
rg/apache/harmony/xnet/provider/jsse/SSLStreamedInput.java
rg/apache/harmony/xnet/provider/jsse/SSLv3Constants.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerHello.java
rg/apache/harmony/xnet/provider/jsse/ServerHelloDone.java
rg/apache/harmony/xnet/provider/jsse/ServerKeyExchange.java
rg/apache/harmony/xnet/provider/jsse/ServerSessionContext.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateIndex.java
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateKeyStoreSpi.java
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateStore.java
105a9405b2e059352185f9ca1138cc8480ccb9bc 27-Apr-2013 Elliott Hughes <enh@google.com> Fix various of the harmony nio tests.

Plus one real bug, in FileChannelImpl. The expectation I've removed was for a
test that doesn't seem to exist in either our tests or the harmony tests.

Change-Id: I1ea99042f3f8897f07ba8b4ad8e9a15f30ace79b
ava/nio/FileChannelImpl.java
63d0bbf732d0b634894131ee3e34d47b43826eb6 27-Apr-2013 Elliott Hughes <enh@google.com> am 06fe32ee: Merge "Remove the now-unused ZoneInfoDB.getVersion API."

* commit '06fe32ee348b1a1141df37a0efcf2c90bea7e1a2':
Remove the now-unused ZoneInfoDB.getVersion API.
19f10924b4f45023862b7caa2be0e180e3b9d977 26-Apr-2013 Elliott Hughes <enh@google.com> am 783feda9: Merge "Fix vogar --mode device\'s fallback time zone."

* commit '783feda93e8645aaf4d5a3b9cbbcd5eeb88b29d8':
Fix vogar --mode device's fallback time zone.
eef73ccb5e02b939ae8f348094c64f50955870a5 26-Apr-2013 Elliott Hughes <enh@google.com> Remove the now-unused ZoneInfoDB.getVersion API.

Change-Id: I05aff6c07e9baca679b8b7759f4f0108067d06e6
ibcore/util/ZoneInfoDB.java
1b5e1ff243e0f7f017e891020693cf371cd72964 26-Apr-2013 Elliott Hughes <enh@google.com> Fix vogar --mode device's fallback time zone.

Change-Id: Icf7a5ecb5aa7e1b4e6effe26e7a4a63807d18b1c
ava/util/TimeZone.java
ff72988b2ff791afc4d101984c9348451f49091c 26-Apr-2013 Elliott Hughes <enh@google.com> am 971709da: Merge "Cope with a corrupt tzdata update."

* commit '971709da542bbaf163c89fce916fc943f0e1101a':
Cope with a corrupt tzdata update.
971709da542bbaf163c89fce916fc943f0e1101a 26-Apr-2013 Elliott Hughes <enh@google.com> Merge "Cope with a corrupt tzdata update."
995caee51334a4f1a1429e29680ea079c900c37a 25-Apr-2013 Elliott Hughes <enh@google.com> Cope with a corrupt tzdata update.

We need to fall back to the next choice on error. Rewrite the code
to be testable and add some tests. Add an internal GMT-only
fallback in case all our sources of tzdata are bad. Also make
time zone detection on the host more useful.

Bug: 8373554
Change-Id: I9f91b844a61f07f34b268535e6d24aa0c301bf8d
ava/io/File.java
ava/util/TimeZone.java
ibcore/icu/TimeZoneNames.java
ibcore/util/ZoneInfoDB.java
1b21c6e84a63e41cb2a61da2540efae008849d56 26-Apr-2013 Brian Carlstrom <bdc@google.com> am f73a8c28: Merge "Fix additional races in org.apache.harmony.security.x509.Extensions"

* commit 'f73a8c282e8e836871335fa75dcc7a06e914c975':
Fix additional races in org.apache.harmony.security.x509.Extensions
48b7f507133e46424c599add4bb0e4f96ef56680 26-Apr-2013 Brian Carlstrom <bdc@google.com> Fix additional races in org.apache.harmony.security.x509.Extensions

Bug: https://code.google.com/p/chromium/issues/detail?id=233610
Bug: 8712523
Change-Id: Ie54f62fa37f31e8ea37b5f4905f0ca3d3e22ac8f
rg/apache/harmony/security/provider/cert/X509CertImpl.java
rg/apache/harmony/security/x509/Extensions.java
25681be69e19a834b00cfbf54cd99ac13f12b9ff 17-Apr-2013 William Luh <williamluh@google.com> Only enforce the encrypted bit in the GPBF, and ignore other unsupported bits.

(cherry-pick of 7a302a49a7c8b99e2f34fff660e199fb7c776bc1.)

Bug: 8617715
Change-Id: Ibfe919d67fd17cee050d23811faa5aa64116dfb4
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
a49bf5d1cfa9a7c7fe69479ce848ccb353796361 25-Apr-2013 Elliott Hughes <enh@google.com> am 2797d28f: Merge "Fix a bug in DatagramChannel.send."

* commit '2797d28f58449627ad883543edd43f3edc45e9a3':
Fix a bug in DatagramChannel.send.
2797d28f58449627ad883543edd43f3edc45e9a3 25-Apr-2013 Elliott Hughes <enh@google.com> Merge "Fix a bug in DatagramChannel.send."
9a4c6357fc6bfd61397892eba6c20d28cc3e243f 25-Apr-2013 Brian Carlstrom <bdc@google.com> am 729a2281: Merge "Do not set valueDecoded until after the value is decoded"

* commit '729a228183617c18f4916251d203b48752ed1190':
Do not set valueDecoded until after the value is decoded
729a228183617c18f4916251d203b48752ed1190 25-Apr-2013 Brian Carlstrom <bdc@google.com> Merge "Do not set valueDecoded until after the value is decoded"
ee257d971aa3376a7ae6e7c471107dc5692b8e3b 25-Apr-2013 Elliott Hughes <enh@google.com> am cf2377ac: Merge "Fix getLocalAddress on closed sockets."

* commit 'cf2377ac3d8953131d1416e955ebbb7ef042a0ab':
Fix getLocalAddress on closed sockets.
8658a3f1236f1801f00b9416c9294486a125faae 25-Apr-2013 Elliott Hughes <enh@google.com> Fix a bug in DatagramChannel.send.

Calling sendto(2) binds your socket as a side-effect, but we'd still
report false from isBound.

Also bring in the harmony tests that would have caught this earlier.

Change-Id: I26baa15c8178edab9136a37742faddd11f381c7b
ava/nio/DatagramChannelImpl.java
255a6f4ab321614ed1ca26849d1df7fa9c0610f5 25-Apr-2013 Elliott Hughes <enh@google.com> Fix getLocalAddress on closed sockets.

Bug: https://code.google.com/p/android/issues/detail?id=54072
Change-Id: Ie32708054f584885ec85dd7847c128d48ff6c7d5
ava/net/DatagramSocket.java
ava/net/DatagramSocketImpl.java
ava/net/Socket.java
ava/nio/DatagramChannelImpl.java
ibcore/io/IoBridge.java
a5cc81bb305432bae2fe6d007a992ec1ede0b387 25-Apr-2013 Brian Carlstrom <bdc@google.com> Do not set valueDecoded until after the value is decoded

Bug: https://code.google.com/p/chromium/issues/detail?id=233610
Bug: 8712523
Change-Id: I976df514e761ffe0d1be1ca8b18e9fe5050c2ba7
rg/apache/harmony/security/x509/Extension.java
927d8a714cc7516da053a384bf20cab9f279d7d8 25-Apr-2013 Elliott Hughes <enh@google.com> am 85b24cc6: Merge "Reads from /dev/urandom can\'t really block."

* commit '85b24cc64b2c13a50c24c1ad5ae6beb10fe59562':
Reads from /dev/urandom can't really block.
b2da4ac2b5c8ddedf5e08aed31481471e408da5f 24-Apr-2013 Elliott Hughes <enh@google.com> Reads from /dev/urandom can't really block.

Move RandomBitsSupplier into its only caller. Bring over the harmony UUIDTest.
Switch the SHA1_Data constants over to the more modern static import idiom.

Bug: https://code.google.com/p/android/issues/detail?id=54168
Change-Id: I4e659e252ab43f481f39d003cf373100c84013d7
rg/apache/harmony/security/provider/crypto/CryptoProvider.java
rg/apache/harmony/security/provider/crypto/RandomBitsSupplier.java
rg/apache/harmony/security/provider/crypto/SHA1Constants.java
rg/apache/harmony/security/provider/crypto/SHA1Impl.java
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
rg/apache/harmony/security/provider/crypto/SHA1_Data.java
rg/apache/harmony/security/provider/crypto/SHA1_MessageDigestImpl.java
9e138bfa136407f00ad181c25e23c9d4166ab40b 24-Apr-2013 Elliott Hughes <enh@google.com> am 62669dfa: Merge "Simplify NativeBN error handling."

* commit '62669dfa390239adb1534cccf05a3917be3837dd':
Simplify NativeBN error handling.
66e740b765384686ce87003608412e940ab5d489 24-Apr-2013 Elliott Hughes <enh@google.com> Simplify NativeBN error handling.

Change-Id: I150459cf71da6a3232c281d82c1ef7cbf1b2a2bc
ava/math/BigInt.java
ava/math/NativeBN.java
2816fa8e97ea75eb325da451e9b6c1771298a970 24-Apr-2013 Elliott Hughes <enh@google.com> am 8a69ec61: Merge "Fix BigDecimal.abs to preserve immutability."

* commit '8a69ec6121b99683f396b12dd88395772bb516ae':
Fix BigDecimal.abs to preserve immutability.
8a69ec6121b99683f396b12dd88395772bb516ae 24-Apr-2013 Elliott Hughes <enh@google.com> Merge "Fix BigDecimal.abs to preserve immutability."
bfa2dcf1633901753bdc7cad97869b587c58bd36 24-Apr-2013 Kenny Root <kroot@google.com> am ec568ac4: Merge "X509CertImpl: Remove reference to OpenSSLProvider"

* commit 'ec568ac4104af3f42d6068798a18d4cfe635f0e6':
X509CertImpl: Remove reference to OpenSSLProvider
ec568ac4104af3f42d6068798a18d4cfe635f0e6 24-Apr-2013 Kenny Root <kroot@google.com> Merge "X509CertImpl: Remove reference to OpenSSLProvider"
f3c1d638b95007788cf6ca1238f8b52c20c60686 24-Apr-2013 Kenny Root <kroot@google.com> X509CertImpl: Remove reference to OpenSSLProvider

OpenSSLProvider is the default provider now so there's no reason to
request it by default.

Change-Id: I03cd947072226d7a58de94cb2c116d7049918bbd
rg/apache/harmony/security/provider/cert/X509CertImpl.java
8c85a8865fc40a3453b858428a9670a53e339ff4 24-Apr-2013 Elliott Hughes <enh@google.com> Fix BigDecimal.abs to preserve immutability.

Bug: https://code.google.com/p/android/issues/detail?id=54580
Change-Id: Ib41f9fe06b34761f2be59622cbe8a05858551e5b
ava/math/BigDecimal.java
7136112095f720a2e5075c61d27e6ead20967184 23-Apr-2013 Alex Klyubin <klyubin@google.com> am a8abf674: Merge "Add kernel CAP_ constants to libcore.io.OsConstants."

* commit 'a8abf674b008de7a0d85046c5d99757ecbba9989':
Add kernel CAP_ constants to libcore.io.OsConstants.
a8abf674b008de7a0d85046c5d99757ecbba9989 23-Apr-2013 Alex Klyubin <klyubin@google.com> Merge "Add kernel CAP_ constants to libcore.io.OsConstants."
63be5872f6dd0b7c4100a759605878181f133649 23-Apr-2013 Elliott Hughes <enh@google.com> am 0451730f: Merge "More 64-bit fixes for libcore native code."

* commit '0451730faea2642b759d22134a6f35dc394aa555':
More 64-bit fixes for libcore native code.
d4a4f0dc5f5645316428e7f1cfde2efb2c8b7db0 23-Apr-2013 Elliott Hughes <enh@google.com> am 60d77a52: Merge "64-bit fixes for BigInteger."

* commit '60d77a525c05c0d0a5d70d2a903ab3a9029dd58d':
64-bit fixes for BigInteger.
0451730faea2642b759d22134a6f35dc394aa555 23-Apr-2013 Elliott Hughes <enh@google.com> Merge "More 64-bit fixes for libcore native code."
1e5d730e58d94c3bfa14b7dde5ab3981fe5a170b 23-Apr-2013 Elliott Hughes <enh@google.com> More 64-bit fixes for libcore native code.

Change-Id: Id296613590f7ccfc7b5880b27418fe3f5d511974
ibcore/icu/CollationElementIteratorICU.java
ibcore/icu/NativeBreakIterator.java
ibcore/icu/NativeCollation.java
ibcore/icu/NativeDecimalFormat.java
ibcore/icu/NativePluralRules.java
ibcore/icu/RuleBasedCollatorICU.java
a125dded8ab0490d05e2fa9ec2e821ef1ae6facd 23-Apr-2013 Elliott Hughes <enh@google.com> 64-bit fixes for BigInteger.

I fear this is just the start for this code. There seem to be a lot
of assumptions about the types used by OpenSSL that may not hold for
a 64-bit build.

Change-Id: I05c276ff06adc66c1e7878196ce1afd5fba290d9
ava/math/BigInt.java
ava/math/NativeBN.java
9e0ca15905414dd4cbfe73844b0266df6eb15250 19-Apr-2013 Alex Klyubin <klyubin@google.com> Add kernel CAP_ constants to libcore.io.OsConstants.

Change-Id: I8fecdc55b2cf0041ceed643eb48df53d22ecd600
ibcore/io/OsConstants.java
de9502e249e57cad332283564e4da164d0b553fa 17-Apr-2013 William Luh <williamluh@google.com> am 862a382a: Merge "Only enforce the encrypted bit in the GPBF, and ignore other unsupported bits." into jb-mr2-dev

* commit '862a382a298367069e536aef28c4303dc035e8ee':
Only enforce the encrypted bit in the GPBF, and ignore other unsupported bits.
862a382a298367069e536aef28c4303dc035e8ee 17-Apr-2013 William Luh <williamluh@google.com> Merge "Only enforce the encrypted bit in the GPBF, and ignore other unsupported bits." into jb-mr2-dev
7a302a49a7c8b99e2f34fff660e199fb7c776bc1 17-Apr-2013 William Luh <williamluh@google.com> Only enforce the encrypted bit in the GPBF, and ignore other unsupported bits.

Bug: 8617715
Change-Id: I2f906ae6107d2bdf990a7991f56d4a0873bca634
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
82e99f1d502759b4e460626cb0fa42db02c8cfe5 17-Apr-2013 Kenny Root <kroot@google.com> am e29d26ec: Merge "NativeCrypto: fix EOF at beginning of stream" into jb-mr2-dev

* commit 'e29d26ec4c4abd391e8debc0c4846544c9f714b0':
NativeCrypto: fix EOF at beginning of stream
e21b3caf3fb4e3e3d9244a000669a547621c16bd 16-Apr-2013 Kenny Root <kroot@google.com> NativeCrypto: fix EOF at beginning of stream

Any InputStream where the first character was an EOF (-1) would cause
OpenSSLBIOInputStream to hang forever. This caused bad X.509
certificates to hang forever in the call to
CertificateFactory#generateCertificate(InputStream)

Bug: 8632056
Change-Id: Ia88f33aa356c3a6a23be872c7eef844873d73d5c
rg/apache/harmony/xnet/provider/jsse/OpenSSLBIOInputStream.java
56030240429e38081c889f75eff4a57fd60aecc6 17-Apr-2013 Brian Carlstrom <bdc@google.com> am 14f442d9: Merge "Do not include bogus certs in final chain output"

* commit '14f442d9da81025cec5f734176058fc7cd873d52':
Do not include bogus certs in final chain output
2cdf54071e7c62ceca7d40d7f6c704b91aad2a9f 27-Mar-2013 Brian Carlstrom <bdc@google.com> Do not include bogus certs in final chain output

Bug: 8313312
Bug: https://code.google.com/p/android/issues/detail?id=52295
Change-Id: I1fa31335de9c9ee002c25869dbaa2574c70f48cf
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
9c43d9ab6de61fcf5e6a7e2127d240ae11ee2142 16-Apr-2013 Brian Carlstrom <bdc@google.com> am 3b6a9563: Merge "Ensure emailAddress encoded as IA5String"

* commit '3b6a95635bfedbd49d3a52cba2c26444685281a2':
Ensure emailAddress encoded as IA5String
3b6a95635bfedbd49d3a52cba2c26444685281a2 16-Apr-2013 Brian Carlstrom <bdc@google.com> Merge "Ensure emailAddress encoded as IA5String"
6fa695ae2ba9c2d22146c48f16d12a0d3bbdc728 16-Apr-2013 Brian Carlstrom <bdc@google.com> Ensure emailAddress encoded as IA5String

Bug: http://code.google.com/p/android/issues/detail?id=21531
Bug: 5580664
Change-Id: I19b432bc84468828258cbcd44266e4b712e6175d
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/apache/harmony/security/x501/AttributeValue.java
rg/apache/harmony/security/x509/DNParser.java
938d8af590bfc3e8c465527613cce0facb0bcb76 16-Apr-2013 Elliott Hughes <enh@google.com> am 69426638: Merge "Fix BigInteger small prime generation."

* commit '69426638ccc097d640727e876a65fca540019b67':
Fix BigInteger small prime generation.
69426638ccc097d640727e876a65fca540019b67 16-Apr-2013 Elliott Hughes <enh@google.com> Merge "Fix BigInteger small prime generation."
a0150a87e2a74399c8144e18efbcaf707606c80e 16-Apr-2013 Elliott Hughes <enh@google.com> am 0ca50a3d: resolved conflicts for merge of 4b27762c to jb-mr1-dev-plus-aosp

* commit '0ca50a3db89bdf99240f583a96b93c24290d5c93':
Fix a z/Z mixup in the SimpleDateFormat documentation.
0ca50a3db89bdf99240f583a96b93c24290d5c93 16-Apr-2013 Elliott Hughes <enh@google.com> resolved conflicts for merge of 4b27762c to jb-mr1-dev-plus-aosp

Change-Id: Ie3e622667fb2300cfb8b1927767dc6402970bf9e
eec1345b3ce5becef2dff8954b58c9458a613dca 16-Apr-2013 Elliott Hughes <enh@google.com> Fix a z/Z mixup in the SimpleDateFormat documentation.

(cherry picked from commit be17058cc173df7df7665c107ca1793e6f9b51fe)

Bug: 8605629
Change-Id: I936b3fb858cba39903b5b7d7dfa26fe35699d356
ava/text/SimpleDateFormat.java
d89afc283f9d7f0cf7a7bd8dc4f1398d27b4db34 16-Apr-2013 Elliott Hughes <enh@google.com> am 38b23ff5: Merge "Fix a z/Z mixup in the SimpleDateFormat documentation."

* commit '38b23ff5efbba5a97bc35902c7cbb664e02eae9c':
Fix a z/Z mixup in the SimpleDateFormat documentation.
38b23ff5efbba5a97bc35902c7cbb664e02eae9c 16-Apr-2013 Elliott Hughes <enh@google.com> Merge "Fix a z/Z mixup in the SimpleDateFormat documentation."
be17058cc173df7df7665c107ca1793e6f9b51fe 16-Apr-2013 Elliott Hughes <enh@google.com> Fix a z/Z mixup in the SimpleDateFormat documentation.

Bug: 8605629
Change-Id: I45a5db6a9a216e5be13e122b0fd0bcde25f121d8
ava/text/SimpleDateFormat.java
674979bffe6f45df0beaf79128b86770d7f7cec9 15-Apr-2013 Kenny Root <kroot@google.com> NativeCrypto: set Calendar instances to 0 millis

X.509 does not have a notion of milliseconds so it was not being set
through the Calendar instances we used in OpenSSLX509Certificate, et al.
Instead it was getting whatever the current millisecond offset was from
the GregorianCalendar default constructor. That made two parsed
certificates unlikely to be equal when comparing since the milliseconds
were also checked.

(cherry picked from commit 3725893865ddbdd2e9cebc2ea2f7ecfc357fcfbb)

Bug: 8616647
Change-Id: Ia914856a560526718957607d69401eab8c2830cf
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CRL.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CRLEntry.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509Certificate.java
98a9771d6ddef56b89242ff3206f68ba1989756d 15-Apr-2013 Kenny Root <kroot@google.com> am 37258938: NativeCrypto: set Calendar instances to 0 millis

* commit '3725893865ddbdd2e9cebc2ea2f7ecfc357fcfbb':
NativeCrypto: set Calendar instances to 0 millis
3725893865ddbdd2e9cebc2ea2f7ecfc357fcfbb 15-Apr-2013 Kenny Root <kroot@google.com> NativeCrypto: set Calendar instances to 0 millis

X.509 does not have a notion of milliseconds so it was not being set
through the Calendar instances we used in OpenSSLX509Certificate, et al.
Instead it was getting whatever the current millisecond offset was from
the GregorianCalendar default constructor. That made two parsed
certificates unlikely to be equal when comparing since the milliseconds
were also checked.

Bug: 8616647
Change-Id: I756088d946191417bb3afcba082bed5371ed731a
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CRL.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CRLEntry.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509Certificate.java
dd9d07889d37fd2d8d5052b517150ca31ac9d95a 13-Apr-2013 Elliott Hughes <enh@google.com> Fix BigInteger small prime generation.

OpenSSL won't generate primes smaller than 16 bits, so do it ourselves
roughly the same way they would.

Also remove pure duplicate tests from OldBigIntegerTest, and add some
new tests to the modern BigIntegerTest.

Change-Id: I3000942a7a4f2359d5cbe28795b4f8dd96715ef8
ava/math/BigInteger.java
d54e116d0de783d6f4d527fe24a2ad7df920c081 11-Apr-2013 Elliott Hughes <enh@google.com> am 4ec69e8d: am a20919ef: am ec786a87: Fix Formatter documentation.

* commit '4ec69e8d26a1149a5844f6ca4721aea73edd8346':
Fix Formatter documentation.
29c5d7e2dadeab52604872da1ab7bf74c62b2e48 11-Apr-2013 Elliott Hughes <enh@google.com> am 486b3de5: am 6cb5da25: am ce7dd45a: Fix the BigDecimal documentation to not be a copy & paste of the BigInteger documentation.

* commit '486b3de5271cbaf0b6d674a2a7945f3222f7cf53':
Fix the BigDecimal documentation to not be a copy & paste of the BigInteger documentation.
617b44a8701bbacc33773346f97189ac2a6ac1b0 11-Apr-2013 Elliott Hughes <enh@google.com> am 2b98d8bf: resolved conflicts for merge of 01ec8332 to jb-mr1-dev-plus-aosp

* commit '2b98d8bf680a66ad90b5131d2662a21455f289b6':
Fix the SimpleDateFormat L/M E/c documentation.
4ec69e8d26a1149a5844f6ca4721aea73edd8346 11-Apr-2013 Elliott Hughes <enh@google.com> am a20919ef: am ec786a87: Fix Formatter documentation.

* commit 'a20919ef5f964c4cee232e79347f02518fc15cf4':
Fix Formatter documentation.
486b3de5271cbaf0b6d674a2a7945f3222f7cf53 11-Apr-2013 Elliott Hughes <enh@google.com> am 6cb5da25: am ce7dd45a: Fix the BigDecimal documentation to not be a copy & paste of the BigInteger documentation.

* commit '6cb5da25729fe849700e962782811ee6166ed7a6':
Fix the BigDecimal documentation to not be a copy & paste of the BigInteger documentation.
2b98d8bf680a66ad90b5131d2662a21455f289b6 11-Apr-2013 Elliott Hughes <enh@google.com> resolved conflicts for merge of 01ec8332 to jb-mr1-dev-plus-aosp

Change-Id: Ia83e62f734f8a587abce8850300f1a735a7020a7
ec786a87f84aa91029346b9c551f62da9e8d8e3b 11-Apr-2013 Elliott Hughes <enh@google.com> Fix Formatter documentation.

The code samples for the various "hour of day" format specifiers
were wrong.

(cherry-pick of 68e6dc9cf2691e77d8fa0543ad670098bea68163.)

Bug: https://code.google.com/p/android/issues/detail?id=53983
Change-Id: I8db792dbf8a44ca951692620d15d243a7b033273
ava/util/Formatter.java
ce7dd45a54788328249d11ec9b6fb6e454ca28bd 11-Apr-2013 Elliott Hughes <enh@google.com> Fix the BigDecimal documentation to not be a copy & paste of the BigInteger documentation.

Also do some other documentation clean-up. In particular, it's confusing
to use ^ to mean exponentiation when the language uses it to mean
exclusive-or.

(cherry-pick of 995e3c8d0f5dc43bc8ba5f305d1525210caaf796.)

Bug: https://code.google.com/p/android/issues/detail?id=54103
Change-Id: I704bb4d29ea27664adcba6579eabbccd3782b6b1
ava/math/BigDecimal.java
ava/math/BigInteger.java
a7e616b1fad7029059985004edbd2f015f0534a6 11-Apr-2013 Elliott Hughes <enh@google.com> Fix the SimpleDateFormat L/M E/c documentation.

(cherry-pick of 498df39c4379fad055b947c3e97455189275f6f7.)

Change-Id: I04c1957955fc8cf9af9374264a0266ad61334795
ava/text/SimpleDateFormat.java
b6e7f16b4ce07636b04f8164c6ae980080b6bb3a 11-Apr-2013 Elliott Hughes <enh@google.com> am 8ce8f437: Merge "Fix Formatter documentation."

* commit '8ce8f43778da295855bb1718b545f0b382d5ba12':
Fix Formatter documentation.
a488cda1696365c41fa6d25f0fba1eabf619784c 11-Apr-2013 Elliott Hughes <enh@google.com> am ded62ed3: Merge "Fix the BigDecimal documentation to not be a copy & paste of the BigInteger documentation."

* commit 'ded62ed3f2cd05a75a6140d7e6eb4d86745acb17':
Fix the BigDecimal documentation to not be a copy & paste of the BigInteger documentation.
68e6dc9cf2691e77d8fa0543ad670098bea68163 11-Apr-2013 Elliott Hughes <enh@google.com> Fix Formatter documentation.

The code samples for the various "hour of day" format specifiers
were wrong.

Bug: https://code.google.com/p/android/issues/detail?id=53983
Change-Id: Idc9cab93fbba62cd6dce874cc1d0f5908a351c8b
ava/util/Formatter.java
995e3c8d0f5dc43bc8ba5f305d1525210caaf796 11-Apr-2013 Elliott Hughes <enh@google.com> Fix the BigDecimal documentation to not be a copy & paste of the BigInteger documentation.

Also do some other documentation clean-up. In particular, it's confusing
to use ^ to mean exponentiation when the language uses it to mean
exclusive-or.

Bug: https://code.google.com/p/android/issues/detail?id=54103
Change-Id: I34871b05a986e97c814dc0a060872bda6c68d031
ava/math/BigDecimal.java
ava/math/BigInteger.java
b4300128ed47feab255cbf97c70b01657ccfc1af 11-Apr-2013 Elliott Hughes <enh@google.com> am 1b17ae18: Merge "Fix the SimpleDateFormat L/M E/c documentation."

* commit '1b17ae18942833549372e2b5ee3de2e2b9c2cb5d':
Fix the SimpleDateFormat L/M E/c documentation.
498df39c4379fad055b947c3e97455189275f6f7 11-Apr-2013 Elliott Hughes <enh@google.com> Fix the SimpleDateFormat L/M E/c documentation.

Change-Id: I04c1957955fc8cf9af9374264a0266ad61334795
ava/text/SimpleDateFormat.java
d935ae850f75e7748426006f77665646f18ed6ab 10-Apr-2013 Elliott Hughes <enh@google.com> am b776f6df: Merge "Fix BigInteger test failures."

* commit 'b776f6df74219eee7fb7c4158cc27a206647f389':
Fix BigInteger test failures.
b5ccf74bdea2d417d9e4820945fe3ba1f636a0d2 09-Apr-2013 Elliott Hughes <enh@google.com> Fix BigInteger test failures.

We were hitting a couple of OpenSSL bugs. I've reported them upstream, and
work around them in the meantime.

Bug: 2943474
Change-Id: Ia06bcf3025f525a954d9b918669d09531631a266
ava/math/BigInteger.java
d4db2419b59778e8186b4ccfe8bddb7105755637 09-Apr-2013 Elliott Hughes <enh@google.com> am c5f08830: Merge "Revert "Revert "Clean up some code that\'s dead now we\'re using OkHttp."""

* commit 'c5f088304766357ba8efae909bef6e5abc09c1f0':
Revert "Revert "Clean up some code that's dead now we're using OkHttp.""
4f97bfe0d9e6f4bdb43fff91f341f4722af16301 09-Apr-2013 Elliott Hughes <enh@google.com> Revert "Revert "Clean up some code that's dead now we're using OkHttp.""

This reverts commit 7653089cb7609f6269aecd68e839c40941cb1a46

Change-Id: Ie3c0fd1f5d51d61e55ec3a581464943e63716b38
ibcore/io/DiskLruCache.java
ibcore/io/IoUtils.java
79bb81a750db6903bcf4c30f4d932b665c780bfb 09-Apr-2013 Elliott Hughes <enh@google.com> am 7fb1734e: Merge "Revert "Clean up some code that\'s dead now we\'re using OkHttp.""

* commit '7fb1734e4563a9692c60dd8438802f77638b32c0':
Revert "Clean up some code that's dead now we're using OkHttp."
7653089cb7609f6269aecd68e839c40941cb1a46 09-Apr-2013 Elliott Hughes <enh@google.com> Revert "Clean up some code that's dead now we're using OkHttp."

This reverts commit a77a6f93de75a1d9c51ea142013c5fd54c85a359

Change-Id: If6cfe5031efd2d36eae4af5774757667efcb67a2
ibcore/io/DiskLruCache.java
ibcore/io/IoUtils.java
ab8b0a1a683838ef18dfb649774d055300074a98 08-Apr-2013 Elliott Hughes <enh@google.com> resolved conflicts for merge of 574b4df2 to jb-mr2-dev-plus-aosp

Change-Id: I3b480aadccbdad9c9500ae5850604e54e245868c
d73125843c4cc102abf62057396b1741278b8364 08-Apr-2013 Elliott Hughes <enh@google.com> am c9c9e38d: Always throw IOException in IoUtils.deleteContent.

* commit 'c9c9e38d3f85a9ad0fda7c59b342eb461ab23eb8':
Always throw IOException in IoUtils.deleteContent.
a77a6f93de75a1d9c51ea142013c5fd54c85a359 08-Apr-2013 Elliott Hughes <enh@google.com> Clean up some code that's dead now we're using OkHttp.

Change-Id: I4b85c2419e73dc15f921157ce3221225a06b30bf
ibcore/io/DiskLruCache.java
ibcore/io/IoUtils.java
c9c9e38d3f85a9ad0fda7c59b342eb461ab23eb8 08-Apr-2013 Elliott Hughes <enh@google.com> Always throw IOException in IoUtils.deleteContent.

This way, if there's some I/O problem that means we can't set up an
HTTP cache, the app can stumble on cacheless rather than fail to start.

Bug: 8270511
Change-Id: I48331151e4f649a6c8120daf03424708cb409fbe
ibcore/io/IoUtils.java
5911a70a882d502d21b74dcdca6d9f4fcd5e36d5 06-Apr-2013 Brian Carlstrom <bdc@google.com> Don't forget to call sessionRemoved from removeEldestEntry

Also to prevent similar problems in the future, remember SSLSession we
are trying to use in case it disappears from SSLSessionContext.

Added test of SSLSocket SSLSession reuse.

Bug: https://code.google.com/p/android/issues/detail?id=52738
Bug: 8313208

(cherry picked from commit b88ab0efb05475fa9d4e2a06175e95e88f507cff)

Change-Id: I229e018c3acb427a7b580eaf880f86d9b263bac7
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
90d02cbdbac93f6fee46082e25c1c67f75108442 03-Jan-2013 Chris Palmer <palmer@google.com> Check the EE's eKU extension field, if present.

BUG=https://code.google.com/p/chromium/issues/detail?id=167607 and
https://b.corp.google.com/issue?id=7920492

(cherry picked from commit 0da1515c5fe4e97fc2d4d24a41ebd4c078fec4db)

Change-Id: I4309d4a90a9d41390f41c748fa1442ed736e225f
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
65787ad90356e6ec244675893aa17c3abd29eeda 07-Apr-2013 Brian Carlstrom <bdc@google.com> am ca512914: Merge "Don\'t forget to call sessionRemoved from removeEldestEntry"

* commit 'ca5129142ef5d2b19fb0cd5c511aefa4a5ee67f9':
Don't forget to call sessionRemoved from removeEldestEntry
1bb31e8ab5a3d4687ecc05945f315003d08fbdcf 07-Apr-2013 Brian Carlstrom <bdc@google.com> am f47d1e81: Merge "Check the EE\'s eKU extension field, if present."

* commit 'f47d1e811fa52f9847e11d791512c7873120ebc7':
Check the EE's eKU extension field, if present.
b88ab0efb05475fa9d4e2a06175e95e88f507cff 06-Apr-2013 Brian Carlstrom <bdc@google.com> Don't forget to call sessionRemoved from removeEldestEntry

Also to prevent similar problems in the future, remember SSLSession we
are trying to use in case it disappears from SSLSessionContext.

Added test of SSLSocket SSLSession reuse.

Bug: https://code.google.com/p/android/issues/detail?id=52738
Bug: 8313208

Change-Id: I30824cdf96a0d1086abccb61c011dbc9ad60f8cf
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
0da1515c5fe4e97fc2d4d24a41ebd4c078fec4db 03-Jan-2013 Chris Palmer <palmer@google.com> Check the EE's eKU extension field, if present.

BUG=https://code.google.com/p/chromium/issues/detail?id=167607 and
https://b.corp.google.com/issue?id=7920492

Change-Id: Ib917c3a4a8ea6a12f685c44056aa44aa414d45e6
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
0ee9913e40a1aaa38fc4d4f31bd43ab44271e771 05-Apr-2013 Kenny Root <kroot@google.com> am 18ce54dd: Merge "NativeCrypto: catch another RSA error"

* commit '18ce54dd09e46f348dd8abc218a4eb83c2a00404':
NativeCrypto: catch another RSA error
bc5800cc4ebcd5d778483851b73bdac6b1dc2f3c 29-Mar-2013 Alex Klyubin <klyubin@google.com> Make KeyFactory.translateKey for OpenSSL keys a no-op.

There's no need for the OpenSSL-backed KeyFactory.translateKey to
create copies of Key instances which are already backed by OpenSSL.

(cherry picked from commit 3fb32505a22a01c95ff82435ac7f4d6da001c11c)

Change-Id: I49322aa2d29e44a06e6bd35aed3aebc0ea70a3f9
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyFactory.java
4556926f9dee32ac5b2a8ac0c442bc716d1303f3 05-Apr-2013 Kenny Root <kroot@google.com> NativeCrypto: catch another RSA error

Also add a generic fallback for certificate verification when the specific
type of error is unknown.

(cherry picked from commit f04fc33c88d2ad1f06d58d50a0734c0ef511c5b9)

Bug: 8550441
Change-Id: Ica617074718ccac224c9ce3cc8b89502e2abb90d
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509Certificate.java
e0115c00cc94adf77b6e70288f8df8a8f6ad9274 05-Apr-2013 Kenny Root <kroot@android.com> am 96575d78: Merge "Make KeyFactory.translateKey for OpenSSL keys a no-op."

* commit '96575d78a8f94b4730a0c265760e4173d7021f4a':
Make KeyFactory.translateKey for OpenSSL keys a no-op.
18ce54dd09e46f348dd8abc218a4eb83c2a00404 05-Apr-2013 Kenny Root <kroot@google.com> Merge "NativeCrypto: catch another RSA error"
96575d78a8f94b4730a0c265760e4173d7021f4a 05-Apr-2013 Kenny Root <kroot@android.com> Merge "Make KeyFactory.translateKey for OpenSSL keys a no-op."
f04fc33c88d2ad1f06d58d50a0734c0ef511c5b9 05-Apr-2013 Kenny Root <kroot@google.com> NativeCrypto: catch another RSA error

Also add a generic fallback for certificate verification when the specific
type of error is unknown.

Bug: 8550441
Change-Id: Iee44be55c698a4a33450b569c12199747fdbcc49
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509Certificate.java
477d475459a3555d0205d3471d056df9b2e2e73a 05-Apr-2013 Elliott Hughes <enh@google.com> am 21f09462: Improve the Locale.getISO3Country/getISO3Language documentation and behavior.

* commit '21f09462b23338161c3d3d777200e229f6f152dd':
Improve the Locale.getISO3Country/getISO3Language documentation and behavior.
21f09462b23338161c3d3d777200e229f6f152dd 05-Apr-2013 Elliott Hughes <enh@google.com> Improve the Locale.getISO3Country/getISO3Language documentation and behavior.

(cherry-pick of a85d3a86fea97e270568aec746831e07ed972f5e.)

Bug: 8541850
Change-Id: I766f106b9165932de17de84bdd422d0fc0ae27f1
ava/util/Locale.java
817471f25732c46e640111b7c5ddb07a0b769d53 05-Apr-2013 Elliott Hughes <enh@google.com> Merge "Improve the Locale.getISO3Country/getISO3Language documentation and behavior."
a85d3a86fea97e270568aec746831e07ed972f5e 05-Apr-2013 Elliott Hughes <enh@google.com> Improve the Locale.getISO3Country/getISO3Language documentation and behavior.

Bug: 8541850
Change-Id: I8843aeee25eeefe0f6d5e16dd359ba78ef5a01cc
ava/util/Locale.java
6aed748da1deaa820d574446037401893d73be9b 02-Apr-2013 William Luh <williamluh@google.com> Don't install APK files with unsupported General Purpose Bit Flag bits.

Bug: 8476102

(cherry picked from commit d0bd4c19678429b19ac4b9c7477b28241d5dd1db)

Change-Id: I03f19095ac4e6f8abcb61ba6c120227c2df1f2d1
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
50bccad67cef5cebdd87d8fecb129b74d349ba53 03-Apr-2013 Brian Carlstrom <bdc@google.com> am 9dfbc2ec: Merge "Switch to OkHttp as URL\'s preferred HTTP implementation."

* commit '9dfbc2ec351f07b3e0215286d85541f4cd6d1b63':
Switch to OkHttp as URL's preferred HTTP implementation.
9dfbc2ec351f07b3e0215286d85541f4cd6d1b63 03-Apr-2013 Brian Carlstrom <bdc@google.com> Merge "Switch to OkHttp as URL's preferred HTTP implementation."
565537c647d694128e41c44c086d0df09d36a50e 03-Apr-2013 Nick Kralevich <nnk@google.com> am f86e565c: Merge "Don\'t install APK files with unsupported General Purpose Bit Flag bits."

* commit 'f86e565c9d1f86be08d66651d0028cf01d1e084a':
Don't install APK files with unsupported General Purpose Bit Flag bits.
d0bd4c19678429b19ac4b9c7477b28241d5dd1db 02-Apr-2013 William Luh <williamluh@google.com> Don't install APK files with unsupported General Purpose Bit Flag bits.

Bug: 8476102
Change-Id: I764c2aec944558129c8ac04ee0593fb3de82870e
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
2503556d17b28c7b4e6e514540a77df1627857d0 30-Mar-2013 jwilson <jwilson@squareup.com> Switch to OkHttp as URL's preferred HTTP implementation.

Change-Id: Id724b75dd78b68ed00f5db4989c4070896996ec0
ava/net/ExtendedResponseCache.java
ava/net/HttpURLConnection.java
ava/net/ResponseSource.java
ava/net/URL.java
ibcore/net/http/AbstractHttpInputStream.java
ibcore/net/http/AbstractHttpOutputStream.java
ibcore/net/http/Challenge.java
ibcore/net/http/ChunkedInputStream.java
ibcore/net/http/ChunkedOutputStream.java
ibcore/net/http/FixedLengthInputStream.java
ibcore/net/http/FixedLengthOutputStream.java
ibcore/net/http/HeaderParser.java
ibcore/net/http/HttpConnection.java
ibcore/net/http/HttpConnectionPool.java
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpHandler.java
ibcore/net/http/HttpResponseCache.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/HttpsHandler.java
ibcore/net/http/HttpsURLConnectionImpl.java
ibcore/net/http/RawHeaders.java
ibcore/net/http/RequestHeaders.java
ibcore/net/http/ResponseHeaders.java
ibcore/net/http/RetryableOutputStream.java
ibcore/net/http/UnknownLengthHttpInputStream.java
757601b65771fa4ca73f380c8837d52c31118135 03-Apr-2013 Elliott Hughes <enh@google.com> Merge "Document UTS#35 5-count support." into jb-mr2-dev
9dac149d411714e376138fc4415811f03b1cac8a 02-Apr-2013 Elliott Hughes <enh@google.com> Document the icu4c upgrade.

Change-Id: I9e822e8f9ecbad83b8915b087d645334fe26b0a6
ava/util/Locale.java
09e29cf8903af739223e76bd81cdd1cc99847aa1 02-Apr-2013 Elliott Hughes <enh@google.com> Document UTS#35 5-count support.

Bug: 8351278
Change-Id: I2bc3371ed1271b79bfec769a89b755b2cf74cc9f
ava/text/SimpleDateFormat.java
8b5c41a65f58bd35d514bf92be63dff0fa809a55 02-Apr-2013 Elliott Hughes <enh@google.com> Link to android.text.format.DateFormat.getBestDateTimePattern.

Bug: 8283323
Change-Id: I8aaa91df899de157cbbfc1f8b1f38fdfd1f4c46c
ava/text/SimpleDateFormat.java
325ce8a74236f16db63c1971a99aeabf55e61a57 01-Apr-2013 Kenny Root <kroot@google.com> NativeCrypto: adjust thrown exceptions

Should be throwing CertificateException when InputStream is null.

Sometimes OpenSSL doesn't push an error onto the list when PEM encoding
fails. This can be seen with the call to PEM_read_bio_X509 with
hyts_badpem.cer Throw a generic RuntimeException instead.

(cherry picked from commit d14eedd3c70f67a0d7af71b56dcf7b8e4f030bdd)

Bug: 8488314
Change-Id: I716c089c00ab477b4803bdd774681e52384eb95d
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertPath.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertificateFactory.java
d14eedd3c70f67a0d7af71b56dcf7b8e4f030bdd 01-Apr-2013 Kenny Root <kroot@google.com> NativeCrypto: adjust thrown exceptions

Should be throwing CertificateException when InputStream is null.

Sometimes OpenSSL doesn't push an error onto the list when PEM encoding
fails. This can be seen with the call to PEM_read_bio_X509 with
hyts_badpem.cer Throw a generic RuntimeException instead.

Bug: 8488314
Change-Id: Iee3b240e3def076f67e15980897be87ff3bf5e6c
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertPath.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertificateFactory.java
39143413c9a4ccb11f0c16b50bdbf07cca79f19c 01-Apr-2013 Kenny Root <kroot@google.com> NativeCrypto: adjust BasicConstraints check

OpenSSL checks KeyUsage for "Certificate Signing" when checking for a
CA, but Java just specifies that the getBasicConstraints call only looks
at the BasicConstraints itself.

(cherry picked from commit cd59afd3e34cb6b3645babdace22c03882e0ec19)

Bug: 8488314
Change-Id: I72f8d6679169480960630bd73745ebf4c55b383c
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509Certificate.java
cd59afd3e34cb6b3645babdace22c03882e0ec19 01-Apr-2013 Kenny Root <kroot@google.com> NativeCrypto: adjust BasicConstraints check

OpenSSL checks KeyUsage for "Certificate Signing" when checking for a
CA, but Java just specifies that the getBasicConstraints call only looks
at the BasicConstraints itself.

Bug: 8488314
Change-Id: I072cd2e9f1a9295a717f7587817149200113c65f
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509Certificate.java
699ec7b45e1648fb53333df33889971230058233 29-Mar-2013 Kenny Root <kroot@google.com> NativeCrypto: make generation bug compatible

generateCertPath, generateCertificates, and generateCRLs have slightly
different behavior on null input. Match the RI and (apparently) previous
BC behavior.

(cherry picked from commit ce0f579c5e7c384d2a3734e7327ce3a859ba52e3)

Bug: 8488314
Change-Id: I6d0f96829798c83b46201a74cd409ef828e0adb2
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertPath.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertificateFactory.java
5e482c8dfbf5665107cd4f2542f12933191c7f03 30-Mar-2013 Kenny Root <kroot@google.com> Merge "NativeCrypto: make generation bug compatible"
c375a9cfd6ca0f557a4343a14f6c4115a1f20207 29-Mar-2013 Joel Dice <joel.dice@gmail.com> Use long instead of int for address in DirectByteBuffer constructor

This allows the code to be used on 64-bit platforms.

(cherry picked from commit 9ce6a2533b50ffcd24b8b10bae7f234042768819)

Change-Id: Icc5248d8ea276a451b32ecc91b47aeb977e8f21c
ava/nio/DirectByteBuffer.java
9ce6a2533b50ffcd24b8b10bae7f234042768819 29-Mar-2013 Joel Dice <joel.dice@gmail.com> Use long instead of int for address in DirectByteBuffer constructor

This allows the code to be used on 64-bit platforms.

Change-Id: I1c42d48696296f74135cd209b3042b8973779e40
ava/nio/DirectByteBuffer.java
ce0f579c5e7c384d2a3734e7327ce3a859ba52e3 29-Mar-2013 Kenny Root <kroot@google.com> NativeCrypto: make generation bug compatible

generateCertPath, generateCertificates, and generateCRLs have slightly
different behavior on null input. Match the RI and (apparently) previous
BC behavior.

Bug: 8488314
Change-Id: I7a175815adb77b38783860806ddff93eaef521d2
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertPath.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertificateFactory.java
d961888f0666ccd4b797205aaeb60889688a9cb8 29-Mar-2013 Alex Klyubin <klyubin@google.com> Switch OpenSSLECDHKeyAgreement to KeyFactory.translateKey.

OpenSSL KeyFactory.translateKey encapsulates all the functionality
for translating arbitrary Key instances to OpenSSL-backed Key
instances. Thus, there's no need to replicate that functionality
elsewhere.

(cherry picked from commit 0469e3a6a9b5e854b8b985039de8ba4f6e6037bd)

Change-Id: I4caa0021e51a83be6932617117275fd033b6d5f7
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECDHKeyAgreement.java
28a47ccf41ba39f227f0b075dd31cde42b7a5f49 20-Mar-2013 Alex Klyubin <klyubin@google.com> Disallow KeyFactory.translateKey between public and private

This fixes the bug where OpenSSL-backed KeyFactory instances (RSA,
DSA, EC) could translateKey from PrivateKey to PublicKey and vice
versa when presented with "opaque" keys whose translation is
performed via their primary encoded form.

(cherry picked from commit ddee4ef28dcce942e25fd7a24f27239cd74807fa)

Change-Id: Ia24a2591a06ac82c5225a3a9e3069af7a01a0c37
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyFactory.java
09b54f5740095a43f81db70bef1dfb9c625d1e5b 29-Mar-2013 Kenny Root <kroot@android.com> Merge "Switch OpenSSLECDHKeyAgreement to KeyFactory.translateKey."
ddee4ef28dcce942e25fd7a24f27239cd74807fa 20-Mar-2013 Alex Klyubin <klyubin@google.com> Disallow KeyFactory.translateKey between public and private

This fixes the bug where OpenSSL-backed KeyFactory instances (RSA,
DSA, EC) could translateKey from PrivateKey to PublicKey and vice
versa when presented with "opaque" keys whose translation is
performed via their primary encoded form.

Change-Id: Ia24a2591a06ac82c5225a3a9e3069af7a01a0c37
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyFactory.java
0469e3a6a9b5e854b8b985039de8ba4f6e6037bd 29-Mar-2013 Alex Klyubin <klyubin@google.com> Switch OpenSSLECDHKeyAgreement to KeyFactory.translateKey.

OpenSSL KeyFactory.translateKey encapsulates all the functionality
for translating arbitrary Key instances to OpenSSL-backed Key
instances. Thus, there's no need to replicate that functionality
elsewhere.

Change-Id: I4caa0021e51a83be6932617117275fd033b6d5f7
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECDHKeyAgreement.java
3fb32505a22a01c95ff82435ac7f4d6da001c11c 29-Mar-2013 Alex Klyubin <klyubin@google.com> Make KeyFactory.translateKey for OpenSSL keys a no-op.

There's no need for the OpenSSL-backed KeyFactory.translateKey to
create copies of Key instances which are already backed by OpenSSL.

Change-Id: I9411d774453251973703ba9de4fd413fac4b2183
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyFactory.java
0fa4d2c52c874ac710e5195978ec0b833c5050ae 29-Mar-2013 Elliott Hughes <enh@google.com> am 236ab1f1: am 589d6f45: Merge "Use longs instead of ints to store pointers in NIO buffers."

* commit '236ab1f11ae3beaa9fee4c01e8f541429cd0bf62':
Use longs instead of ints to store pointers in NIO buffers.
236ab1f11ae3beaa9fee4c01e8f541429cd0bf62 29-Mar-2013 Elliott Hughes <enh@google.com> am 589d6f45: Merge "Use longs instead of ints to store pointers in NIO buffers."

* commit '589d6f45d4c38c1d74ea970284c32ed013422eef':
Use longs instead of ints to store pointers in NIO buffers.
0121106d9dc1ba713b53822886355e4d9339e852 28-Feb-2013 Joel Dice <joel.dice@gmail.com> Use longs instead of ints to store pointers in NIO buffers.

This allows the code to be used on 64-bit VMs.

Change-Id: I4d01bfcd0ffea528c6179687771d047fdcb4d18a
ava/nio/Buffer.java
ava/nio/DirectByteBuffer.java
ava/nio/MappedByteBuffer.java
ava/nio/MemoryBlock.java
ava/nio/NIOAccess.java
ibcore/io/Memory.java
ibcore/io/MemoryMappedFile.java
ibcore/io/NioBufferIterator.java
9f12fd197b3e2ee58cd8aa60395255e38588b068 29-Mar-2013 Elliott Hughes <enh@google.com> am 66ea3e6c: am 6ebe24c3: Merge "Remove dead NioUtils.getDirectBufferAddress."

* commit '66ea3e6c08d40ba656d06996d946502f94008312':
Remove dead NioUtils.getDirectBufferAddress.
0e8970748c8c78c7efd70cd642881dd99a8adeb3 29-Mar-2013 Elliott Hughes <enh@google.com> am 02b995fe: am 79ad9308: Merge "Add strsignal(3) to Libcore.os."

* commit '02b995fe022262734629fe130fae9e5918eda265':
Add strsignal(3) to Libcore.os.
66ea3e6c08d40ba656d06996d946502f94008312 29-Mar-2013 Elliott Hughes <enh@google.com> am 6ebe24c3: Merge "Remove dead NioUtils.getDirectBufferAddress."

* commit '6ebe24c3dccddf8d00e50f587364797ee21eb4dd':
Remove dead NioUtils.getDirectBufferAddress.
02b995fe022262734629fe130fae9e5918eda265 29-Mar-2013 Elliott Hughes <enh@google.com> am 79ad9308: Merge "Add strsignal(3) to Libcore.os."

* commit '79ad93083df32b073a1862ddf797b78a296cd809':
Add strsignal(3) to Libcore.os.
6ebe24c3dccddf8d00e50f587364797ee21eb4dd 29-Mar-2013 Elliott Hughes <enh@google.com> Merge "Remove dead NioUtils.getDirectBufferAddress."
763f8ed6195707d0c30bfae1ca8a3bb886b746cc 29-Mar-2013 Elliott Hughes <enh@google.com> Add strsignal(3) to Libcore.os.

Bug: 8322568
Change-Id: Iab9a782181a663719b88f090f474b66d24b69258
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
db23ba7b94acccfad73456c06a507295a7896a90 29-Mar-2013 Elliott Hughes <enh@google.com> Remove dead NioUtils.getDirectBufferAddress.

Change-Id: I764d86db1d74c5daf54cc925a9fc76db15a1107a
ava/nio/NioUtils.java
42981f261770b0ade0176292bd1579b93da04c20 28-Mar-2013 Kenny Root <kroot@android.com> am 78b61b2d: am 95209c5c: Merge "InvalidKeyException for "opaque" keys null getEncoded()"

* commit '78b61b2dc96618b39a7d95411492b097da88b1e2':
InvalidKeyException for "opaque" keys null getEncoded()
78b61b2dc96618b39a7d95411492b097da88b1e2 28-Mar-2013 Kenny Root <kroot@android.com> am 95209c5c: Merge "InvalidKeyException for "opaque" keys null getEncoded()"

* commit '95209c5cfe562ee9cc5ec08820c0e1c1a874cbb3':
InvalidKeyException for "opaque" keys null getEncoded()
95209c5cfe562ee9cc5ec08820c0e1c1a874cbb3 28-Mar-2013 Kenny Root <kroot@android.com> Merge "InvalidKeyException for "opaque" keys null getEncoded()"
5e65ffb5f6d747146ba09c86ae9ba161acfb7f8c 28-Mar-2013 Elliott Hughes <enh@google.com> am 6cf77a7e: am 303d1c92: Merge "Simplify the nio Buffer implementations, and fix MappedByteBuffer."

* commit '6cf77a7e2b8ccacfee646f1a8abbb2e19a962081':
Simplify the nio Buffer implementations, and fix MappedByteBuffer.
6cf77a7e2b8ccacfee646f1a8abbb2e19a962081 28-Mar-2013 Elliott Hughes <enh@google.com> am 303d1c92: Merge "Simplify the nio Buffer implementations, and fix MappedByteBuffer."

* commit '303d1c92020f2f8ba663af19d4bd0cf2f445fd33':
Simplify the nio Buffer implementations, and fix MappedByteBuffer.
fe5da19e0e366286cd4d95f7628fe9442b9062c8 27-Mar-2013 Elliott Hughes <enh@google.com> Simplify the nio Buffer implementations, and fix MappedByteBuffer.

* Fix the reported bug caused by delegation in the MappedByteBuffer
implementation.

* Collapse the three classes (ReadOnly*, ReadWrite*, and *) used
to implement most buffer types into one class each.

* Rename HeapByteBuffer to ByteArrayBuffer to match its companions.

* Remove BaseByteBuffer.

* Give the classes used to implement asXBuffer sane names (their
existing names were backwards).

Bug: https://code.google.com/p/android/issues/detail?id=53637
Change-Id: I2a7ff4f1d502564389615384324afadabccb04f9
ava/nio/BaseByteBuffer.java
ava/nio/Buffer.java
ava/nio/ByteArrayBuffer.java
ava/nio/ByteBuffer.java
ava/nio/ByteBufferAsCharBuffer.java
ava/nio/ByteBufferAsDoubleBuffer.java
ava/nio/ByteBufferAsFloatBuffer.java
ava/nio/ByteBufferAsIntBuffer.java
ava/nio/ByteBufferAsLongBuffer.java
ava/nio/ByteBufferAsShortBuffer.java
ava/nio/CharArrayBuffer.java
ava/nio/CharBuffer.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleArrayBuffer.java
ava/nio/DoubleBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FileChannelImpl.java
ava/nio/FloatArrayBuffer.java
ava/nio/FloatBuffer.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/HeapByteBuffer.java
ava/nio/IntArrayBuffer.java
ava/nio/IntBuffer.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongArrayBuffer.java
ava/nio/LongBuffer.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBuffer.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/NioUtils.java
ava/nio/ReadOnlyCharArrayBuffer.java
ava/nio/ReadOnlyDirectByteBuffer.java
ava/nio/ReadOnlyDoubleArrayBuffer.java
ava/nio/ReadOnlyFloatArrayBuffer.java
ava/nio/ReadOnlyHeapByteBuffer.java
ava/nio/ReadOnlyIntArrayBuffer.java
ava/nio/ReadOnlyLongArrayBuffer.java
ava/nio/ReadOnlyShortArrayBuffer.java
ava/nio/ReadWriteCharArrayBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ReadWriteDoubleArrayBuffer.java
ava/nio/ReadWriteFloatArrayBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
ava/nio/ReadWriteIntArrayBuffer.java
ava/nio/ReadWriteLongArrayBuffer.java
ava/nio/ReadWriteShortArrayBuffer.java
ava/nio/ShortArrayBuffer.java
ava/nio/ShortBuffer.java
ava/nio/ShortToByteBufferAdapter.java
18192c25f575342597e5f497c69cbd38cd0637d6 27-Mar-2013 Elliott Hughes <enh@google.com> am e64e371e: am 95e6c6a5: Merge "Improve java.nio.Buffer.toString."

* commit 'e64e371e23f59a434fe7584cbfd7aba81a41bd6d':
Improve java.nio.Buffer.toString.
e64e371e23f59a434fe7584cbfd7aba81a41bd6d 27-Mar-2013 Elliott Hughes <enh@google.com> am 95e6c6a5: Merge "Improve java.nio.Buffer.toString."

* commit '95e6c6a5a1765eea924a7e0fb3234cd0f72362e5':
Improve java.nio.Buffer.toString.
3b5eb93b0dc1d1a0109451cca56a618635485a67 27-Mar-2013 Elliott Hughes <enh@google.com> Improve java.nio.Buffer.toString.

Bug: https://code.google.com/p/android/issues/detail?id=53637
Change-Id: I823662b39cb48b5f4456f4c58269324dfcdc2fd1
ava/nio/Buffer.java
ed7441ebfbc69821598a5bc060518b5c82ffb5c8 20-Mar-2013 Alex Klyubin <klyubin@google.com> InvalidKeyException for "opaque" keys null getEncoded()

This makes OpenSSL-backed KeyFactory instances (RSA, DSA, EC)
translateKey method throw InvalidKeyException for "opaque" keys whose
getFormat() returns non-null while getEncoded() returns null.
Prior to this change a NullPointerException was thrown.

Change-Id: Ie0f3ec27356307338839f4c2b248b0e79578e19b
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyFactory.java
0b2e0fc3b8b8886cfebd27d279383d8cae61102d 25-Mar-2013 Elliott Hughes <enh@google.com> am e6a128b5: am e8f2e494: Merge "MimeUtils\' list of MIME types should be in order of popularity."

* commit 'e6a128b59420dfe26a5927bedd7d37b482f95681':
MimeUtils' list of MIME types should be in order of popularity.
e6a128b59420dfe26a5927bedd7d37b482f95681 25-Mar-2013 Elliott Hughes <enh@google.com> am e8f2e494: Merge "MimeUtils\' list of MIME types should be in order of popularity."

* commit 'e8f2e4949f5047cd3b579b7cd1628a2b5b590fe0':
MimeUtils' list of MIME types should be in order of popularity.
3b6a38d45a9e66be873909694021fa18a4670474 25-Mar-2013 Elliott Hughes <enh@google.com> MimeUtils' list of MIME types should be in order of popularity.

So mp3 really ought to be the first choice for audio/mpeg.

Bug: https://code.google.com/p/android/issues/detail?id=53598
Change-Id: I90fb45c0a71ae4b4b4a81357507ac188cbf19919
ibcore/net/MimeUtils.java
dc90f9ba66cf93d99c8357b8e76145bfaf07f84d 22-Mar-2013 Elliott Hughes <enh@google.com> am 97d59c2d: am 48caff24: Merge "Revert "Revert "Fix Manifest behavior with Manifest-Version/Signature-Version."""

* commit '97d59c2df3418b1ff6733bb3fd2dc69567cead3b':
Revert "Revert "Fix Manifest behavior with Manifest-Version/Signature-Version.""
97d59c2df3418b1ff6733bb3fd2dc69567cead3b 22-Mar-2013 Elliott Hughes <enh@google.com> am 48caff24: Merge "Revert "Revert "Fix Manifest behavior with Manifest-Version/Signature-Version."""

* commit '48caff24e226480232f4ace7f9f8fbd7705946dd':
Revert "Revert "Fix Manifest behavior with Manifest-Version/Signature-Version.""
3f52fe84a434dace741ba77de7322ca4d1d12fa7 22-Mar-2013 Elliott Hughes <enh@google.com> Revert "Revert "Fix Manifest behavior with Manifest-Version/Signature-Version.""

This reverts commit 713a61f90f3e9c9ac74713784d23da45d205a0f8

Change-Id: Ib021fdf15b646ab60b0170094ebd2057c405167c
ava/util/jar/InitManifest.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
48394b6e85c73211974ef3acad27b85aad22dc8d 22-Mar-2013 Elliott Hughes <enh@google.com> am 9ec78ca6: am ad5dc53f: Merge "Remove EWOULDBLOCK from libcore."

* commit '9ec78ca6374af9e405c0545683f0d2a644e0f7bf':
Remove EWOULDBLOCK from libcore.
9ec78ca6374af9e405c0545683f0d2a644e0f7bf 22-Mar-2013 Elliott Hughes <enh@google.com> am ad5dc53f: Merge "Remove EWOULDBLOCK from libcore."

* commit 'ad5dc53fbec2ad25132fb2307c381df1377dc160':
Remove EWOULDBLOCK from libcore.
ad5dc53fbec2ad25132fb2307c381df1377dc160 22-Mar-2013 Elliott Hughes <enh@google.com> Merge "Remove EWOULDBLOCK from libcore."
16e6c1e19b7b092b63e14bf5903a4323dffe425b 22-Mar-2013 Elliott Hughes <enh@google.com> am deacff1b: am 27f9b5dd: Merge "Revert "Fix Manifest behavior with Manifest-Version/Signature-Version.""

* commit 'deacff1b5c84d38431df836bf00b316e554fb96e':
Revert "Fix Manifest behavior with Manifest-Version/Signature-Version."
deacff1b5c84d38431df836bf00b316e554fb96e 22-Mar-2013 Elliott Hughes <enh@google.com> am 27f9b5dd: Merge "Revert "Fix Manifest behavior with Manifest-Version/Signature-Version.""

* commit '27f9b5dde6f2211003be3925d63deed638d45360':
Revert "Fix Manifest behavior with Manifest-Version/Signature-Version."
f4a4259d8a548ab172ca98b702feafcd0ceb1411 22-Mar-2013 Elliott Hughes <enh@google.com> Remove EWOULDBLOCK from libcore.

On Linux, EWOULDBLOCK == EAGAIN, and having a synonym is just confusing.

Change-Id: If53c4ba6d82eed2236dec12003c4c9512c4ecbee
ava/net/PlainSocketImpl.java
ibcore/io/IoBridge.java
ibcore/io/OsConstants.java
713a61f90f3e9c9ac74713784d23da45d205a0f8 22-Mar-2013 Elliott Hughes <enh@google.com> Revert "Fix Manifest behavior with Manifest-Version/Signature-Version."

This reverts commit 32690f22c0bbfa2b72972d45088e6663ce56174f

Change-Id: I381a6cac42363355cf89bb751ca17d34f3ab1238
ava/util/jar/InitManifest.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
17d1a9afa97c7e91524f28fcdd6c956b6459f22e 21-Mar-2013 Elliott Hughes <enh@google.com> am ae05942d: am 0c89977b: Merge "Fix Manifest behavior with Manifest-Version/Signature-Version."

* commit 'ae05942dd8d8bd001ef6b73b398b1d96ee34bc29':
Fix Manifest behavior with Manifest-Version/Signature-Version.
ae05942dd8d8bd001ef6b73b398b1d96ee34bc29 21-Mar-2013 Elliott Hughes <enh@google.com> am 0c89977b: Merge "Fix Manifest behavior with Manifest-Version/Signature-Version."

* commit '0c89977b802a4f43ca3a4d0007d0f22ab5d1057e':
Fix Manifest behavior with Manifest-Version/Signature-Version.
32690f22c0bbfa2b72972d45088e6663ce56174f 21-Mar-2013 Elliott Hughes <enh@google.com> Fix Manifest behavior with Manifest-Version/Signature-Version.

Bug: 8444077
Change-Id: Ic78afc36f94fccc6a473893b0c218cd07b441dc7
ava/util/jar/InitManifest.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
0fde03fc4507c6e17cf511c8a1c5a4f96a9cf958 21-Mar-2013 Elliott Hughes <enh@google.com> am 933cb9ea: am 0f7e3bb4: Merge "Add support for Unix domain sockets."

* commit '933cb9eaab75744547d55f57045a685b76c69bd0':
Add support for Unix domain sockets.
933cb9eaab75744547d55f57045a685b76c69bd0 21-Mar-2013 Elliott Hughes <enh@google.com> am 0f7e3bb4: Merge "Add support for Unix domain sockets."

* commit '0f7e3bb45f03a1b54cc1d6c0b9df608d9607f24d':
Add support for Unix domain sockets.
482a3fc5635ac431b8a7476d7fe3397af4c2e8ec 21-Mar-2013 Elliott Hughes <enh@google.com> Add support for Unix domain sockets.

Bug: 6513075
Change-Id: I0b0166f59745ac8175b39d7796c093041b2df4fd
ava/net/InetSocketAddress.java
ava/net/InetUnixAddress.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/OsConstants.java
ibcore/io/Posix.java
ibcore/io/StructUcred.java
f89f8cb1a4e9dba7387a2ba663d86bcd61895cea 20-Mar-2013 Elliott Hughes <enh@google.com> am 556b78eb: am 557719c1: Merge "Make String\'s fast-path UTF-8 decoder more like icu4c."

* commit '556b78ebae0369ea2a326a25999f253eb559c3fb':
Make String's fast-path UTF-8 decoder more like icu4c.
556b78ebae0369ea2a326a25999f253eb559c3fb 20-Mar-2013 Elliott Hughes <enh@google.com> am 557719c1: Merge "Make String\'s fast-path UTF-8 decoder more like icu4c."

* commit '557719c1b4278690e02b21e8ad507776b6238e5e':
Make String's fast-path UTF-8 decoder more like icu4c.
a47599f6fc631436407e01ae94cc6dc3fc99e16e 20-Mar-2013 Elliott Hughes <enh@google.com> Make String's fast-path UTF-8 decoder more like icu4c.

Bug: https://code.google.com/p/android/issues/detail?id=23831
Change-Id: I0b2af4a3691727735154f1b9f03dba62600dbc31
ava/lang/String.java
029a6d9dd5492555997c6aea67270a75c85ed1dc 19-Mar-2013 Ian Rogers <irogers@google.com> am 2780f6d4: am 21342d1a: Merge "Add missing finals, small doc tidying."

* commit '2780f6d460964fd99ab2bb4d6645b27c7d83d5a5':
Add missing finals, small doc tidying.
2780f6d460964fd99ab2bb4d6645b27c7d83d5a5 19-Mar-2013 Ian Rogers <irogers@google.com> am 21342d1a: Merge "Add missing finals, small doc tidying."

* commit '21342d1aa69b37f1a51a5a0ead0676051ee926f1':
Add missing finals, small doc tidying.
21342d1aa69b37f1a51a5a0ead0676051ee926f1 19-Mar-2013 Ian Rogers <irogers@google.com> Merge "Add missing finals, small doc tidying."
e77562d9df5f4f1bb6c29093d49802ff411f137d 19-Mar-2013 Elliott Hughes <enh@google.com> am 68cb533e: am 40d1aa50: Merge "Clarify Calendar.clear documentation."

* commit '68cb533e44664db0206d6d2568195dd87e9a132d':
Clarify Calendar.clear documentation.
68cb533e44664db0206d6d2568195dd87e9a132d 19-Mar-2013 Elliott Hughes <enh@google.com> am 40d1aa50: Merge "Clarify Calendar.clear documentation."

* commit '40d1aa50b6b59f7f74ff83202174feb7bd73e41b':
Clarify Calendar.clear documentation.
5d2bc7c4f5c69e783307936cfdbe7b4748946d87 19-Mar-2013 Ian Rogers <irogers@google.com> Add missing finals, small doc tidying.

Change-Id: I403a6e3c123f25da23a31d540a6b59060e297f63
ava/util/Collections.java
afc18db553293a12f7a04bd04c7d028dbb3de2f6 19-Mar-2013 Elliott Hughes <enh@google.com> Clarify Calendar.clear documentation.

Bug: https://code.google.com/p/android/issues/detail?id=45877
Change-Id: I49c82916a25388864f4acd12e09de984f72e8653
ava/util/Calendar.java
cb47643377b744db334453a0237e8774a3acb91d 19-Mar-2013 Kenny Root <kroot@google.com> am bb7b75b9: am e699186e: Merge "NativeCrypto: throw exception on invalid DNS altname"

* commit 'bb7b75b9dccf471f3f52cdb088b0c665cf6ded76':
NativeCrypto: throw exception on invalid DNS altname
57d3fe288a569539ababcb2588c1027d4cf29ab9 19-Mar-2013 Elliott Hughes <enh@google.com> am e0e3db14: am 0eeaa394: Merge "Improve java.util.zip compression level documentation."

* commit 'e0e3db14becf70c147ecc0135938cea58e825091':
Improve java.util.zip compression level documentation.
bb7b75b9dccf471f3f52cdb088b0c665cf6ded76 19-Mar-2013 Kenny Root <kroot@google.com> am e699186e: Merge "NativeCrypto: throw exception on invalid DNS altname"

* commit 'e699186e0de99ce2ae930e01b6601c4a30672015':
NativeCrypto: throw exception on invalid DNS altname
e699186e0de99ce2ae930e01b6601c4a30672015 19-Mar-2013 Kenny Root <kroot@google.com> Merge "NativeCrypto: throw exception on invalid DNS altname"
e0e3db14becf70c147ecc0135938cea58e825091 18-Mar-2013 Elliott Hughes <enh@google.com> am 0eeaa394: Merge "Improve java.util.zip compression level documentation."

* commit '0eeaa394c9f734678077430ce331c7691377c479':
Improve java.util.zip compression level documentation.
d38edfcfac60602940080a521800c0f5227d47d7 18-Mar-2013 Jorrit Jongma <jorrit@jongma.org> Improve java.util.zip compression level documentation.

The level parameter (constructors, setLevel, etc)
can be [-1..9], but the docs incorrectly stated [-1..8]
and [0..9].

Explain fully what compression level means in the Deflater
class documentation and point everything else to that
canonical source.

Change-Id: I4b76965d88f0fd0f383bb15a5259a5fa5d81f2b1
Signed-off-by: Jorrit Jongma <jorrit@jongma.org>
ava/util/zip/Deflater.java
ava/util/zip/ZipOutputStream.java
348b7f8b5b147fcba5c120d9070d8f751f4d8df8 18-Mar-2013 Jay Shrauner <shrauner@google.com> Wrap AlphabeticIndex get/setMaxLabelCount

Add JNI wrappers for AlphabeticIndex::get/setMaxLabelCount. ICU 51 default
maxLabelCount is 99; need to be able to increase this to support labeling
secondary languages.

Bug:5356921
Change-Id: I8819e8e1fa080ba4aa06bf616722d059c8a6f9ae
ibcore/icu/AlphabeticIndex.java
223319e62fb4e34b2e82c0d72b3b8af8cb18b68b 18-Mar-2013 Kenny Root <kroot@google.com> NativeCrypto: throw exception on invalid DNS altname

When we receive an invalid DNS alt name (e.g., contains characters
outside of the ASCII printable range), we should throw an exception to
match the previous behavior. This is not validated this against the RI
since the tests currently don't work, but it brings the behavior back to
what it was previously.

Also amend the previous ASN.1 string check to use
ASN1_PRINTABLE_type(...) which actually scans the string to check its
contents. This is what was meant in the last patch.

Bug: 8398461
Change-Id: I260f045a2e144fb9ded7e1d3aa46592da8f63272
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
5c6017a385c66cfbdea972ec3b996498a13eecad 17-Mar-2013 Brian Carlstrom <bdc@google.com> am 4d9ab503: am 6b948b63: Merge "Assorted socket fixes related to test_SSLSocket_setSoWriteTimeout failure investigation"

* commit '4d9ab503876e497c645a9cdfbacfef9a7c7b6d4d':
Assorted socket fixes related to test_SSLSocket_setSoWriteTimeout failure investigation
4d9ab503876e497c645a9cdfbacfef9a7c7b6d4d 17-Mar-2013 Brian Carlstrom <bdc@google.com> am 6b948b63: Merge "Assorted socket fixes related to test_SSLSocket_setSoWriteTimeout failure investigation"

* commit '6b948b63a91693101dc8f727fbf92e599ead0d8b':
Assorted socket fixes related to test_SSLSocket_setSoWriteTimeout failure investigation
51cf1b49bca54ec0229a51df400ad1bee580b1bb 16-Mar-2013 Brian Carlstrom <bdc@google.com> Assorted socket fixes related to test_SSLSocket_setSoWriteTimeout failure investigation

1.) Fixed the failure of libcore.javax.net.ssl.SSLSocketTest's
test_SSLSocket_setSoWriteTimeout by setting send/recv buffer sizes earlier (b/8272932)
2.) Fixed javadoc bug in java.net.Socket
3.) Fixed implementation bug in IoBridge affecting reading SO_RCVBUF
4.) Fixed bug where we would leave unsent bytes in OpenSSL write buffer after SSLSocket write
possible cause of b/6693087

Bug: 8272932
Bug: 6693087
Change-Id: I54e084e58e8b10583a6ac3051d5e05e519139d64
ava/net/Socket.java
ibcore/io/IoBridge.java
e735f87d96074ceb75085b9e05d9c043de161c43 15-Mar-2013 Elliott Hughes <enh@google.com> am c2e52d2c: am 7ee4ba68: Merge "Return Olson ids from TimeZoneNames.forLocale in zone.tab order."

* commit 'c2e52d2c766d0e6fa950ac60490f4569002ee545':
Return Olson ids from TimeZoneNames.forLocale in zone.tab order.
c2e52d2c766d0e6fa950ac60490f4569002ee545 15-Mar-2013 Elliott Hughes <enh@google.com> am 7ee4ba68: Merge "Return Olson ids from TimeZoneNames.forLocale in zone.tab order."

* commit '7ee4ba68c2e512989ad18bb52b1df2f9f85e6958':
Return Olson ids from TimeZoneNames.forLocale in zone.tab order.
7ee4ba68c2e512989ad18bb52b1df2f9f85e6958 15-Mar-2013 Elliott Hughes <enh@google.com> Merge "Return Olson ids from TimeZoneNames.forLocale in zone.tab order."
c2d3b15478578f96acf1fbba20e1fca24ba654f6 15-Mar-2013 Kenny Root <kroot@google.com> am 15db88e6: am ec61aba5: Merge "NativeCrypto: catch null input streams in cert factory"

* commit '15db88e6429dc16806c1ddcda21b486b9fe3be5f':
NativeCrypto: catch null input streams in cert factory
15db88e6429dc16806c1ddcda21b486b9fe3be5f 15-Mar-2013 Kenny Root <kroot@google.com> am ec61aba5: Merge "NativeCrypto: catch null input streams in cert factory"

* commit 'ec61aba5517ba6967efafc73de06c9e4215c0ade':
NativeCrypto: catch null input streams in cert factory
41dbe2157cc4e6c8ec2beb4c17e88caa84ea7dfc 15-Mar-2013 Kenny Root <kroot@google.com> NativeCrypto: catch null input streams in cert factory

Change-Id: I7b4a9d89cab8d35491d2d6efb6dfc0fae8e705d7
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertificateFactory.java
dad6760aedf4c6b29b47dea6352d88fc3df9b2e5 15-Mar-2013 Elliott Hughes <enh@google.com> Return Olson ids from TimeZoneNames.forLocale in zone.tab order.

Bug: 8391426
Change-Id: I7b1335a8d8e0c804d68c85b18b1c4891ec269c1d
ibcore/icu/TimeZoneNames.java
ibcore/util/ZoneInfoDB.java
8284e16c10cb4a81b2436a43442d6e3da47001d5 15-Mar-2013 Kenny Root <kroot@google.com> am 523a2196: am 13bf4477: Merge "NativeCrypto: be more tolerant during translateKey"

* commit '523a2196d2ebbe012741f6f5bfe61b3607e561eb':
NativeCrypto: be more tolerant during translateKey
523a2196d2ebbe012741f6f5bfe61b3607e561eb 15-Mar-2013 Kenny Root <kroot@google.com> am 13bf4477: Merge "NativeCrypto: be more tolerant during translateKey"

* commit '13bf44777fbbfa387b25da07b4779347c273eb53':
NativeCrypto: be more tolerant during translateKey
7885a9c6c62c6162a308913272447153b6a2e809 14-Mar-2013 Kenny Root <kroot@google.com> NativeCrypto: be more tolerant during translateKey

Change-Id: I284bdb4d037d511390a6beb8518eb9bf9c50f25f
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyFactory.java
3dc7ff56501d411c19701e15e0ff1972d3a53753 13-Mar-2013 Kenny Root <kroot@google.com> am 66774f6a: am bc7222da: Merge "Revert "Put DRLCertFactory as first provider""

* commit '66774f6ae126379a66e84ef39e69ba020065dbce':
Revert "Put DRLCertFactory as first provider"
66774f6ae126379a66e84ef39e69ba020065dbce 13-Mar-2013 Kenny Root <kroot@google.com> am bc7222da: Merge "Revert "Put DRLCertFactory as first provider""

* commit 'bc7222da0f3e6bba1ecfd6a355ec89f4e5e9b21f':
Revert "Put DRLCertFactory as first provider"
7d0ed36dc9b07dc16f309360373833f86a418c3e 08-Mar-2013 Kenny Root <kroot@google.com> Revert "Put DRLCertFactory as first provider"

OpenSSL provider now passes all the tests.

This reverts commit b01f3e895e3ae81bdf9c054ada18c503a2f01086.
ava/security/Security.java
ava/security/security.properties
d3a0173dfbe65cfa5960c349cde7ae3faf9273ec 12-Mar-2013 Kenny Root <kroot@android.com> am 46cdd437: am 0048f466: Merge "Switch TLS Channel ID API from ECPrivateKey to PrivateKey."

* commit '46cdd4376775c3b84139f2e4d734ef8affbd605c':
Switch TLS Channel ID API from ECPrivateKey to PrivateKey.
46cdd4376775c3b84139f2e4d734ef8affbd605c 12-Mar-2013 Kenny Root <kroot@android.com> am 0048f466: Merge "Switch TLS Channel ID API from ECPrivateKey to PrivateKey."

* commit '0048f46694737c3e46ec3150db608c2cb19f26aa':
Switch TLS Channel ID API from ECPrivateKey to PrivateKey.
0048f46694737c3e46ec3150db608c2cb19f26aa 12-Mar-2013 Kenny Root <kroot@android.com> Merge "Switch TLS Channel ID API from ECPrivateKey to PrivateKey."
c17bdfa469de6c48f16e454611caae3aaa82cc9d 12-Mar-2013 Alex Klyubin <klyubin@google.com> Switch TLS Channel ID API from ECPrivateKey to PrivateKey.

This is to accept both the "transparent" and "opaque" ECC private
keys. "Transparent" keys provide structured access to their key
material -- these are instances of ECPrivateKey. "Opaque" private
keys are not required to provide structured (or even any) access to
their key material -- these are instances of PrivateKey.

Change-Id: I3fdc4c46675bde48c72424f1cc8f59c3d6b89f0e
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
26b1c3d00a79347e9975b17e13cd31664730841b 11-Mar-2013 Kenny Root <kroot@google.com> am 04870d07: am 0cf5fd37: Merge "NativeCrypto: throw instead of return null"

* commit '04870d07fabf7df356b805b6d6420665ed2dec37':
NativeCrypto: throw instead of return null
d5d64363d38f45ea5638730c81716418d76e0cb8 11-Mar-2013 Kenny Root <kroot@android.com> am b8eba478: am 25b8e1d3: Merge "Add support for ECDH KeyAgreement to OpenSSLProvider."

* commit 'b8eba478d096712b7fa81ba8c2c70f002372d5b5':
Add support for ECDH KeyAgreement to OpenSSLProvider.
04870d07fabf7df356b805b6d6420665ed2dec37 11-Mar-2013 Kenny Root <kroot@google.com> am 0cf5fd37: Merge "NativeCrypto: throw instead of return null"

* commit '0cf5fd372b66b88c3636df3f4469c592529bec12':
NativeCrypto: throw instead of return null
ce14ab85f110ef6b4e5065ede5fd83ff91499d93 11-Mar-2013 Kenny Root <kroot@google.com> NativeCrypto: throw instead of return null

We should not return null for items that cannot be extracted. Instead
throw UnsupportedOperationException so we don't break the API contract.

Change-Id: I09b0854c36f02b5b7ead2fb802f1454353b4cf6e
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateCrtKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
b8eba478d096712b7fa81ba8c2c70f002372d5b5 11-Mar-2013 Kenny Root <kroot@android.com> am 25b8e1d3: Merge "Add support for ECDH KeyAgreement to OpenSSLProvider."

* commit '25b8e1d3492d47cd8be03fce6de002b39f53c441':
Add support for ECDH KeyAgreement to OpenSSLProvider.
e741559fd878ee6e3deca9102f7c27e1c1ca70d0 11-Mar-2013 Alex Klyubin <klyubin@google.com> Add support for ECDH KeyAgreement to OpenSSLProvider.

Change-Id: I07d369de0199505d22f2809c815cc2852388a7b7
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECDHKeyAgreement.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
6926a9fe315b61097494b32f7e98edc8a8a58525 09-Mar-2013 Kenny Root <kroot@google.com> am dc7a4e1f: am 3f81fefb: Merge "Switch Provider changedProperties to LinkedHashMap"

* commit 'dc7a4e1f10c19ad7ddd92fac0485664dad5aaa0d':
Switch Provider changedProperties to LinkedHashMap
dc7a4e1f10c19ad7ddd92fac0485664dad5aaa0d 09-Mar-2013 Kenny Root <kroot@google.com> am 3f81fefb: Merge "Switch Provider changedProperties to LinkedHashMap"

* commit '3f81fefbe971294f092532813257f6e8891b36d4':
Switch Provider changedProperties to LinkedHashMap
adb4135674a4de82cabbff3b0e24f6e944ba33e3 09-Mar-2013 Kenny Root <kroot@google.com> Switch Provider changedProperties to LinkedHashMap

Change-Id: I0b7a9b2a683b6db14e95cf0bf4d9552c67bb7ebc
ava/security/Provider.java
8dfa3a158793dc926aed2f81a9b8831f52137d27 08-Mar-2013 Kenny Root <kroot@google.com> am 4962356d: am b95f7161: Merge "NativeCrypto: various fixes"

* commit '4962356d872deb98363c42cdf367f9a6ec2a3829':
NativeCrypto: various fixes
4962356d872deb98363c42cdf367f9a6ec2a3829 08-Mar-2013 Kenny Root <kroot@google.com> am b95f7161: Merge "NativeCrypto: various fixes"

* commit 'b95f71612d7dfc1dfcb825cb1d96ccdb95e14c0f':
NativeCrypto: various fixes
27cb1a0966613332d0d3c9ab3c78ff886ec77051 08-Mar-2013 Kenny Root <kroot@google.com> am c4426215: am 21e34921: Merge changes I8475e328,Ie0e35777

* commit 'c4426215e9fd7821cd1f2aa95cce5de5fb3dda06':
NativeCrypto: add CertPath encoding PkiPath
NativeCrypto: add CertPath support with PKCS7
e6de385bae91943cae91d88ad8e1bfdd951930f4 08-Mar-2013 Kenny Root <kroot@google.com> NativeCrypto: various fixes

* JNI_TRACE debug messages were misleading in some cases.

* MD object reference was being passed as a jint

* kusage wasn't being checked for null

Change-Id: I15bcba4d8b7291dc232ea20671917bb0848c3180
rg/apache/harmony/xnet/provider/jsse/OpenSSLMac.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509Certificate.java
c4426215e9fd7821cd1f2aa95cce5de5fb3dda06 08-Mar-2013 Kenny Root <kroot@google.com> am 21e34921: Merge changes I8475e328,Ie0e35777

* commit '21e34921c8ae93bb5da361167ec02dae3c9b4a62':
NativeCrypto: add CertPath encoding PkiPath
NativeCrypto: add CertPath support with PKCS7
21e34921c8ae93bb5da361167ec02dae3c9b4a62 08-Mar-2013 Kenny Root <kroot@google.com> Merge changes I8475e328,Ie0e35777

* changes:
NativeCrypto: add CertPath encoding PkiPath
NativeCrypto: add CertPath support with PKCS7
15cfd91abf3e6d6f905d572fe70cf2b3b4cfee60 08-Mar-2013 Kenny Root <kroot@google.com> NativeCrypto: add CertPath encoding PkiPath

Set the default encoding to be PkiPath to conform to other
implementations. This now passes all the tests.

Change-Id: I8475e328e8440aa3ecccd88c34e2aba6bc169be5
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertPath.java
52055836ff1f8c235a558b3754b3f3dd25f5d38c 08-Mar-2013 Kenny Root <kroot@google.com> NativeCrypto: add CertPath support with PKCS7

Add support for generating CertPath with the
OpenSSLX509CertificateFactory implementation.

This only will encode withrPKCS7 currently. This means it fails the
CertPath serialization test because the serialization and
de-serialization code only uses a provider's default serialization
format. Since this provider is not the default provider and the
default provider uses PkiPath as its default format, the
OpenSSLX509CertPath still fails the tests.

This seems like a problem with the way CertPath is serialized. The
impact of this seems to be that a CertPath implementation must have
"PkiPath" as its default encoding.

Change-Id: Ie0e3577746345108301b02e7a1d4e8ea189f2bda
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertPath.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509Certificate.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertificateFactory.java
70fb8092d781fa58f17ef889239e36e8f0ff9c36 07-Mar-2013 Kenny Root <kroot@google.com> am 9ce26884: am cd4a5f73: Merge "NativeCrypto: eliminate some unneeded suppressions"

* commit '9ce2688425597f36bc6e734eeaeaec723ac87a4f':
NativeCrypto: eliminate some unneeded suppressions
e252aee906d89139c3e5fa61609767bfcb363d70 07-Mar-2013 Kenny Root <kroot@google.com> am ac392317: am 2afdf69b: Merge "CertPathSpi: fix encoding arg name"

* commit 'ac392317cdda5d0682f8df83c9b233224cbb46cc':
CertPathSpi: fix encoding arg name
9ce2688425597f36bc6e734eeaeaec723ac87a4f 07-Mar-2013 Kenny Root <kroot@google.com> am cd4a5f73: Merge "NativeCrypto: eliminate some unneeded suppressions"

* commit 'cd4a5f730af2b7f56931bcd5578b51b93811fb39':
NativeCrypto: eliminate some unneeded suppressions
ac392317cdda5d0682f8df83c9b233224cbb46cc 07-Mar-2013 Kenny Root <kroot@google.com> am 2afdf69b: Merge "CertPathSpi: fix encoding arg name"

* commit '2afdf69ba7a7a622b4b7b8db66553273eb7f0d36':
CertPathSpi: fix encoding arg name
cd4a5f730af2b7f56931bcd5578b51b93811fb39 07-Mar-2013 Kenny Root <kroot@google.com> Merge "NativeCrypto: eliminate some unneeded suppressions"
2afdf69ba7a7a622b4b7b8db66553273eb7f0d36 07-Mar-2013 Kenny Root <kroot@google.com> Merge "CertPathSpi: fix encoding arg name"
c853c3e38214cc9a50f0088cec951cc28e3db131 07-Mar-2013 Elliott Hughes <enh@google.com> am 585ed1b3: Merge "Add JNI wrappers for ImmutableIndex"

* commit '585ed1b3ef78b029666bfc6229b8782f1f54d604':
Add JNI wrappers for ImmutableIndex
78af00c336f82170d6497741688b0cbe032b7911 07-Mar-2013 Jay Shrauner <shrauner@google.com> Add JNI wrappers for ImmutableIndex

Add JNI wrappers for AlphabeticIndex.ImmutableIndex from ICU 51.

(cherry-pick of 57ff266fa4bfe233c99ac97479bfbd82c977371f.)

Change-Id: I6fd2fd4d1fe33cfac8d932ad7ba080ebe42a45dc
ibcore/icu/AlphabeticIndex.java
4e74f18c791e6d005c78a421875ae9bf89228981 07-Mar-2013 Kenny Root <kroot@google.com> NativeCrypto: eliminate some unneeded suppressions

Refactoring eliminated the need for these suppressions, so just remove
them.

Change-Id: Ia7f0160d4b5db09a1d23029f3cd2755ef2bd59d6
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertificateFactory.java
8f4a284a73b1da82eefb5d53b0e84312d560924e 21-Feb-2013 Kenny Root <kroot@google.com> CertPathSpi: fix encoding arg name

It appears an automated change has made "encoding" to "charsetName"
which doesn't make sense for the CertPath API since it's really an
encoding of the certificates that's being referenced.

Goes along with changes to CertPath made in change
228d2e19565a39e01849edd2f2b4d03e19d1ee3d

Change-Id: I05ea4adffa2100d4dcf78f8739bff13d40effebf
ava/security/cert/CertificateFactorySpi.java
57ff266fa4bfe233c99ac97479bfbd82c977371f 07-Mar-2013 Jay Shrauner <shrauner@google.com> Add JNI wrappers for ImmutableIndex

Add JNI wrappers for AlphabeticIndex.ImmutableIndex from ICU 51.

Bug:
Change-Id: I8a9d6bc30bf7a282348870780639a980d89d2dae
ibcore/icu/AlphabeticIndex.java
160b3c6ffecff6887690fc721fee64dea5762b48 07-Mar-2013 Kenny Root <kroot@google.com> am 6de95c93: am e25247b8: Merge "NativeCrypto: add OpenSSL X.509 certificate/CRLs"

* commit '6de95c93967231c8fce32d7fbfb04621b15863ee':
NativeCrypto: add OpenSSL X.509 certificate/CRLs
6de95c93967231c8fce32d7fbfb04621b15863ee 07-Mar-2013 Kenny Root <kroot@google.com> am e25247b8: Merge "NativeCrypto: add OpenSSL X.509 certificate/CRLs"

* commit 'e25247b8960b324ef5d961fe9c8e4a7057c047b2':
NativeCrypto: add OpenSSL X.509 certificate/CRLs
75dc9601af8ab3c65114e3c8c57d29ce5ac64125 19-Dec-2012 Kenny Root <kroot@google.com> NativeCrypto: add OpenSSL X.509 certificate/CRLs

Initial implementation of parsing X.509 certificates and certificate
revocation lists (CRLs). This lacks support for generating CertPath
objects, but that will be added at a later time.

This currently isn't the default provider so anything that doesn't
explicitly request this provider will not get this implementation.

Change-Id: I07ae9f333763087cb6ce47e20e12ceeed750920d
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLBIOInputStream.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CRL.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CRLEntry.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509Certificate.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLX509CertificateFactory.java
6e3b11ae38a836ff170f366915fb1e357e1b2c5a 07-Mar-2013 Kenny Root <kroot@google.com> am e0cbfff8: am 7cbe871a: Merge "Put DRLCertFactory as first provider"

* commit 'e0cbfff88056ff0123bf3364d15904b0c2966cc6':
Put DRLCertFactory as first provider
e0cbfff88056ff0123bf3364d15904b0c2966cc6 07-Mar-2013 Kenny Root <kroot@google.com> am 7cbe871a: Merge "Put DRLCertFactory as first provider"

* commit '7cbe871aa361a173e3ede19d522314adc2e5d81b':
Put DRLCertFactory as first provider
b01f3e895e3ae81bdf9c054ada18c503a2f01086 06-Mar-2013 Kenny Root <kroot@google.com> Put DRLCertFactory as first provider

In order to safely check-in the OpenSSL X.509 certificate provider, move
DRLCertFactory to the top so it is selected while the OpenSSL-backed one
is finished up.

Change-Id: I16ce61b47027d5b369dca84ac9ea69b9391c9e88
ava/security/Security.java
ava/security/security.properties
6067958aa1febfb34b392f0b902b90b4e95539d0 05-Mar-2013 Elliott Hughes <enh@google.com> am 689e3317: am 3655d9f5: Merge "use longs instead of ints to store pointers in regex classes"

* commit '689e33177f4e874478339c85614dcf73f3bd296f':
use longs instead of ints to store pointers in regex classes
689e33177f4e874478339c85614dcf73f3bd296f 05-Mar-2013 Elliott Hughes <enh@google.com> am 3655d9f5: Merge "use longs instead of ints to store pointers in regex classes"

* commit '3655d9f527b3c84f1d5abe949b5d7075735b7c7d':
use longs instead of ints to store pointers in regex classes
3655d9f527b3c84f1d5abe949b5d7075735b7c7d 05-Mar-2013 Elliott Hughes <enh@google.com> Merge "use longs instead of ints to store pointers in regex classes"
a188bfaee7d55b56a9adfd84ad313f12f8f43103 05-Mar-2013 Kenny Root <kroot@google.com> am 3eb34711: am 8cf6ab7a: Merge "NativeCrypto: add OpenSSLBIOInputStream"

* commit '3eb34711cd8b2bdaf1fdbd0dafbcc3d469d338b6':
NativeCrypto: add OpenSSLBIOInputStream
ced87aed0e1e18e7d47a998d153ae405e7028eb8 05-Mar-2013 Geremy Condra <gcondra@google.com> Merge "Convert mEntries -> entries, fixing the build." into jb-mr1-dev-plus-aosp
546d3cdd7bdb8ed40c04c28074c35a8cea767265 05-Mar-2013 Geremy Condra <gcondra@google.com> Convert mEntries -> entries, fixing the build.

Change-Id: Ica2cd26f12423f37707ab6f96225d3a994fbb9db
ava/util/zip/ZipFile.java
3eb34711cd8b2bdaf1fdbd0dafbcc3d469d338b6 05-Mar-2013 Kenny Root <kroot@google.com> am 8cf6ab7a: Merge "NativeCrypto: add OpenSSLBIOInputStream"

* commit '8cf6ab7ad55c0fa631b51e0133914f7931e32b03':
NativeCrypto: add OpenSSLBIOInputStream
ac654a099ee83d0007a178b3e35ce79da897f3ad 05-Mar-2013 Brian Carlstrom <bdc@google.com> am 82ad9e32: am a993bbcf: Merge "use longs instead of ints to store pointers in OpenSSL binding"

* commit '82ad9e320aab49a25b66d01cba4e78e673cd5f6f':
use longs instead of ints to store pointers in OpenSSL binding
c1f6588cf2400b3118bb4fcc65f695491110a4f3 04-Mar-2013 Kenny Root <kroot@google.com> NativeCrypto: add OpenSSLBIOInputStream

Any APIs that deal with potentially unbounded input data need a better
way of reading in data than byte arrays. This provides a building block
to implement those APIs with OpenSSL.

Change-Id: I58fef4388dc2731cc004ec5cb9ccc805acc55888
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLBIOInputStream.java
47f0b00bffd8a065a5e0153b51e074b63bb149ec 04-Mar-2013 Geremy Condra <gcondra@google.com> Merge "Merge commit '6425eaad' into manualmerge" into jb-mr1-dev-plus-aosp
51d669984f4a4c721ed1519cca838f0dc29258c6 04-Mar-2013 Geremy Condra <gcondra@google.com> Merge commit '6425eaad' into manualmerge

Change-Id: Iad87f3a194f585618a74338914c8a228e50fa72f
9799c2a0b7e1042aaf634189215be1ac8325b0e7 02-Mar-2013 Geremy Condra <gcondra@google.com> am e68c13c0: am 300cde36: Merge "Remove support for duplicate file entries." into jb-dev

* commit 'e68c13c0f249e2d4907ab447e136b48864ccc74b':
Remove support for duplicate file entries.
e68c13c0f249e2d4907ab447e136b48864ccc74b 02-Mar-2013 Geremy Condra <gcondra@google.com> am 300cde36: Merge "Remove support for duplicate file entries." into jb-dev

* commit '300cde36be292a5cda68cb2a1d652dfc3a135cd7':
Remove support for duplicate file entries.
8acd6134dc84b387608746fbf2054c6d7dcd4f52 28-Feb-2013 Joel Dice <joel.dice@gmail.com> use longs instead of ints to store pointers in OpenSSL binding

This allows the code to be used on 64-bit VMs.

Change-Id: I6c0ef28c55160186c7d59e88ef6fcde4f4a41907
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipher.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipherContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDigestContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECGroupContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPointContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLEngine.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMac.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
4aaa292a38a4201146c37d04fa3d566ce1e17e54 02-Mar-2013 Geremy Condra <gcondra@google.com> am 160dd055: am 4beeee87: Revert "Remove support for duplicate file entries."

* commit '160dd0552b2df159dec511715ed48c4420305fdb':
Revert "Remove support for duplicate file entries."
160dd0552b2df159dec511715ed48c4420305fdb 02-Mar-2013 Geremy Condra <gcondra@google.com> am 4beeee87: Revert "Remove support for duplicate file entries."

* commit '4beeee879af7581d6b3c28246a7cebe608f8e3a0':
Revert "Remove support for duplicate file entries."
c7bcde8fbc5cff6de0b2581ebf7398c83e999410 19-Feb-2013 Geremy Condra <gcondra@google.com> Remove support for duplicate file entries.

Bug: 8219321
Change-Id: Ibc56bea753917c38e1bb20df48aa45fdff39d364
ava/util/zip/ZipFile.java
4beeee879af7581d6b3c28246a7cebe608f8e3a0 01-Mar-2013 Geremy Condra <gcondra@google.com> Revert "Remove support for duplicate file entries."

This reverts commit 5360af4aa1d23fd910680b09fa06f0820db03a9a

Ugh, forgot that make wouldn't make the tests anymore. We're missing the ZipException, I'll reupload in a second.

Change-Id: I8b4d7300cffa1f9f23235e2e33a1cf2b522ba3f3
ava/util/zip/ZipFile.java
843b12a808a7d1a03efdad1e9057f0d6fa0d3a52 01-Mar-2013 Geremy Condra <gcondra@google.com> am 6b26de17: am 5360af4a: Remove support for duplicate file entries.

* commit '6b26de17a296dff8b992cce1932663ec4f1d74cd':
Remove support for duplicate file entries.
929a93cdc0a5ae02e77af763add89d68a20f7665 01-Mar-2013 Elliott Hughes <enh@google.com> am 7e6dddf6: am 07daaa49: Merge "Add Unsafe.allocateInstance."

* commit '7e6dddf659a609d0c773adde8731b33c29514dbb':
Add Unsafe.allocateInstance.
6b26de17a296dff8b992cce1932663ec4f1d74cd 01-Mar-2013 Geremy Condra <gcondra@google.com> am 5360af4a: Remove support for duplicate file entries.

* commit '5360af4aa1d23fd910680b09fa06f0820db03a9a':
Remove support for duplicate file entries.
5360af4aa1d23fd910680b09fa06f0820db03a9a 19-Feb-2013 Geremy Condra <gcondra@google.com> Remove support for duplicate file entries.

Bug: 8219321
Change-Id: I4ac47f8facf13afa45799a0d5e20202a0ef5f0c6
ava/util/zip/ZipFile.java
09bcea1fd2a0bade07ab034352fde6c6ff6e01a6 01-Mar-2013 Elliott Hughes <enh@google.com> Add Unsafe.allocateInstance.

At the moment, mockers are writing dalvik-specific code that pokes
around with our internals and breaks when we change stuff. They're
also supporting Unsafe so they can run on the RI. Everyone's better
off if we just implement the missing Unsafe call.

Bug: 8297640
Change-Id: Ib647e27d920be548009f26ced3b74bad7400a590
un/misc/Unsafe.java
0021dabab0b6c3fdcb1d456a5c8d89df4d05ab35 01-Mar-2013 Elliott Hughes <enh@google.com> am c703df81: am ff66631f: Merge "Fix the HashMap performance regression."

* commit 'c703df8116e92a98f33f6baf4eb4c7bf78584fd1':
Fix the HashMap performance regression.
e2f220961759e31c94bfa770b6a6ddbf019c16d9 01-Mar-2013 Elliott Hughes <enh@google.com> Fix the HashMap performance regression.

Go back to the original cheap (and inline) secondary hash.
LinkedHashMap is a subclass of HashMap, so that has to change too.

Bug: 8290590
Change-Id: I7959a8ce8b8fc96e7f1d2c8a2a13fe83ef4c0dd5
ava/util/HashMap.java
ava/util/LinkedHashMap.java
ad616f2163d1986f095fc0910f2c94a2c564497c 28-Feb-2013 Joel Dice <joel.dice@gmail.com> use longs instead of ints to store pointers in regex classes

This allows the code to be used on 64-bit VMs.

Change-Id: I27be2026e4eea6ea9063aa669e1c41d0e2f0cb04
ava/util/regex/Matcher.java
ava/util/regex/Pattern.java
a7bcbbaf4cef0bb35cf3f939102b159eeeaaec66 28-Feb-2013 Elliott Hughes <enh@google.com> am eb48ab68: am 2f53c4b3: Merge "use longs instead of ints to store pointers in NativeDecimalFormat"

* commit 'eb48ab68dbf06d425fcb3e8eadc4358b6b26a264':
use longs instead of ints to store pointers in NativeDecimalFormat
60b997f1a60b754cfa15f7b6ea7f1c3dadfaf43e 28-Feb-2013 Joel Dice <joel.dice@gmail.com> use longs instead of ints to store pointers in NativeDecimalFormat

This allows the class to be used on 64-bit VMs.

Change-Id: Ie32d72f2f3c80d34a3da0fa08fcd96ed45793473
ibcore/icu/NativeDecimalFormat.java
4d7eeff8deaa36a9670b27c384b3a53a177849b8 28-Feb-2013 Elliott Hughes <enh@google.com> am 695e6d1e: am 3e93a511: Merge "use longs instead of ints to store pointers in ExpatParser"

* commit '695e6d1eac0bff93dd001af642b8c5cf25bd965f':
use longs instead of ints to store pointers in ExpatParser
0b00d81d3c9e9a2df4635cd6a55e291cce303658 28-Feb-2013 Joel Dice <joel.dice@gmail.com> use longs instead of ints to store pointers in ExpatParser

This allows the class to be used on 64-bit VMs. I've also changed
ExpatAttributes to match.

Change-Id: I4340040085b517b6f713623755f4647e190a68a9
rg/apache/harmony/xml/ExpatAttributes.java
rg/apache/harmony/xml/ExpatParser.java
aa7ad88384be510ce2ed475adf81babe6271877c 28-Feb-2013 Elliott Hughes <enh@google.com> am be3b1f15: am 2970474c: Merge "use longs instead of ints to store pointers in ObjectStreamClass"

* commit 'be3b1f15c829acf118e8c53c312ff735fa1c5511':
use longs instead of ints to store pointers in ObjectStreamClass
a40dc9f768eb02dcfd7b1a659333757b148f7bec 27-Feb-2013 Joel Dice <joel.dice@gmail.com> use longs instead of ints to store pointers in ObjectStreamClass

This allows the class to be used on 64-bit VMs.

Change-Id: Ie8dc3a7b3849c94e5cf37cf5c5e0c3231f5af26f
ava/io/ObjectStreamClass.java
c6fced37ea387772bd9544a3b4e6cd29cc636a30 27-Feb-2013 Elliott Hughes <enh@google.com> am ff98e5ef: am e2394cf7: Merge "Make the CLDR version available."

* commit 'ff98e5ef5f519a8ed2986e4254c8c4489b1180ea':
Make the CLDR version available.
15d82808bab24f399a034d086f587d5fab32522e 27-Feb-2013 Elliott Hughes <enh@google.com> Make the CLDR version available.

Change-Id: I745b0153ae1dd9eb24dc02b19ac5ab34638a07e3
ava/lang/System.java
ibcore/icu/ICU.java
f3bcc67d3bda1efb13a69836b311a62ece757a66 27-Feb-2013 Elliott Hughes <enh@google.com> am 48072838: am c009c409: Merge "Switch to using icu4c 50\'s TimeZoneNames API."

* commit '48072838cc9af581538987a225c86debdd3d617c':
Switch to using icu4c 50's TimeZoneNames API.
8148259fca25d05fb086b431a5881bb80269f77e 27-Feb-2013 Brian Carlstrom <bdc@google.com> am 8c81438f: am 0425c8e0: Merge "CertPath: output PkiPath in correct order"

* commit '8c81438f636e10f6886b58d791077f8c6fb91716':
CertPath: output PkiPath in correct order
c009c40978103af8199fb87ba0e2d8d82d52e800 27-Feb-2013 Elliott Hughes <enh@google.com> Merge "Switch to using icu4c 50's TimeZoneNames API."
0425c8e0e163a2ada1d841cfd95c5918098e5ef6 27-Feb-2013 Brian Carlstrom <bdc@google.com> Merge "CertPath: output PkiPath in correct order"
ac7cf58962995825464af08ae6fa5e006c94f3fa 27-Feb-2013 Elliott Hughes <enh@google.com> Switch to using icu4c 50's TimeZoneNames API.

This takes us down from ~330ms/locale on prime to ~70ms/locale.

This also fixes a bug in DateFormatSymbols.getZoneStrings and adds a test
so we don't regress.

Change-Id: I13663a659666c0a7d87a299235b75fa4e9fef69d
ava/text/DateFormatSymbols.java
ava/text/SimpleDateFormat.java
ava/util/TimeZone.java
ibcore/icu/TimeZoneNames.java
ibcore/icu/TimeZones.java
1c0486673ff2a1972064664ca56f61160942828e 26-Feb-2013 Elliott Hughes <enh@google.com> Update Locale documentation for jb-mr2.

Bug: 7625281
Change-Id: Iac26756752c75d6d44a036c6edd0e5ac62d06b61
ava/util/Locale.java
ef85a9547e65c1d02be70ee6b91edc6d5b4c241c 26-Feb-2013 Kenny Root <kroot@android.com> am 4687620e: Merge "Add support for SECG names for NIST P-192 and P-256 ECC curves."

* commit '4687620e2bd44d6d7d6939887b64a47090ad7c0f':
Add support for SECG names for NIST P-192 and P-256 ECC curves.
4687620e2bd44d6d7d6939887b64a47090ad7c0f 26-Feb-2013 Kenny Root <kroot@android.com> Merge "Add support for SECG names for NIST P-192 and P-256 ECC curves."
8c6714a408efa908d45c71c8106fb1034a54c3fb 22-Feb-2013 Kenny Root <kroot@google.com> CertPath: output PkiPath in correct order

All PkiPath encodings were coming out backwards from the
specification since the PkiPath is encoded in the opposite sequence of
the documented API convention in code.

Clean up the code to match current convention.

Remove encoding optimization that could cause a race since the cached
encoding fields are not final and the supplied encoding may not match
re-encoding.

Change-Id: I17db0e52272a1adf47766c8bbd33b63da454c1cf
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/security/provider/cert/X509CertPathImpl.java
70bded29007593a49df3d018cc8d1fc81200b230 25-Feb-2013 Elliott Hughes <enh@google.com> am 29ffa384: Merge "Remove duplication in EvilMapTest."

* commit '29ffa384d8f4492cd0a9a3962c6a3caaba453fab':
Remove duplication in EvilMapTest.
ce51dc95f134145f4fa3d30d3a2bd69d5deaca31 25-Feb-2013 Elliott Hughes <enh@google.com> Remove duplication in EvilMapTest.

Change-Id: I99998f74d4211e3bf74174ebf4b3df7da2388c1e
ava/util/AbstractMap.java
e660c54e94b53fdcde035c75dca7e2cdc5de5d8e 23-Feb-2013 Elliott Hughes <enh@google.com> am 3f898842: Merge "Fix HashMap/Hashtable/LinkedHashMap to not allow corruption of the shared table."

* commit '3f898842384eb337b09d0bddbb818fd80007b306':
Fix HashMap/Hashtable/LinkedHashMap to not allow corruption of the shared table.
3f898842384eb337b09d0bddbb818fd80007b306 23-Feb-2013 Elliott Hughes <enh@google.com> Merge "Fix HashMap/Hashtable/LinkedHashMap to not allow corruption of the shared table."
9084e968a10ed230e76940eef60b8f6229cc7b8b 23-Feb-2013 Elliott Hughes <enh@google.com> Fix HashMap/Hashtable/LinkedHashMap to not allow corruption of the shared table.

See the bug for an excellent description of the problem.

The test also tests ConcurrentHashMap, IdentityHashMap, and WeakHashMap,
even though they never had this bug.

Bug: https://code.google.com/p/android/issues/detail?id=48055
Change-Id: Id12880b1a40945c1a7a4c6bc3656b842aad78bf7
ava/util/HashMap.java
ava/util/Hashtable.java
82213d67817f306d27a5f3726be9ad328d1b781b 23-Feb-2013 Geremy Condra <gcondra@google.com> Merge "Remove support for duplicate file entries."
38cad1eb5cc0c30e034063c14c210912d97acb92 19-Feb-2013 Geremy Condra <gcondra@google.com> Remove support for duplicate file entries.

Bug: 8219321
Change-Id: I4ac47f8facf13afa45799a0d5e20202a0ef5f0c6
ava/util/zip/ZipFile.java
37a65db1857f76998846e13a5c1eca371d5a7a0d 22-Feb-2013 Ian Rogers <irogers@google.com> Tidy up runtime memory query documentation.

Change-Id: I6c006cabef98bcbb4e1cf1f7dfee86839e04d0d7
ava/lang/Runtime.java
4300005e7333feb0f21d8b991d5e639e2da68500 22-Feb-2013 Elliott Hughes <enh@google.com> Fix DatatypeFactory documentation.

Make it clear that you need to supply your own implementation.

Bug: http://code.google.com/p/android/issues/detail?id=14379
Change-Id: I2ca9b4bb03fdbe5da072211aa7b0c42ced1256e3
avax/xml/datatype/DatatypeFactory.java
c498f38c65457c271f8bb0afa0b903fab91a1303 22-Feb-2013 Elliott Hughes <enh@google.com> Fix Method.equals.

The old Method.equals implementation was ridiculously slow, and
incorrect too if you have the same-named class loaded by different
ClassLoaders.

Bug: https://code.google.com/p/android/issues/detail?id=37380
Change-Id: Ife93f61b55391d9a7bcbe6492864776df88bbfd5
ava/lang/reflect/Method.java
1424a2a1a9fc53dc8b859a77c02c924d3dc2334d 06-Feb-2013 Ian Rogers <irogers@google.com> Secondary hash for IdentityHashMap and WeakHashMap.

Dalvik's identity hash code is a multiple of 8 meaning that it can cause
frequent collisions if a secondary hash isn't applied. This change adds
a secondary hash function to IdentityHashMap and WeakHashMap, as is done
in HashMap, HashTable and ConcurrentHashMap. There is some other minor clean-up
including updating the secondary hash function to match that in
ConcurrentHashMap.

Change-Id: Id2115b2622ff759bf2f67bd7572c2ecd8f0f0d67
ava/util/Collections.java
ava/util/HashMap.java
ava/util/Hashtable.java
ava/util/IdentityHashMap.java
ava/util/LinkedHashMap.java
ava/util/WeakHashMap.java
b955bb73a639d3e4eaed90cb9ea74b56e49b65d2 21-Feb-2013 Kenny Root <kroot@google.com> Merge "CertPath: fix some arg names"
228d2e19565a39e01849edd2f2b4d03e19d1ee3d 21-Feb-2013 Kenny Root <kroot@google.com> CertPath: fix some arg names

It appears an automated change has made "encoding" to "charsetName"
which doesn't make sense for the CertPath API since it's really an
encoding of the certificates that's being referenced.

Change-Id: I6894a053fc9cdb27396446983adfca0634645f1a
ava/security/cert/CertPath.java
ava/security/cert/CertificateFactory.java
968c52b509328dcc9fda4e62e4e7a6b4e279dd65 20-Feb-2013 Elliott Hughes <enh@google.com> Implement Package.getAnnotations.

This doesn't require modifications to the dex file format after all.

Bug: https://code.google.com/p/android/issues/detail?id=16149
Change-Id: Iebde55f175a23c5c7e644067148a73d3b1018398
ava/lang/Package.java
1c025319e6fea7b68817a59f0a103dcf02672c8d 16-Feb-2013 Jay Shrauner <shrauner@google.com> Persist Transliterator objects with JNI wrappers

Hold a reference to created Transliterator objects.

(cherry-pick of f273ce458c68f5f2b468927392aededc52b8d814.)

Change-Id: I8d68280be0ffb84f3039338eb8b52b07e23296f1
ibcore/icu/Transliterator.java
72484cceb306ec3e197a8aba11374a6b24e9bfae 14-Feb-2013 Jay Shrauner <shrauner@google.com> Add additional AlphabeticIndex methods

Wrap AlphabeticIndex getBucketCount and addLabels(UnicodeSet) methods.

(cherry-pick of a7eab938026a211a8065b5c695080a6cdd7055a1.)

Change-Id: I02d89aac3345548441f81e505138f921f6fcbd94
ibcore/icu/AlphabeticIndex.java
004df9b49863d5449c0c70d0ade0203813f4e676 16-Feb-2013 Alex Klyubin <klyubin@google.com> Add support for SECG names for NIST P-192 and P-256 ECC curves.

SECG names of the two curve specs are "secp192r1" and "secp256r1".
OpenSSL doesn't support these names (see crypto/ec/ec_curve.c) because:
* "SECG secp192r1 is the same as X9.62 prime192v1 and hence omitted"
* "SECG secp256r1 is the same as X9.62 prime256v1 and hence omitted"

The BouncyCastle-based EC provider, which was the default on older
Android platforms, supported both the SECG (secp...) and ANSI X9.62
(prime...) names for these curves.

This change also makes java.security.KeyPairGeneratorTest assert that
both the SECG and the ANSI X9.62 names of the two curves are
supported by EC* KeyPairGenerators of all the registered Providers.

Change-Id: I9531f05020971fd47afac2367021e3e3e6345d50
rg/apache/harmony/xnet/provider/jsse/OpenSSLECGroupContext.java
e728d7cc9835669fcf5870b107cc95f52ee58070 13-Feb-2013 Kenny Root <kroot@google.com> Add explicit null check in ArrayList

This will help developers debug their code when passing in null as the
collection they wish to copy from.

Change-Id: I6406880d3450037102911ae54ef44e8a03a79420
ava/util/ArrayList.java
5f7d3373caf9ca613fafc9825ee8ac68e03b324e 09-Feb-2013 Elliott Hughes <enh@google.com> Explain Formatter's %tc better.

Bug reported via email by Roy Yokoyama.

Change-Id: I13617d640df8f4e1000114cbe6b3b738e8405568
ava/util/Formatter.java
92fc63ea7bdfcca72203ba0d183a43df0765cf79 08-Feb-2013 Elliott Hughes <enh@google.com> Implement UTS #35 5-count date format patterns.

Bug: https://code.google.com/p/android/issues/detail?id=39616
Change-Id: I8143f75abc25b2f839a3e44ab800ad90ff9b9029
ava/text/DateFormatSymbols.java
ava/text/SimpleDateFormat.java
e5e09174c6239dcb22b015466ca1724193da612d 07-Feb-2013 Kenny Root <kroot@google.com> Merge "NativeCrypto: serialize EC keys differently"
3039d83af05c3dee6d2f0d33cc4b9b167b1a4391 06-Feb-2013 Kenny Root <kroot@google.com> NativeCrypto: serialize EC keys differently

Change-Id: Iff593c707723811347b5b7e91bed52b07c490c9d
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPublicKey.java
3fefbd8abaf356e842705f8ebd24b414dcea8aac 07-Feb-2013 Kenny Root <kroot@google.com> NativeCrypto: update curve names to match OpenSSL

Some of the curve names were incorrect in the ECKeyPairGenerator, so
renamed them to match what OpenSSL expects.

Change-Id: Ib56fe8ce30b95f7faee34a3e18add7c4037e4c47
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyPairGenerator.java
92e388f87a6a830793e7e33c6328c8ca6a89aef4 06-Feb-2013 Kenny Root <kroot@google.com> NativeCrypto: reduce strict Class equality check

For requested keySpec, we don't necessarily need the strict equality
check.

Also, remove code that is unreachable: RSAPrivateCrtKeySpec is a child
of RSAPrivateKeySpec, so there is no need to check whether the keySpec
is assignable to the CRT spec.

Change-Id: I8070541b015167d9314b83b45bd1410663487865
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyFactory.java
a812f61dc1102c8089c1acd48c24b36829ce2482 06-Feb-2013 Kenny Root <kroot@google.com> NativeCrypto: fix more DSA/ECDSA key generation

* Add hidden API to pass along the EC curve name in ECParameterSpec.
The lack of name passing made KeyFactory2Test fail because the
reconstructed ECDSA key had explicit curve parameters instead of an
OID naming the curve.

* Fix some mixing of PKCS8/X509EncodedKeySpec in DSA/ECDSA KeyFactory
implementations.

* Fix the KeyFactory2Test to output more useful error messages.

* Remove known failure which is no longer happening.

* Change EC_GROUP_get_curve_name to return the "shortName" string
which matches the EC_GROUP_new_by_curve_name

Bug: 3483365
Change-Id: I0a80be88bef728b2177f3593cc3421fa47b79470
ava/security/spec/ECParameterSpec.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECGroupContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyFactory.java
ecdfe68fee014b6592ab17d2800d53a510c885c1 06-Feb-2013 Nick Kralevich <nnk@google.com> Merge "Add support for Libcore.os.exec*()"
798f855f67b74d481346d9dc2293ba0eedd8daf9 05-Feb-2013 Nick Kralevich <nnk@google.com> Add support for Libcore.os.exec*()

Add Libcore support for execv() and execve().
This allows java programs to execute other programs
without having to write jni wrappers.

Change-Id: I82ddc069b5812ebd40f06b7f65ce173d496e0597
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
e4936baeb53adb203ec840b7df63548be793d82a 05-Feb-2013 Elliott Hughes <enh@google.com> Merge "Fix BigDecimal precision when constructed from String."
6094788793ce294657e238ad32661ae88addc8a6 05-Feb-2013 Kenny Root <kroot@google.com> Merge "NativeCrypto: fix some DSA/ECDSA key generation"
20fa09fdf5076af628a42907230acec35214e7cf 05-Feb-2013 Elliott Hughes <enh@google.com> Fix BigDecimal precision when constructed from String.

Bug: https://code.google.com/p/android/issues/detail?id=43480
Change-Id: Id42e4458323d7ab3dafb2dec84909096988e4365
ava/math/BigDecimal.java
8c4b6ac9b5a3346af8b474949c501fbb2d464c50 05-Feb-2013 Kenny Root <kroot@google.com> NativeCrypto: fix some DSA/ECDSA key generation

We were trying to generate a public key from a private key spec which
obviously doesn't work.

Also fix the error messages that indicated public key when it meant
private key.

Change-Id: Ifae417bc3e4c56aced5b7583a34965c7f31c9c66
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyFactory.java
58d66640cb62cec2fee9aa6c3f534565d415eb8e 05-Feb-2013 Elliott Hughes <enh@google.com> Merge "Add libcore.icu.AlphabeticIndex."
860b3c5989a8dd9de73639d8057443aa12fe7b16 05-Feb-2013 Elliott Hughes <enh@google.com> Add libcore.icu.AlphabeticIndex.

Change-Id: I06a634199ff2c8dcf0a8b6e4774da4cdbfb0d774
ibcore/icu/AlphabeticIndex.java
ibcore/icu/Transliterator.java
fc5480d13eb8b32c325ba79ba4221df2145727b7 05-Feb-2013 Kenny Root <kroot@google.com> NativeCrypto: DSA keys do not always have parameters

DSA keys do not always have parameters. When validating a certificate
chain, the DSA key will inherit parameters from the next DSA key up the
chain if DSAPublicKey#getParams() returns "null".

Change-Id: I052b42219829157ebdf148abb53048044cc83f8d
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAParams.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPublicKey.java
3aac4ddc4d17c07fa8b4908069d23d5401a77993 05-Feb-2013 Elliott Hughes <enh@google.com> Add icu4c-backed transliteration.

Change-Id: I4194810646a2a0661331aaf941fb5f99ce7758b1
ibcore/icu/Transliterator.java
3ad678058ea02fe44d720442c2ee0501dc483974 04-Feb-2013 Elliott Hughes <enh@google.com> Merge "Fix date parsing for time zones without names."
cf101d4099424a8e1ea603da5ddefd067f154b57 04-Feb-2013 Elliott Hughes <enh@google.com> Fix date parsing for time zones without names.

Bug: 8128460
Change-Id: I41a6baee6e22b8af9170e3e569e0599c38b5e707
ava/text/DateFormatSymbols.java
ava/text/SimpleDateFormat.java
ava/util/TimeZone.java
599f6cf95d676fe0dacd65b0d1cfb66c6f89744d 04-Feb-2013 Kenny Root <kroot@google.com> Merge "OpenSSLCipher: fix short buffer error message"
99740b0fa7190c8be79e798ba7aa9c94c320af45 04-Feb-2013 Elliott Hughes <enh@google.com> Merge "Fix the documentation for Math/StrictMath ceil/floor."
eca901e0699ed0b1026dacabc81aed33fba10ead 04-Feb-2013 Kenny Root <kroot@google.com> OpenSSLCipher: fix short buffer error message

Change-Id: I4f16bee3c57c80a113bd92509451606d5fd2b666
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipher.java
744681303401b72671c33425a72676a053733a06 02-Feb-2013 Elliott Hughes <enh@google.com> Fix the documentation for Math/StrictMath ceil/floor.

Bug: https://code.google.com/p/android/issues/detail?id=44080
Change-Id: I426b723a7aa36a16aed7baf36fd907786799c91a
ava/lang/Math.java
ava/lang/StrictMath.java
c9989de40c23c579bc9dc0231fb643436bbf73cc 01-Feb-2013 Kenny Root <kroot@google.com> OpenSSL KeyFactory for DSA and EC

Add KeyFactory for EC. Uncomment the KeyFactory for DSA.

Remove useless template parameters from RSA KeyFactory.

Change-Id: Id7c4d3624719b5088abf239482ba58c7a2557d61
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyFactory.java
7245d2ec05c8488f0bd82720eedac6a2dda17059 01-Feb-2013 Kenny Root <kroot@google.com> NativeCrypto: fix Channel ID tests

The NativeCryptoTest runs from a different class loader, so we need to
make the OpenSSLECGroupContext public to use it from there.

Also make sure we explicitly initialize the EC key at the beginning of
the test.

Change-Id: I733fe6263ef2ef72988987bf608cb806752033f5
rg/apache/harmony/xnet/provider/jsse/OpenSSLECGroupContext.java
b737d494e9413fad1a0b013f5d9e9ce3e61074ed 29-Jan-2013 Kenny Root <kroot@google.com> Merge "NativeCrypto: add OpenSSLSecretKey for HMAC"
a45d02e5fbf1ec387dcb1e6c91e867d32ab36193 23-Jan-2013 Kenny Root <kroot@google.com> NativeCrypto: add OpenSSLSecretKey for HMAC

Change-Id: Id5a77b41549944d7deffda0e2a4e60dbbd26184e
rg/apache/harmony/xnet/provider/jsse/OpenSSLEngine.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMac.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSecretKey.java
cd8a6ed093ef3746451c18538b193f55320c5368 29-Jan-2013 Elliott Hughes <enh@google.com> Don't rely on fallback time zone names starting "GMT".

I can't think of a way to say what I actually want to say here, so let's
just wait for icu4c 50 and hope we can rewrite all this code with the new
TimeZoneNames API. Until then, various locales -- those whose gmtFormat
doesn't start "GMT" -- still have the bugs that the previous change fixes
for the majority of locales.

Also switch from "Samoa Summer Time" to "Samoa Daylight Time" because that's
what CLDR is proposing to go with.

Change-Id: I47e2fc413ccde6af59f51e5ec79e664a1dc8be82
ibcore/icu/TimeZones.java
6914efca8fe737a753d234d7e91222da6a8cdabe 28-Jan-2013 Kenny Root <kroot@google.com> NativeCrypto: add test base for OpenSSL ENGINEs

This sets up some of the testing infrastructure to allow us to test all
the ENGINE-related test paths in the NativeCrypto code.

Change-Id: I21f3dbebbaa90327d48a99020ae3a3e90624cc75
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
0731d6d00c5e30c05e035d3ae96327029d07a606 22-Jan-2013 Kenny Root <kroot@google.com> OpenSSLKey: easier creation and use of OpenSSL keys

For some future changes, it will be easier to convert OpenSSL objects to
real objects and back from native pointers. Make it easier to add new
EVP_PKEY types without adding them in if/else statements everywhere.

Change-Id: I19095bfc5f00835a266f572bc62e2e8d0a8cd544
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECGroupContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLEngine.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKeyHolder.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateCrtKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignatureRawRSA.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
57ff19856a9486babe99270a690950aa1652f903 22-Jan-2013 Elliott Hughes <enh@google.com> icu4c 4.9 can localize "fil".

Bug: 8023288
Change-Id: I40d26622e135c5ab06c90b1744a87bcf8cb320de
ava/util/Locale.java
4b88b3ded5c026282bf3a38cc006dc5f764603a1 19-Jan-2013 Brian Carlstrom <bdc@google.com> Merge "Add support for TLS Channel ID to OpenSSL-backed sockets."
01606cf9c5e8c2521fcfd24b620b0675cdbb098c 19-Jan-2013 Elliott Hughes <enh@google.com> Merge "Always throw a SocketException from isConnected."
51f50987458f4b9c3bf3d53f829331a335f67113 19-Jan-2013 Elliott Hughes <enh@google.com> Always throw a SocketException from isConnected.

Either a SocketTimeoutException if it's a timeout, or a ConnectException
otherwise.

Bug: 6819002
Change-Id: I06da843bd4dd9a3492f9f1ec3e6cb36fe86ae776
ibcore/io/IoBridge.java
7e5832d1a709558fca80ecb25fdd0626b2d4312d 19-Jan-2013 Kenny Root <kroot@google.com> Merge changes Idfb18017,Ifbba9fdf

* changes:
OpenSSLMac: fix initialization with new key
HarmonyJSSE: convert byte correctly in padding check
0d4ee1f9b8c37fb33cd74da4efac5905ba138e45 19-Jan-2013 Kenny Root <kroot@google.com> OpenSSLMac: fix initialization with new key

If an OpenSSLMac instance was re-initialized with a new key, it wouldn't
produce correct results. Make sure to re-initialize the EVP_MD_CTX as
well.

Change-Id: Idfb18017407ff65866ae7e6f6fca3d646a970803
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMac.java
ca8e030149675a1767203b64b886253e337abcb9 18-Jan-2013 Elliott Hughes <enh@google.com> Merge "Improve our time zone name collection."
f20e96718a936499da309766da7f36f123b43d93 18-Jan-2013 Elliott Hughes <enh@google.com> Improve our time zone name collection.

A variety of bugs here. We weren't using dates in the current year,
we were assuming that icu4c has correct time zone transition data (it
usually doesn't), and in the fallback code (which we'd previously
never hit) we weren't honoring the caller's request for standard/daylight
time.

This patch fixes:

Africa/Tripoli: long='Eastern European Standard Time' short='Eastern European Standard Time'!
America/Araguaina: long='Brasilia Standard Time' short='Brasilia Standard Time'!
America/Campo_Grande: long='Amazon Standard Time' short='Amazon Standard Time'!
America/Cuiaba: long='Amazon Standard Time' short='Amazon Standard Time'!
America/Havana: long='Cuba Standard Time' short='Cuba Standard Time'!
America/Santiago: long='Chile Standard Time' short='Chile Standard Time'!
America/Sao_Paulo: long='Brasilia Standard Time' short='Brasilia Standard Time'!
Antarctica/Palmer: long='Chile Standard Time' short='Chile Standard Time'!
Asia/Jerusalem: long='Israel Standard Time' short='Israel Standard Time'!
Asia/Tehran: long='Iran Standard Time' short='Iran Standard Time'!
Asia/Tel_Aviv: long='Israel Standard Time' short='Israel Standard Time'!
Brazil/East: long='Brasilia Standard Time' short='Brasilia Standard Time'!
Chile/Continental: long='Chile Standard Time' short='Chile Standard Time'!
Chile/EasterIsland: long='Easter Island Standard Time' short='Easter Island Standard Time'!
Cuba: long='Cuba Standard Time' short='Cuba Standard Time'!
Iran: long='Iran Standard Time' short='Iran Standard Time'!
Israel: long='Israel Standard Time' short='Israel Standard Time'!
Libya: long='Eastern European Standard Time' short='Eastern European Standard Time'!
Pacific/Apia: long='Samoa Standard Time' short='Samoa Standard Time'!
Pacific/Easter: long='Easter Island Standard Time' short='Easter Island Standard Time'!
Pacific/Fiji: long='Fiji Standard Time' short='Fiji Standard Time'!

It also fixes Pacific/Fakaofo, which was confused between GMT+14:00 and
GMT+13:00.

We need a special case for Pacific/Apia because icu4c 4.9 doesn't believe
Samoa has ever used daylight time.

I've also added a test to keep us out of mischief in the face of future
upgrades to the Olson tzdata and/or icu4c.

Bug: 7955614
Bug: 8026776
Change-Id: I7ed551a691f29e26dd71456d492493d2a4fce945
ava/util/TimeZone.java
3247af087973af299112cde32101592e86992c6f 18-Jan-2013 Kenny Root <kroot@google.com> HarmonyJSSE: convert byte correctly in padding check

This gives a better error message since the byte could be negative
without the mask.

Change-Id: Ifbba9fdf647b7ecf8bc300fb1034011ba8357401
rg/apache/harmony/xnet/provider/jsse/ConnectionStateSSLv3.java
rg/apache/harmony/xnet/provider/jsse/ConnectionStateTLS.java
5043cc0baaccf647d97a20a9e88f174215e4c9cc 18-Jan-2013 Brian Carlstrom <bdc@google.com> Improve exception detail in Mac.update

Change-Id: I51667af9b054afe202d98474e219f04eb5267370
avax/crypto/Mac.java
de30700ecd96af43e2f3ee2e03f398896f5bb1e9 17-Jan-2013 Alex Klyubin <klyubin@google.com> Add support for TLS Channel ID to OpenSSL-backed sockets.

On the client, TLS Channel ID is enabled by passing an ECDSA P-256
private key to OpenSSLSocketImpl via the new setChannelIdPrivateKey
method.

On the server, TLS Channel ID is enabled via the new method
OpenSSLServerSocketImpl.setChannelIdEnabled. After the TLS/SSL
handshake, the Channel ID can be obtained via the new method
getChannelId.

See http://tools.ietf.org/html/draft-balfanz-tls-channelid-00.

Change-Id: I035e86d36678ae5956e6c1837afefcd668b3d750
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
90c22063c0c26c1f9762dcaa91eef2f1ae607d67 18-Jan-2013 Brian Carlstrom <bdc@google.com> Track new value of SSL_MODE_HANDSHAKE_CUTTHROUGH in external/openssl

Change-Id: Ie5cd6d4201ce2f361384eebe37487a3586321e8b
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
65de5c409f566322178f7b890e4e47c656702810 18-Jan-2013 Kenny Root <kroot@google.com> Merge "NativeCrypto: output named curves when possible"
c9acbf1c80d90952f7a4bce83e37c2540e42f6fc 17-Jan-2013 Kenny Root <kroot@google.com> NativeCrypto: output named curves when possible

When converting to ASN.1 format from a named curve, try to make sure we
can output those named curves whenever possible instead of all the
parameters.

Also make sure we output in uncompressed point format for compatibility
with other implementations.

Change-Id: I3f370be694ac709f02e3043a2c1152ad4838ef41
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECGroupContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
dd94f8009771072a170cdba3fc582c63aaaa5387 16-Jan-2013 Kenny Root <kroot@google.com> Make sure alternativeNames are unmodifiable

Add tests to make sure the Collection<List<?>> instance returned from
getSubjectAlternativeNames and getIssuerAlternativeNames is
unmodifiable. Also test the byte arrays returned are clones of
anything kept long-term.

Change-Id: Ia7564665643e63cb04a264b011eeebaeeed3811f
rg/apache/harmony/security/x509/Extensions.java
4f32b7933626e100fca505484f8b4636f3342e5e 14-Jan-2013 Elliott Hughes <enh@google.com> Make CLDR's 12- and 24-hour time formats available.

Bug: 7924970
Change-Id: I392e8110885f662f32caae46d961ca6e9e4301d7
ibcore/icu/LocaleData.java
1d1012ac483d7caccae0e8e07273dedab573e0ba 12-Jan-2013 Elliott Hughes <enh@google.com> Clean up RandomBitsSupplier.

The reason the array had later items commented out is that the loop
was wrong: it would always choose the _last_ valid device, not the
_first_ as intended.

There were two choices here:
1. fix the loop and have the same list of three devices that OpenSSL uses.
2. remove the loop and just say "you must have /dev/urandom".

This patch goes with option 2.

Change-Id: Ia99be6ba929c7b6c35bed77c19d47de80719973c
rg/apache/harmony/security/provider/crypto/RandomBitsSupplier.java
320d5c30247a4ee3409321e131ff19bbaa89be8a 11-Jan-2013 Elliott Hughes <enh@google.com> Merge "Track redundant ops when opening the cache."
8c4a407e34de1b348316a9175bd1c0577c887181 09-Jan-2013 Brian Carlstrom <bdc@google.com> verifyCertificateChain should convert unknown exceptions to CertificateException

Bug: http://code.google.com/p/android/issues/detail?id=42533
Change-Id: Id0e0eb8f007987decb4fee94135be8a92d2f8981
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
13533d151eb0a768fb5588e29cc5b2012b19b3eb 08-Jan-2013 Elliott Hughes <enh@google.com> Merge "Retry failed redirections when socket is recycled."
283b2ae45b16618be63890251d09b12b1ba9f113 08-Jan-2013 Brian Carlstrom <bdc@google.com> Merge "Should favor most specific CN when working with distinguished names"
28d504c4188a5d25a7209e4d1c131e0afffa1fcf 07-Jan-2013 Kenny Root <kroot@google.com> Harmony: fix DirName handling in X.509 certs

In SubjectAlternativeName, the directoryName (4) entry is actually a
CHOICE of a single possibility. Harmony was trying to decode it as the
single possibility itself and running into parsing issues.

Additionally, change T61String (TeletexString) handling to assume UTF8
encoding like the RI does.

Change-Id: Ic0b9541dfed21b59940fa50a27cee2e7704d8950
rg/apache/harmony/security/asn1/ASN1StringType.java
rg/apache/harmony/security/x509/DNParser.java
rg/apache/harmony/security/x509/GeneralName.java
3b14c4bd5c7ce28ed3485bd24285c58424c074af 07-Jan-2013 Kenny Root <kroot@google.com> Harmony: ignore invalid IP in subject alt. names

The RI and other providers will ignore invalid IP lengths instead of
throwing a parsing exception. Bring Harmony in line with those other
providers.

Change-Id: I65715a58614543ab296493829338239cf402ae5d
rg/apache/harmony/security/x509/Extensions.java
rg/apache/harmony/security/x509/GeneralName.java
rg/apache/harmony/security/x509/GeneralNames.java
22833af20b3719dcaf5ae2ce0fe521d9cb40f3b9 07-Jan-2013 Kenny Root <kroot@google.com> Merge "Fix Harmony's generateCertificates for empty input"
3b0aee6ea60c14ba1e1e876b511dceb55131770d 07-Jan-2013 Kenny Root <kroot@google.com> Fix Harmony's generateCertificates for empty input

The docs say that if an InputStream does not have any certificates, it
will return an empty collection.

Change-Id: I470c05c097de6c3fa80571294b31cf7ffd10f003
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
8db6f195ccb99e15f0de3b85aa2f670427497081 07-Jan-2013 Brian Carlstrom <bdc@google.com> Should favor most specific CN when working with distinguished names

This reverts a regression introduced in commit 1331404bf45cb2f220ee9aa2c0c108ce59453a74
that was caught by tests.api.javax.net.ssl.HostnameVerifierTest.testVerify

Bug: 7894348
Bug: http://code.google.com/p/android/issues/detail?id=41662
Change-Id: Iec8000b716e3d99ca7af4aa2c3fd7b43e22c68cd
avax/net/ssl/DistinguishedNameParser.java
76932ea58323be0b875914396f83aa12bf3229f2 07-Jan-2013 Vladimir Marko <vmarko@google.com> Use EmptyArray.STRING in Splitter.fastSplit().

This is a minor cleanup after
https://android-review.googlesource.com/47964

Change-Id: Id8de6c09f3397b044082c275095ff7a7a43185f9
ava/util/regex/Splitter.java
1331404bf45cb2f220ee9aa2c0c108ce59453a74 21-Dec-2012 Brian Carlstrom <bdc@google.com> Should favor last CN when working with distinguished names

Bug: 7894348
Bug: http://code.google.com/p/android/issues/detail?id=41662
Change-Id: I3814d653b628f6af12ce1ba59b39b1c7cc45e124
avax/net/ssl/DefaultHostnameVerifier.java
avax/net/ssl/DistinguishedNameParser.java
48f56e55bb918725a8cba2a698b3040e1bd00200 03-Jan-2013 jwilson <jwilson@squareup.com> Track redundant ops when opening the cache.

See https://github.com/JakeWharton/DiskLruCache/issues/28

Change-Id: I4815aed3b40f0d2599ff12a42853a4947feffbca
ibcore/io/DiskLruCache.java
e72aa7d62d00092074814371dcb9d14ff41992e3 03-Jan-2013 Elliott Hughes <enh@google.com> Improve the Class documentation.

There were a few other instances of the same error reported in the bug,
plus bits that didn't make much sense, so I gave the whole file a quick
scrub.

Bug: http://code.google.com/p/android/issues/detail?id=42100
Change-Id: I40669a614c92a80038253a4adf89f8c7f7f8e95c
ava/lang/Class.java
e040b50765cafb84783245ed959b1f5b6ded8de4 03-Jan-2013 Elliott Hughes <enh@google.com> Improve the Calendar documentation.

Bug: http://code.google.com/p/android/issues/detail?id=42059
Change-Id: I08112426fcd8a2389e4068d2c6f9c3a583ec95d5
ava/util/Calendar.java
e026f397cdc2f235cfc94d14d3925b16f257d17d 22-Dec-2012 Elliott Hughes <enh@google.com> Merge "Performance improvement in DiskLruCache.readJournalLine()."
ae415949fbe29351da9ca97d3bb3678fd0fd8bb9 22-Dec-2012 Elliott Hughes <enh@google.com> Merge "Support System.loadLibrary for libraries with transitive dependencies."
652abda3efa231d431375677363f4a36327eeda7 20-Dec-2012 Elliott Hughes <enh@google.com> Support System.loadLibrary for libraries with transitive dependencies.

Bug: 7896159
Bug: http://code.google.com/p/android/issues/detail?id=34416
Change-Id: Id1225a353b52c50bb3eedfd48e92ec85dd60134b
ava/lang/Runtime.java
beee0a569bf1077f0d3be516fed63661fcedde5c 21-Dec-2012 Brian Carlstrom <bdc@google.com> Fix X509Certificate.getBasicConstraints implementation for DRLCertFactory

Change-Id: I5d1ba078b0f8f9ec8e2950e0da02481e8162a5e6
ava/security/cert/X509Certificate.java
rg/apache/harmony/security/provider/cert/X509CertImpl.java
rg/apache/harmony/security/x509/BasicConstraints.java
rg/apache/harmony/security/x509/Extensions.java
385c6f4303341beb9b091b6d252811b7ca3b9f42 20-Dec-2012 Nick Kralevich <nnk@google.com> FileChannelImpl: Ignore ftruncate failures on non-regular files

Truncate only works on regular files. On other files, such as
UNIX character devices, truncate returns EINVAL, which
causes an IOException to be thrown.

With this change, we now have support for creating a MappedByteBuffer
on UNIX character devices such as /dev/zero, if the underlying
device node supports mmap().

Change-Id: I094371d821b187abe3da32edc411ff76a81b047e
ava/nio/FileChannelImpl.java
fc28f29b0b7e6e295c8680a7e1b89e2d26fe61a7 13-Dec-2012 Vladimir Marko <vmarko@google.com> Performance improvement in DiskLruCache.readJournalLine().

Speed up DiskLruCache.readJournalLine() by avoiding memory
allocations from String.split(). For non-CLEAN lines, we
avoid using String.split() altogether and find separators
explicitly, for CLEAN lines we defer to String.split() and
we optimize the underlying Splitter.fastSplit() overload to
avoid unnecessary allocations itself.

On a test journal with 7347 entries (1099 CLEAN) this saves
about 45-50% from ~250ms. On a test journal with 272 entries
(86 CLEAN) this saves about 35-40% from ~10ms. Measured
loadJournal on GN in a tight loop (file contents cached).

If used without the other DiskLruCache.readJournalLine()
improvements, the Splitter.fastSplit() optimization alone
would provide about 60% of the savings. It should also
speed up other code outside the DiskLruCache.

Change-Id: I1d6c6b13d54d8fcba3081f2bb9df701b58f5e143
ava/util/regex/Splitter.java
ibcore/io/DiskLruCache.java
19aa40c81c48ff98ccc7272f2a3c41479b806376 18-Dec-2012 Jeff Sharkey <jsharkey@android.com> Retry failed redirections when socket is recycled.

When an HTTP request fails, getResponse() attempts to retry once
if the socket was recycled from a previous request. This extends
that logic to retry failed redirects by marking the connection as
recycled.

http://code.google.com/p/android/issues/detail?id=41576

Change-Id: I5aea566a498e48d753d3893101d14cd4ab76db2b
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpURLConnectionImpl.java
039f7599559fd7e48c354b99dcb94ff391f53349 15-Dec-2012 Elliott Hughes <enh@google.com> Add tcsendbreak(3).

Change-Id: I12821c1ef41100ee83a13fd79c14d9eb16b6adca
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
63694641ecf9f473d0a3b34b8377a94440990857 10-Dec-2012 Elliott Hughes <enh@google.com> Fix formatting of a doc comment for ZipEntry.setComment.

Change-Id: I577c960ea0f486d1b1d55a0d31ce2c71e3776426
ava/util/zip/ZipEntry.java
eb9689bf8aee71f16fbe22a2c90d25628dd431ec 10-Dec-2012 Elliott Hughes <enh@google.com> Protect broken code against native crashes.

It doesn't make any sense to access Matcher or BreakIterator concurrently from
multiple threads, but we shouldn't crash in native code.

Bug: http://code.google.com/p/android/issues/detail?id=41143
Change-Id: I5d0ed97be50ffb7c6cc281ac6293cf82f17e7b80
ava/util/regex/Matcher.java
ibcore/icu/NativeBreakIterator.java
f05aeedc00c8e7ab7650067ce1dc301547a3914b 10-Dec-2012 Elliott Hughes <enh@google.com> More java.util.zip documentation improvements.

Change-Id: I8ebc23b8a7a7affee0fd3756c3861cf5b6c07ee4
ava/util/zip/Deflater.java
ava/util/zip/ZipEntry.java
ava/util/zip/ZipError.java
ava/util/zip/ZipException.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
ava/util/zip/ZipOutputStream.java
13f30b9167639ad63da1707102db6320e8f76474 08-Dec-2012 Elliott Hughes <enh@google.com> Clean up ZipFile a little, fix a few bugs, and improve the documentation.

The main bug fixed is fixing support for .zip files larger than 2GiB (where
the central directory offset's top bit is set).

We were checking character counts rather than byte counts in several places
too, which could lead to corrupt zip files.

I've also added a comment to readCentralDirectory because I keep coming back
to this code, wanting to make it lazy, and never remember (until I've done
half the work) why that's not possible.

I've also clarified a lot of the documentation.

Bug: http://code.google.com/p/android/issues/detail?id=36187
Change-Id: Iaa8eadc501ead7c70528bd9063d5893a325dcea1
ava/util/zip/InflaterInputStream.java
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
ava/util/zip/ZipOutputStream.java
61e99b166906954cf2686381968a37a3ab32bde7 05-Dec-2012 Elliott Hughes <enh@google.com> Fix AbstractCollection.toArray.

ConcurrentHashMap.values().toArray() could throw if the map was being modified.
WeakHashMap had a workaround, but AbstractCollection is supposed to just do the
right thing.

Bug: http://code.google.com/p/android/issues/detail?id=36519
Bug: https://issues.apache.org/jira/browse/HARMONY-6681
Change-Id: I749fe615edbea6f8285bfe6804c972e8bdcf2530
ava/util/AbstractCollection.java
ava/util/WeakHashMap.java
cff1616012dc0d56c2da9af2b9b1183e76c7e044 04-Dec-2012 Elliott Hughes <enh@google.com> Add detail messages to all the easy IllegalArgumentException cases.

Noticed during my recent Matcher change.

Change-Id: I415d911b26d0ee548ca04d56bba7fc3d4e6b3f88
ava/io/BufferedReader.java
ava/io/StringReader.java
ava/io/StringWriter.java
ava/lang/System.java
ava/lang/Thread.java
ava/net/DatagramSocket.java
ava/net/HttpCookie.java
ava/net/Socket.java
ava/net/URISyntaxException.java
ava/nio/DatagramChannelImpl.java
ava/nio/channels/spi/AbstractSelectableChannel.java
ava/security/AlgorithmParameterGenerator.java
ava/security/KeyFactory.java
ava/security/KeyPairGenerator.java
ava/security/KeyStore.java
ava/security/MessageDigest.java
ava/security/SecureRandom.java
ava/security/Signature.java
ava/security/cert/CertPathValidator.java
ava/sql/Date.java
ava/sql/Time.java
ava/sql/Timestamp.java
ava/text/AttributedString.java
ava/text/ChoiceFormat.java
ava/text/Collator.java
ava/text/DateFormat.java
ava/text/NumberFormat.java
ava/text/SimpleDateFormat.java
ava/util/ArrayList.java
ava/util/Collections.java
ava/util/Date.java
ava/util/EnumMap.java
ava/util/EnumSet.java
ava/util/EventObject.java
ava/util/IdentityHashMap.java
ava/util/PriorityQueue.java
ava/util/Random.java
ava/util/SimpleTimeZone.java
ava/util/TimeZone.java
ava/util/Timer.java
ava/util/Vector.java
ava/util/WeakHashMap.java
ava/util/regex/Matcher.java
ava/util/zip/Deflater.java
ava/util/zip/DeflaterInputStream.java
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/InflaterOutputStream.java
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipOutputStream.java
ibcore/icu/NativeDecimalFormat.java
ibcore/net/http/HttpURLConnectionImpl.java
rg/apache/harmony/security/asn1/ObjectIdentifier.java
2c7adc8670dfc1c395d7d99bd95b9d14b129d0f9 04-Dec-2012 Elliott Hughes <enh@google.com> Synchronize calls to Matcher.closeImpl.

Bug: 7603088
Change-Id: I4ed42342438e4e74eecd2e4013be0c85e9b2ef29
ava/util/regex/Matcher.java
c2d0a1f1bd2c6414c29dd44fe240dcf1f45e59b9 04-Dec-2012 Elliott Hughes <enh@google.com> Add detail messages to all remaining NullPointerExceptions.

I've left java.util.concurrent alone, since that's upstream code.

Change-Id: I349960aaddb78e55d4c336b58b637009db69ff98
ava/nio/channels/spi/AbstractSelectableChannel.java
ava/util/ListResourceBundle.java
ava/util/Locale.java
492a4616bd20a181e65d6caefc5bf6ff6360ca7f 03-Dec-2012 Elliott Hughes <enh@google.com> Document that SimpleDateFormat L and c weren't available until Gingerbread.

Bug: http://code.google.com/p/android/issues/detail?id=40268
Change-Id: I07f8f4cbd97dfd5b56ed4a1e1338027eb472fa95
ava/text/SimpleDateFormat.java
161590f779371e5a8b39c0ebaba2bc04d7d288b0 28-Nov-2012 Elliott Hughes <enh@google.com> Note the icu4c 49 upgrade.

(Yes, their version numbering changed. For CLDR too.)

(cherry-pick of dcb358b1be404d56462165e52ee944df9de03839.)

Bug: 7625281
Change-Id: Icfbbcd5382b315e47c2d06555a1475fadd97f62d
ava/util/Locale.java
81341fd8822d545037fca9d9820a7814e6d64da7 26-Nov-2012 Elliott Hughes <enh@google.com> Fix InnerNodeImpl.insertBefore.

As the submitter said, an insertBefore with a null refChild should be taken as
a request to append.

Bug: http://code.google.com/p/android/issues/detail?id=24530
Change-Id: I26141e2d4dd7a7805209a455a7c16bf0f26e7acf
rg/apache/harmony/xml/dom/InnerNodeImpl.java
56fc18dce274c5d5ba56f7b50c5467320b7af807 26-Nov-2012 Elliott Hughes <enh@google.com> Further clarification of System.currentTimeMillis/Date/SimpleDateFormat.

Change-Id: I91c5bc888e5ae2d368e4c063cd5741e840a21dec
ava/lang/System.java
ava/text/SimpleDateFormat.java
ava/util/Date.java
a0d32add4376f31f35e2a50f59185f16f5cd8ccb 30-Aug-2012 Brian Carlstrom <bdc@google.com> DO NOT MERGE

Disable SSL compression

Bug: 7079965

Change-Id: I8e060a827613e212bbcced66507fbf124bb04543

modified: luni/src/main/java/libcore/net/http/HttpConnection.java
modified: luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
modified: luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
modified: luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
modified: luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
modified: luni/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp
modified: luni/src/test/java/org/apache/harmony/xnet/provider/jsse/NativeCryptoTest.java
ibcore/net/http/HttpConnection.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
bcf0a81a927992883f0cb49c1c945141d1261b8b 09-Nov-2012 Elliott Hughes <enh@google.com> am 44d48b2d: Merge "Improve the System.currentTimeMillis/Date/DateFormat/SimpleDateFormat documentation."

* commit '44d48b2df506de9077e91b3e4f3356e41d961323':
Improve the System.currentTimeMillis/Date/DateFormat/SimpleDateFormat documentation.
b98632738dfc72ba32ae0160eada03a97a303288 08-Nov-2012 Elliott Hughes <enh@google.com> Improve the System.currentTimeMillis/Date/DateFormat/SimpleDateFormat documentation.

15 years later, this stuff is still causing confusion.

Change-Id: Id68d43014b72de2cf620cf1798517106fd68d229
ava/lang/System.java
ava/text/DateFormat.java
ava/text/SimpleDateFormat.java
ava/util/Date.java
62343774e506f08d97a080486a14472c02d9af89 08-Nov-2012 Elliott Hughes <enh@google.com> am 8e501b90: Merge "Remove dead code."

* commit '8e501b90006e3d01c4641d5fc024c96448a2695c':
Remove dead code.
6f9a604de20786839e20a87e05203e54b0c0efa7 08-Nov-2012 Elliott Hughes <enh@google.com> Remove dead code.

Change-Id: I389bf967ed9a11de8ecb194bf06f69164ac4da4c
ava/lang/System.java
f2d36fd3243e703464b1be537e059e2c0728ad32 06-Nov-2012 Elliott Hughes <enh@google.com> am 10a09486: Merge "Add setenv(3) and unsetenv(3) to Libcore.os."

* commit '10a094863eaf4d822f6b76be28f86a4905ebae51':
Add setenv(3) and unsetenv(3) to Libcore.os.
895a613aa2aec6aa6d03b29755cf2fea584909ad 06-Nov-2012 Elliott Hughes <enh@google.com> Add setenv(3) and unsetenv(3) to Libcore.os.

Change-Id: Ic1c667cda3203afecb3eb9b4183ec6a4013988cc
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
028ad9ba399b09050866e6b369f6e72879b45b3a 05-Nov-2012 Elliott Hughes <enh@google.com> am df0d0295: Merge "Make System.loadLibrary use open(2) rather than stat(2)."

* commit 'df0d029524bc6f4aa6212e8d0e337b590731c7a4':
Make System.loadLibrary use open(2) rather than stat(2).
6d17baa25d349e2659eb16fe5eef3088d48e5e22 05-Nov-2012 Elliott Hughes <enh@google.com> Make System.loadLibrary use open(2) rather than stat(2).

This will let us remove read permission from directories containing .so files.

Bug: 6485312
Change-Id: I72daa265ce54747fc91cdb9d915a05a2464041bb
ava/lang/Runtime.java
ibcore/io/IoUtils.java
750dc634e56c58d1d04f6a138734ac2b772900b5 02-Nov-2012 Elliott Hughes <enh@google.com> am fbc035d7: Merge "Make Runtime.availableProcessors report configured rather than on-line processors."

* commit 'fbc035d73583ae9d5c54214989756ceec743b8d9':
Make Runtime.availableProcessors report configured rather than on-line processors.
6bc129571d5879c464f2bd4771265885df399008 02-Nov-2012 Elliott Hughes <enh@google.com> Make Runtime.availableProcessors report configured rather than on-line processors.

Also improve some of the Runtime documentation a little.

Change-Id: I49d28aceeb0da47a94378e1052a70704600d3417
ava/lang/Runtime.java
df99092f30a7bdc9f40f2fa0c3546a30d925edc0 01-Nov-2012 Brian Carlstrom <bdc@google.com> resolved conflicts for merge of eef7e935 to jb-mr1-dev-plus-aosp

Change-Id: I1af764dffabdfa63bc383b606d0c86451bdf64dd
eef7e9357c272a9154f007e8bee2a09eed66d101 01-Nov-2012 Brian Carlstrom <bdc@google.com> Test to verify BC Signature algorithms by OID

Bug: 7453821
Change-Id: I69408d0bb4063e34441ed1d7632fd1ccac39965b
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
990a41d3a24cdf47f62de67d791be36f042185af 30-Oct-2012 Ian Rogers <irogers@google.com> am 372334da: Merge "Make private static field final."

* commit '372334da225b4265897d193df1ea692e601fa213':
Make private static field final.
d0760064f9c4d0fdb04cb4cd348d415603700f11 30-Oct-2012 Ian Rogers <irogers@google.com> Make private static field final.

Change-Id: I3f2862e19b4a35c47e52be2158bfb45ffa30ae35
ava/util/Date.java
00ac85fcdd54ae0b4304a662bc22f321b46bd4f5 30-Oct-2012 Elliott Hughes <enh@google.com> am 93ee28de: Merge "Fix misuses of assert in OldClassTest and comment out other libcore asserts."

* commit '93ee28de077e32036a2cab2ba8e8b4e3f8abab5f':
Fix misuses of assert in OldClassTest and comment out other libcore asserts.
93ee28de077e32036a2cab2ba8e8b4e3f8abab5f 30-Oct-2012 Elliott Hughes <enh@google.com> Merge "Fix misuses of assert in OldClassTest and comment out other libcore asserts."
9fb84f4bee364d44b1d0d425109c98e964b23ae4 30-Oct-2012 Brian Carlstrom <bdc@google.com> am adcea0bf: Merge "Prefer PKIX algorithm name for TrustManagerFactory and KeyManagerFactory"

* commit 'adcea0bf53b5b932013d8290619f17715b33f139':
Prefer PKIX algorithm name for TrustManagerFactory and KeyManagerFactory
b5563f7923913abc0acfaa76332dce0943e0465d 30-Oct-2012 Brian Carlstrom <bdc@google.com> am 595ea24b: Merge "Restore some java.security package documentation"

* commit '595ea24b8669d38c8d9fe05319fd889654da9b21':
Restore some java.security package documentation
67a368573213811c0037cb1b972a0d5fdb3eaf48 30-Oct-2012 Elliott Hughes <enh@google.com> Fix misuses of assert in OldClassTest and comment out other libcore asserts.

Change-Id: Ie9e5b785b3e87c91df02ffd93f7973fd7c99af0e
ava/util/ArrayDeque.java
ava/util/Arrays.java
ava/util/TreeMap.java
ava/util/UUID.java
ava/util/Vector.java
c934a095e1f863f00bf6f7c0b37fbd05ebeaaff5 29-Oct-2012 Brian Carlstrom <bdc@google.com> Prefer PKIX algorithm name for TrustManagerFactory and KeyManagerFactory

Change-Id: I3da5bdf6739c6aee5ec0174e93cd6c06d6dfeeb3
ava/security/KeyStore.java
ava/security/cert/CertPathBuilder.java
ava/security/cert/CertPathValidator.java
ava/security/cert/CertStore.java
ava/security/security.properties
avax/net/ssl/HttpsURLConnection.java
avax/net/ssl/KeyManagerFactory.java
avax/net/ssl/TrustManagerFactory.java
rg/apache/harmony/xnet/provider/jsse/DefaultSSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/JSSEProvider.java
d972b758ae5a47834e666e47002f73b4a17b5da9 27-Oct-2012 Brian Carlstrom <bdc@google.com> Restore some java.security package documentation

Change-Id: I78267712c10e8561b78058a9df62067dcccb0e25
ava/security/package.html
de8ef23966e922de5176c49b80c7cc65d5ed6228 23-Oct-2012 Elliott Hughes <enh@google.com> am b6cf9117: Merge "Support zone.tab in libcore, and remove the file format version."

* commit 'b6cf91174c142ff218b15124a5ff46dbfbe920fc':
Support zone.tab in libcore, and remove the file format version.
8d5562828a5dda6ae0fbe5ba0355a95e650e3d2e 22-Oct-2012 Elliott Hughes <enh@google.com> Support zone.tab in libcore, and remove the file format version.

Bug: 7012465
Change-Id: I2ac580094928806abcf7c6f5f0e6ee950a954135
ibcore/util/ZoneInfoDB.java
d0649784a269aa03451c603d977188d4b932778b 22-Oct-2012 Elliott Hughes <enh@google.com> am bce53b55: Merge "Make libcore look in /data/misc for tzdata updates."

* commit 'bce53b5592f653264e7c76b6305fe216965cee23':
Make libcore look in /data/misc for tzdata updates.
4c0cbc2cf60df843387233801784ae43c2cd747c 20-Oct-2012 Elliott Hughes <enh@google.com> Make libcore look in /data/misc for tzdata updates.

Bug: 7012465
Change-Id: Ia452f9c4482d0a75073e6a174f38114525984f15
ibcore/util/ZoneInfoDB.java
f927ee64aa1e067d5665f464b5a0169081321b1c 19-Oct-2012 Elliott Hughes <enh@google.com> am f1c804db: Merge "Make it possible to share libcore.util.ZoneInfo with bionic."

* commit 'f1c804dbc0147617b63efbdb5e2d981e677bedca':
Make it possible to share libcore.util.ZoneInfo with bionic.
53d000ca7ea62d0e36c9ba7be8c54c4777cabae6 19-Oct-2012 Elliott Hughes <enh@google.com> Make it possible to share libcore.util.ZoneInfo with bionic.

The code that generates the single big file from the directory of
zoneinfo files needs to be able to get the raw offset for each zone,
so we can implement TimeZone.getAvailableIDs(int) cheaply.

Bug: 7012465
Change-Id: Icc8355c086dd8e62589c2930fb7f892feea5a217
ibcore/util/ZoneInfo.java
ibcore/util/ZoneInfoDB.java
d7b0268ad57b3cb494c0d2f6ea3cb004338619c3 18-Oct-2012 Brian Carlstrom <bdc@google.com> am b3503014: Merge "Make sure URL.toURILenient throws the proper exception on trailing garbage escape"

* commit 'b35030149c12026711cca308122544103aec35fe':
Make sure URL.toURILenient throws the proper exception on trailing garbage escape
bb1546d2c87c6f7e996a83b6f0efca17453d53db 18-Oct-2012 Brian Carlstrom <bdc@google.com> Make sure URL.toURILenient throws the proper exception on trailing garbage escape

Previously this would throw IndexOutOfBoundsException instead of the proper checked exception.

Bug: 7369778
Change-Id: I4247240b21a98688bd890c53f654f7a030d72717
ibcore/net/UriCodec.java
71e7cf503e86bc233377f3be56445dcad83704c2 18-Oct-2012 Elliott Hughes <enh@google.com> am 5088f4ce: Merge "Pull libcore\'s time zone data from the new single \'tzdata\' file."

* commit '5088f4ce1c4b733c272cea17e382a0161e1ba9a6':
Pull libcore's time zone data from the new single 'tzdata' file.
5088f4ce1c4b733c272cea17e382a0161e1ba9a6 18-Oct-2012 Elliott Hughes <enh@google.com> Merge "Pull libcore's time zone data from the new single 'tzdata' file."
6cbefca623f55004ba65f11577fc25f92f6297dc 17-Oct-2012 Elliott Hughes <enh@google.com> Pull libcore's time zone data from the new single 'tzdata' file.

Bug: 7012465
Change-Id: I5ce1a372755e31f8882fbfc2ea2b582fec1858b3
ibcore/util/ZoneInfoDB.java
3c473504c37c2f91053a1099f207ad8b7cc551f4 17-Oct-2012 Brian Carlstrom <bdc@google.com> resolved conflicts for merge of 019ddbbe to jb-mr1-dev-plus-aosp

Change-Id: I0fe3967132ae298c2abe9523884c0205851e732e
9726be51ed6f9695357bc8f11a547d9beaa79fce 16-Oct-2012 Brian Carlstrom <bdc@google.com> Fix Thread.interrupt and PipedInputStream/PipedReader issues found by InterruptedStreamTest

Bug: 6951157
Change-Id: I558f8eb5c435f01c98c080ac38cc7c165e7aee25
ava/io/PipedInputStream.java
ava/io/PipedReader.java
ava/lang/Thread.java
ibcore/io/IoUtils.java
fb31596585a76917591b83958e19649651d02666 16-Oct-2012 Kenny Root <kroot@google.com> am 0eacbe9c: Merge "Try to more robustly identify algorithm for JARs"

* commit '0eacbe9cb7a9d84f4ca0a05f68c18c373b00d5f2':
Try to more robustly identify algorithm for JARs
c323184c9221d119b8b06a1fff6731f5119a64c0 16-Oct-2012 Kenny Root <kroot@google.com> am 196687f6: Merge "Use OpenSSL to convert from OID to name"

* commit '196687f6ed88a0935813efec5ca49c86fd536bf2':
Use OpenSSL to convert from OID to name
0eacbe9cb7a9d84f4ca0a05f68c18c373b00d5f2 16-Oct-2012 Kenny Root <kroot@google.com> Merge "Try to more robustly identify algorithm for JARs"
196687f6ed88a0935813efec5ca49c86fd536bf2 16-Oct-2012 Kenny Root <kroot@google.com> Merge "Use OpenSSL to convert from OID to name"
0130cf9705455a63eca0a4651986bb0806a7f5bc 16-Oct-2012 Geremy Condra <gcondra@google.com> am f2df9e57: Merge "Adding minimum cryptographic strength check for cert chains."

* commit 'f2df9e575e6f0a20b1b27f0fca6a62e2b19729b1':
Adding minimum cryptographic strength check for cert chains.
f2df9e575e6f0a20b1b27f0fca6a62e2b19729b1 16-Oct-2012 Geremy Condra <gcondra@google.com> Merge "Adding minimum cryptographic strength check for cert chains."
200be7055e30cd0f67b79df768b71bca19c5c596 11-Oct-2012 Geremy Condra <gcondra@google.com> Adding minimum cryptographic strength check for cert chains.

Change-Id: Id8a3fc28a07c086182183090cd79372ac81582e6
rg/apache/harmony/xnet/provider/jsse/ChainStrengthAnalyzer.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
8a0cab6874217edc046ebf1836366b9bef935aea 15-Oct-2012 Kenny Root <kroot@google.com> Try to more robustly identify algorithm for JARs

Change-Id: I17f339efd030fff38e8c59f8d607625de2627d4e
rg/apache/harmony/security/pkcs7/SignerInfo.java
rg/apache/harmony/security/utils/JarUtils.java
ed23021e0292c42d6471b57cdee3af2e6ad04db7 16-Oct-2012 Elliott Hughes <enh@google.com> am 815d8932: Merge "More "charsetName" consistency."

* commit '815d8932cb41e62d1ee47d4975e9812e2ef72b9c':
More "charsetName" consistency.
be4a7d686edf15a7fbdd00b40cf78cb26d105d0e 16-Oct-2012 Elliott Hughes <enh@google.com> More "charsetName" consistency.

A follow-on to 9b9e9145bc55a47be42a9d3f7ecc9f6b533739b2, after URLDecoder
caused some confusion.

Change-Id: I727dc375593596272d06e177c5dd8002d3e7321c
ava/net/URLDecoder.java
ava/security/cert/CertPath.java
ava/security/cert/CertificateFactory.java
ava/security/cert/CertificateFactorySpi.java
ava/util/logging/Handler.java
ava/util/logging/StreamHandler.java
ibcore/icu/NativeConverter.java
rg/apache/harmony/xml/ExpatReader.java
5f01aefdc4bff1cfdf2833015d02b58cd8743918 16-Oct-2012 Kenny Root <kroot@google.com> am d3d501c3: Merge "SubjectPublicKeyInfo: use algorithm OID as fallback"

* commit 'd3d501c36e0ced8d7c0919b6aba0a64ab8a251e3':
SubjectPublicKeyInfo: use algorithm OID as fallback
4a8388aeb988c5ed88f1105f9fa66a5ebd2ffbe3 15-Oct-2012 Kenny Root <kroot@google.com> Use OpenSSL to convert from OID to name

OpenSSL has a large database of OID mappings, so fall back to it if the
built-in Harmony database doesn't find it.

Change-Id: I72daa0b4f697d406a0d3f8285ce20d4e9ec04d27
rg/apache/harmony/security/utils/AlgNameMapper.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
0251c5ab1c073ee09ba6673383846d2ccf58abf9 15-Oct-2012 Kenny Root <kroot@google.com> SubjectPublicKeyInfo: use algorithm OID as fallback

If the algorithm has a name, but there are no KeyFactory available for
that particular algorithm name, try to use the algorithm OID to find a
KeyFactory before falling back to X509PublicKey.

Change-Id: I2b294f2db3388372479c964f53fdff7fb62f3d8f
rg/apache/harmony/security/x509/AlgorithmIdentifier.java
rg/apache/harmony/security/x509/SubjectPublicKeyInfo.java
b762206996492843be768a7ae061bbc85b5491da 15-Oct-2012 Kenny Root <kroot@google.com> am 70798f65: Merge "OpenSSLCipher: add ARC4 support"

* commit '70798f652c21e9bec770d0b965130311a84d5959':
OpenSSLCipher: add ARC4 support
edefa57a822c27f3e9def050fd50e375c5908551 02-Oct-2012 Kenny Root <kroot@google.com> OpenSSLCipher: add ARC4 support

Change-Id: Iccdd76260af1afab0855816b3ccdd34fbc52295b
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipher.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
b495e792e2de10136d797bc5e5047112b6326f11 13-Oct-2012 Brian Carlstrom <bdc@google.com> am 75404c04: Merge "Fix a typo where BufferedReader refers to chars as bytes."

* commit '75404c04e0bab09999a393cc6521d08d3996c17e':
Fix a typo where BufferedReader refers to chars as bytes.
75404c04e0bab09999a393cc6521d08d3996c17e 13-Oct-2012 Brian Carlstrom <bdc@google.com> Merge "Fix a typo where BufferedReader refers to chars as bytes."
fd1bbd5cb70830aaf6639dafc240c4d17181ef75 13-Oct-2012 Jesse Wilson <jwilson@squareup.com> Fix a typo where BufferedReader refers to chars as bytes.

Change-Id: I4be1fe88f97c10bc5142df05e2ffc9a3b4094d81
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
9dbe25c174d4f7e5099db1ea278513971e058ff8 12-Oct-2012 Kenny Root <kroot@google.com> am 0bf8e7a3: Merge "Add support for ECDSA signatures on jar files"

* commit '0bf8e7a3145bbc6a32f5b88364a923af40434b61':
Add support for ECDSA signatures on jar files
52c906b82c75e811284a1788e5ca0b4330a55a36 10-Oct-2012 Kenny Root <kroot@google.com> Add support for ECDSA signatures on jar files

Change-Id: If928f2244b3a0809255d6619c25268beb84f76d3
ava/util/jar/JarFile.java
ava/util/jar/JarVerifier.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
9679c42bd37a2539b7306891cba53731c7a8b91b 12-Oct-2012 Kenny Root <kroot@google.com> am d5d84f6c: Merge "NativeCrypto: add EC key pairs"

* commit 'd5d84f6c657b9d130b4d34c77f151f425ae70ff4':
NativeCrypto: add EC key pairs
9d2fb535e5d43ad34af09195d490da18a7694a48 11-Oct-2012 Kenny Root <kroot@google.com> NativeCrypto: add EC key pairs

Change-Id: I8240df5ff12e38dd935258def099aed4663955ea
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECGroupContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECKeyPairGenerator.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPointContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLECPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
46d6243e9e39a2b68b985bfd534cc891e52df274 09-Oct-2012 Brian Carlstrom <bdc@google.com> Change OpenSSLCipherRSA.{engineGetBlockSize,engineGetOutputSize} to return result based on key size

Includes cherry-pick of 847f22adbd0e829b84491d7202dcbed5bf67a98c

Bug: 7192453
Change-Id: Ib5fa1e313d942d2c1034e8e7831af285ad24d71d
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipherRSA.java
a1efc89510647c69fc73a903e8f1af5018e10f56 11-Oct-2012 Elliott Hughes <enh@google.com> am 4e8aff78: Merge "Remove various content-free package.html files."

* commit '4e8aff7851667954f8c964829cd20c1e86288814':
Remove various content-free package.html files.
3bee60c76bc2801be1cc412829480c2b40ebcd41 11-Oct-2012 Elliott Hughes <enh@google.com> am bf983d54: Merge "Move the useful parts of the java.sql package.html into the relevant classes."

* commit 'bf983d5487ebff679a00b60d82ed548437955bad':
Move the useful parts of the java.sql package.html into the relevant classes.
b24a6fea3247c5090445f672296d0e92151ee31f 11-Oct-2012 Elliott Hughes <enh@google.com> am a7a609b2: Merge "Remove XML package.html files."

* commit 'a7a609b2fb1f34b2ec46ff7944196639dc3918c8':
Remove XML package.html files.
4e8aff7851667954f8c964829cd20c1e86288814 11-Oct-2012 Elliott Hughes <enh@google.com> Merge "Remove various content-free package.html files."
bf983d5487ebff679a00b60d82ed548437955bad 11-Oct-2012 Elliott Hughes <enh@google.com> Merge "Move the useful parts of the java.sql package.html into the relevant classes."
bfd37b22b094c1dcab9d9253daa350f16f0b1e32 11-Oct-2012 Elliott Hughes <enh@google.com> Move the useful parts of the java.sql package.html into the relevant classes.

Change-Id: I1b7183af72ed45fcba2d9c668ae99c2854c21dfb
ava/sql/Driver.java
ava/sql/DriverManager.java
ava/sql/package.html
0d6942765f21b3ed1fcf5ae6ad01c4c5105fb73e 11-Oct-2012 Brian Carlstrom <bdc@google.com> am bf0709af: Merge "Fix typos from "beed" to "been""

* commit 'bf0709af8d77df0975d51350e29598bac69f1ac3':
Fix typos from "beed" to "been"
aca7f86d4e289d960ebc2364e0f6350cfbb51890 11-Oct-2012 Elliott Hughes <enh@google.com> am 0dc144dd: Merge "Move java.lang.ref documentation into Reference."

* commit '0dc144dd6bb715bf6454e89a4ad7b43250b05e77':
Move java.lang.ref documentation into Reference.
02f8123a41dfc61bb77b58b84cc0163bc4e29631 11-Oct-2012 Elliott Hughes <enh@google.com> Remove various content-free package.html files.

Change-Id: I0d8097751b8a61d202b87ed5067d38ff0802c89a
avax/net/package.html
3306cbed1914e5dc1e87a0f75689f18c75312e7d 11-Oct-2012 Elliott Hughes <enh@google.com> Remove XML package.html files.

Bug: http://code.google.com/p/android/issues/detail?id=7395
Change-Id: Id769856bdbdca864ccc2818e3609fe5ca00da2b2
avax/xml/datatype/package.html
avax/xml/namespace/package.html
avax/xml/package.html
avax/xml/parsers/package.html
avax/xml/transform/dom/package.html
avax/xml/transform/package.html
avax/xml/transform/sax/package.html
avax/xml/transform/stream/package.html
avax/xml/validation/package.html
avax/xml/xpath/package.html
rg/w3c/dom/package.html
rg/xml/sax/ext/package.html
rg/xml/sax/helpers/package.html
rg/xml/sax/package.html
bf0709af8d77df0975d51350e29598bac69f1ac3 11-Oct-2012 Brian Carlstrom <bdc@google.com> Merge "Fix typos from "beed" to "been""
8f09b07e6c83cd76d0d6c6faa697e0a3e77361ba 11-Oct-2012 Elliott Hughes <enh@google.com> Move java.lang.ref documentation into Reference.

It's more likely to be read there than in package.html.

Change-Id: I6ce327cab66660fcf3fa37cacd3e85c95d433a74
ava/lang/ref/Reference.java
ava/lang/ref/package.html
5692d40be0e19ef1d0cc988a579576496adf5237 11-Oct-2012 Brian Carlstrom <bdc@google.com> Fix typos from "beed" to "been"

Bug: http://code.google.com/p/android/issues/detail?id=38366
Change-Id: I44c647843e66a57bcbeabad41ec3142faaa1848e
avax/net/ssl/DistinguishedNameParser.java
avax/net/ssl/SSLPeerUnverifiedException.java
rg/apache/harmony/security/x509/DNParser.java
72e44404c32a98e7675a6e7cfbf856adb499a434 09-Oct-2012 Brian Carlstrom <bdc@google.com> Change OpenSSLCipherRSA.{engineGetBlockSize,engineGetOutputSize} to return result based on key size

Includes cherry-pick of 847f22adbd0e829b84491d7202dcbed5bf67a98c

Bug: 7192453
Change-Id: Ib5fa1e313d942d2c1034e8e7831af285ad24d71d
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipherRSA.java
33cd780ed7ef61d32f4f768d4d236e37fe101188 11-Oct-2012 Elliott Hughes <enh@google.com> am 099ded13: Merge "Explain that System.arraycopy is like memmove(3), not memcpy(3)."

* commit '099ded13eb5a74afd69658d2b3cb7acbc91546ec':
Explain that System.arraycopy is like memmove(3), not memcpy(3).
0883232ea56c06c9c530ec924fdaf21f19f3f14c 11-Oct-2012 Elliott Hughes <enh@google.com> Explain that System.arraycopy is like memmove(3), not memcpy(3).

Change-Id: I1e581cfbddf861fdcd918833dcd85306b96ef1ac
ava/lang/System.java
a56d9c6247415d7cd99d8a3edfd3f97dfbab8a42 10-Oct-2012 Kenny Root <kroot@google.com> am 6508bcc2: Merge "Add stronger digest support to JarVerifier"

* commit '6508bcc268f74b04dfcd04b1cafb5f293ad0f690':
Add stronger digest support to JarVerifier
8b1ab347f6eaefe76d2c1b932a6f77563877236b 10-Oct-2012 Kenny Root <kroot@google.com> am 99d0590f: Merge "Remove provider specified from JarVerifier"

* commit '99d0590f2bb5a79f17e677f65c2ca932546c89e9':
Remove provider specified from JarVerifier
b3bc3cd743d06f5fb59a1c950a7634b47f3cafc4 10-Oct-2012 Kenny Root <kroot@google.com> resolved conflicts for merge of 30d217ad to jb-mr1-dev-plus-aosp

Change-Id: Iedafef8005b3d26a16f8b279408f113f3afe7a8a
6508bcc268f74b04dfcd04b1cafb5f293ad0f690 10-Oct-2012 Kenny Root <kroot@google.com> Merge "Add stronger digest support to JarVerifier"
99d0590f2bb5a79f17e677f65c2ca932546c89e9 10-Oct-2012 Kenny Root <kroot@google.com> Merge "Remove provider specified from JarVerifier"
30d217ad5350b92a74a632b20b5bbb6f40abb468 10-Oct-2012 Kenny Root <kroot@google.com> Merge "Add OIDs for algorithms"
bd8ab2e83c356478106d902eda9477b19fb83ce6 10-Oct-2012 Kenny Root <kroot@google.com> Remove provider specified from JarVerifier

Change-Id: I137455e38c20144165c1981076dcbaa26f5bb4a2
rg/apache/harmony/security/utils/JarUtils.java
bff099b1b39940301bc7dd4be52dbe303c5e6fdf 10-Oct-2012 Kenny Root <kroot@google.com> Add stronger digest support to JarVerifier

Adds support for SHA-256, SHA-384, and SHA-512.

Bug: http://code.google.com/p/android/issues/detail?id=38321
Change-Id: I9bf3f9cb2fa53b9f980e6c1cffcba81aa289a762
ava/util/jar/JarVerifier.java
3d1643390a0d624a27b8eccc589b337949657c76 10-Oct-2012 Kenny Root <kroot@google.com> Add OIDs for algorithms

This allows things from a PKCS#7 container (or any other container that
specifies algorithms by OID) to get an instance via OID instead of the
common name.

Bug: http://code.google.com/p/android/issues/detail?id=38321
Change-Id: Ie766751a3f7894a558f7e40e7d520800bf7a8a08
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
32c042582b6fc5da2b86db1ca8920c5420edd2be 09-Oct-2012 Elliott Hughes <enh@google.com> am 23719174: Merge "Rewrite NativeBreakIterator to use refreshInputText."

* commit '2371917431e4571c6e6c2ca719f2c00682a566d4':
Rewrite NativeBreakIterator to use refreshInputText.
015843683630bd8e8f060c052ecd2e5a804a8396 08-Oct-2012 Elliott Hughes <enh@google.com> Rewrite NativeBreakIterator to use refreshInputText.

Requires icu4c >= 4.9, or a backport of the fix to icu4c bug
http://bugs.icu-project.org/trac/ticket/8490.

(cherry-pick of db1a2e3641d679faf34ce6532c487ab0236550a1.)

Bug: 7288264
Bug: 7307154
Change-Id: Ic8e5be2d345e2b2aa2873ab9bf35b1273199d227
ava/text/BreakIterator.java
ava/text/RuleBasedBreakIterator.java
ibcore/icu/NativeBreakIterator.java
a8e0ac07166ba25fa50e83773cd18ac9f36bf18e 05-Oct-2012 Kenny Root <kroot@google.com> am f2c8382b: am 5a1225cc: Merge "NativeCrypto: add assertions for no OpenSSL errors"

* commit 'f2c8382b0aa0fca4b79601cb21a9136b862996c2':
NativeCrypto: add assertions for no OpenSSL errors
f6c5119f0a841aa9cd4dbbd1d964dad15c0ceb8b 05-Oct-2012 Brian Carlstrom <bdc@google.com> am e51202d9: Merge "Ensure we give "tl" the display name "Filipino"." into jb-mr1-dev

* commit 'e51202d94f55e6659dd39a7976ded526297276ee':
Ensure we give "tl" the display name "Filipino".
e51202d94f55e6659dd39a7976ded526297276ee 05-Oct-2012 Brian Carlstrom <bdc@google.com> Merge "Ensure we give "tl" the display name "Filipino"." into jb-mr1-dev
5a1225cc1b870ffab8be63f2f4a5baa2f3e26126 05-Oct-2012 Kenny Root <kroot@google.com> Merge "NativeCrypto: add assertions for no OpenSSL errors"
008e8a74088c7508b49d8ea2323deef40c5076a7 05-Oct-2012 Kenny Root <kroot@google.com> NativeCrypto: add assertions for no OpenSSL errors

Some calls in NativeCrypto appear to be not clearing error states. Add
an assertion at the end of each test to make sure this doesn't happen.

Change-Id: I9030891a8dc9e7715e65071fe949a11d7a560e56
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
35b0b4c66d192ee6a060ef58cf5d0cd0e442bd38 05-Oct-2012 Elliott Hughes <enh@google.com> am 2bc9eec8: am e80885fe: Merge "Slim down ZoneInfo.toString."

* commit '2bc9eec85951cf503ba18166ce56bf8a84368a18':
Slim down ZoneInfo.toString.
e80885fe85f4b7dbd8a3c6cad3a22d5868882cc5 05-Oct-2012 Elliott Hughes <enh@google.com> Merge "Slim down ZoneInfo.toString."
de3df0418aff29b06ea022b200fbcc687de63a7c 05-Oct-2012 Elliott Hughes <enh@google.com> Slim down ZoneInfo.toString.

Dalvik Explorer can now do a better job of helping examine transition data,
and regular developers don't need to see it. For America/Los_Angeles, for
example, toString used to output 186 lines. Now it just returns:

libcore.util.ZoneInfo[id="America/Los_Angeles",mRawOffset=-28800000,mEarliestRawOffset=-28800000,mUseDst=true,mDstSavings=3600000,transitions=185]

Also fix an incorrect comment from the TimeZone documentation.

Change-Id: I5748845a7b4f911e99a0e1c2e1a0786742288518
ava/util/TimeZone.java
ibcore/util/ZoneInfo.java
a7789931a001d62e02dfb8238c1664cc1103609d 05-Oct-2012 Kenny Root <kroot@google.com> am 353e8448: am 3f83b9c8: Merge "OpenSSLCipher: account for padding on doFinal"

* commit '353e84483aa2be779d3938d76890e8b218358d89':
OpenSSLCipher: account for padding on doFinal
2d77ba4ab779bfb5dcd1ee7fe063850d51a92ca3 05-Oct-2012 Kenny Root <kroot@google.com> am 9e1cd813: am 26d9dc15: Merge "Do not use OpenSSLCipherContext in tests"

* commit '9e1cd813f618c738007dc7ea3eaf15ee5863a4cc':
Do not use OpenSSLCipherContext in tests
3f83b9c80bda2de1927efaca193000ae30f22f01 05-Oct-2012 Kenny Root <kroot@google.com> Merge "OpenSSLCipher: account for padding on doFinal"
7ca2e3509b2b8578de48ac5e226d1b675a66c69f 05-Oct-2012 Kenny Root <kroot@google.com> Do not use OpenSSLCipherContext in tests

Change-Id: I422954e7e9a9d1021d4281a254cdd732f37ca2bf
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipherContext.java
5b5904640b44fe2fd760b5d427edeffe20f55630 05-Oct-2012 Kenny Root <kroot@google.com> OpenSSLCipher: account for padding on doFinal

Decrypting also needs to check padding on the last block, so special
case encrypting in getOutputSize

Change-Id: I0bfaf6f40f5d618e4dd1853668ec5400058e6b67
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipher.java
0804bbcc7de405ce92436cf82d72194666017b43 05-Oct-2012 Kenny Root <kroot@google.com> am 206730de: am dfa280ba: Merge "OpenSSLMac: add license header"

* commit '206730de97cf8f3ebbe8998a86a3f8405c34f2a4':
OpenSSLMac: add license header
dfa280babaf23ff2d31f7305a98cdbd08db22a39 05-Oct-2012 Kenny Root <kroot@google.com> Merge "OpenSSLMac: add license header"
b11e44a402eb0f9c5da1f7482fc1eabdd9adff47 20-Sep-2012 Jesse Wilson <jwilson@squareup.com> Fix a bug in tunnel construction and 'Connection: close' headers.

Based on https://github.com/square/okhttp/pull/30
(git fetch git://github.com/square/okhttp.git && git cherry-pick -x b8c51dc5bdc89d5487cbc110d6fe40389de16480)

Bug: http://code.google.com/p/android/issues/detail?id=37221
Bug: 7291446

(cherry picked from commit 4bedacd569fed2db56c518ed239412b3fe32245e)

Change-Id: I68c55e9259db91dbccca30824c00726094570304
ibcore/net/http/HttpEngine.java
50e50d57783060196a1f8e367616f2109c9edb4e 05-Oct-2012 Elliott Hughes <enh@google.com> Ensure we give "tl" the display name "Filipino".

This isn't right for all locales, but it's right for "tl" in "tl" itself,
which is how we render language names in Settings.

(Yes, I know that "tl" is for "Tagalog" and "fil" is for "Filipino", but
Google policy is to use the latter name. If our resource system weren't
limited to two-letter language codes, we'd be using the modern three-letter
"fil" instead of the obsolete "tl", but we can't fix that right now. Bukas.)

Bug: 7291355
Change-Id: I7d9021dc55d9f1d3f8a75b10c890a2d5f91982d6
ava/util/Locale.java
ba972096ed669371c24994090501768695f54f8f 05-Oct-2012 Brian Carlstrom <bdc@google.com> am 2429c2ae: am 3c636203: Merge "Fix a bug in tunnel construction and \'Connection: close\' headers."

* commit '2429c2ae6f4c38d589b8dd2a7419fbe02749c628':
Fix a bug in tunnel construction and 'Connection: close' headers.
3c636203845b858c6fa7c7db83f922b0f008f35a 05-Oct-2012 Brian Carlstrom <bdc@google.com> Merge "Fix a bug in tunnel construction and 'Connection: close' headers."
7842ba5ddb88f17c180bba8bfc32f2ef7270b382 05-Oct-2012 Kenny Root <kroot@google.com> am 080cda4a: am 7ae5f93f: Merge "OpenSSLMac: new OpenSSL HMAC connector"

* commit '080cda4ad77052269b3ac9a7db48cec05c49f3b4':
OpenSSLMac: new OpenSSL HMAC connector
725daeb9049fcbe761314e6263c14608ae7bb087 05-Oct-2012 Kenny Root <kroot@google.com> OpenSSLMac: add license header

Change-Id: Id205d75d0c82ee33698758f1d6fbec850971322b
rg/apache/harmony/xnet/provider/jsse/OpenSSLMac.java
7ae5f93f03f60b349f611122c4944634cfba4f39 05-Oct-2012 Kenny Root <kroot@google.com> Merge "OpenSSLMac: new OpenSSL HMAC connector"
a9a21fc20ac86e723c141bc145f582a2ab83268a 04-Oct-2012 Kenny Root <kroot@google.com> OpenSSLMac: new OpenSSL HMAC connector

Change-Id: I6a6a9cbdcdc490a0bc1c313bbaf045a4fd99555e
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDigestContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMac.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
4bedacd569fed2db56c518ed239412b3fe32245e 20-Sep-2012 Jesse Wilson <jwilson@squareup.com> Fix a bug in tunnel construction and 'Connection: close' headers.

Based on https://github.com/square/okhttp/pull/30
(git fetch git://github.com/square/okhttp.git && git cherry-pick -x b8c51dc5bdc89d5487cbc110d6fe40389de16480)

Bug: http://code.google.com/p/android/issues/detail?id=37221
Change-Id: I5bed33d9ab16002aa38c2f729fa14a2022485469
ibcore/net/http/HttpEngine.java
130e5d6b0281470f03abf810eb38aaa5aa1ca746 05-Oct-2012 Kenny Root <kroot@google.com> am a0592d4e: am d0670a67: Merge "OpenSSLCipher: use OpenSSL buf_len data"

* commit 'a0592d4ed7c71d5c1269d4e71611f10627fff8e7':
OpenSSLCipher: use OpenSSL buf_len data
81508e23428cffc070132f461c1166077910e836 05-Oct-2012 Kenny Root <kroot@google.com> OpenSSLCipher: use OpenSSL buf_len data

This allows us to exactly match other implementation outputs for the
same input values. What we were doing before was technically to the
API's documented behavior, but broke some other things.

Change-Id: I7e95dab4a7be8d737e862f6b6ddb04f6bbcd0dbe
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipher.java
5f727a9f94689b1003a80b6e464c9eb6971475ec 04-Oct-2012 Elliott Hughes <enh@google.com> am 26b29f3d: am 9a2a441a: Merge "Add ICU.getBestDateTimePattern."

* commit '26b29f3dc9aaadd0647c28a61156badfd6d96042':
Add ICU.getBestDateTimePattern.
f3cf8f7daed90edec16c9c1582d60fc21723eeb6 04-Oct-2012 Kenny Root <kroot@google.com> am a8969127: am 77be92fe: Merge "OpenSSLCipher: don\'t explode during null decrypt"

* commit 'a8969127cda9984754f758e1e3f839a83c5719f6':
OpenSSLCipher: don't explode during null decrypt
d57f3547302678e7f61016b121530105e4fc0819 04-Oct-2012 Kenny Root <kroot@google.com> am 46b18865: am 7efb2a19: Merge "OpenSSLCipher: only return block size multiples"

* commit '46b18865ebf78a72f5bf9faf3b33485ea3dfd6c9':
OpenSSLCipher: only return block size multiples
9a2a441ae372167dc122defbdde062076802b490 04-Oct-2012 Elliott Hughes <enh@google.com> Merge "Add ICU.getBestDateTimePattern."
77be92fe27e1cc9204b0bac3b9a9a324fd41eb57 04-Oct-2012 Kenny Root <kroot@google.com> Merge "OpenSSLCipher: don't explode during null decrypt"
e0a42275cfb7edeb10118f2ab6005bb3095f38b5 04-Oct-2012 Kenny Root <kroot@google.com> OpenSSLCipher: only return block size multiples

There is a faulty test that called .getOutputSize(inputLen) and then
used the output of that to provide inputLen for the .doFinal(...) call.
Unfortunately, this is the only cipher that failed since we're not
returning exact multiples of block size for .getOutputSize(...) calls.

Instead we'll just return exact block size multiples so we don't run
afoul of any other broken code.

Change-Id: I1ca860d6df300ee67df90e575fc476d8291ec9c1
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipher.java
fac659c013ec9c2783f60afce39e83eb107f117d 04-Oct-2012 Kenny Root <kroot@google.com> OpenSSLCipher: don't explode during null decrypt

Other Cipher implementations return "null" when calling "doFinal()"
during decrypt mode without having ever called .update(...)
Change OpenSSLCipher to do the same.

Change-Id: I76e22702a446912df125af0ff518fb123d62f5a3
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipher.java
cb1b9026b8aa993785c4d54f686905522b7959b9 04-Oct-2012 Elliott Hughes <enh@google.com> Add ICU.getBestDateTimePattern.

Bug: 7204705
Change-Id: I0c65745178182f992d1d0ba0f0d56768194e2084
ibcore/icu/ICU.java
d5db85f89e11e1ad4f78686b86d27ad26cb1c938 04-Oct-2012 Brian Carlstrom <bdc@google.com> am d26da2f6: am 9ac72760: Merge "OpenSSLCipher: remove buffer for partial blocks"

* commit 'd26da2f66c9139280a7fbd434980b3bd8349b612':
OpenSSLCipher: remove buffer for partial blocks
b2e6be1cc1d375ca2fc28ee1fdfc10c0adc2554d 29-Sep-2012 Elliott Hughes <enh@google.com> Rewrite NIO Pipe to use socketpair(2).

Our Pipe originally used socket(2) to create AF_INET/AF_INET6
sockets. This was clearly a bad idea.

I rewrote it to use socketpair(2) and AF_UNIX, but this was
before the big "expose POSIX" rewrite, so it required a bunch
of hacks in the native code, so I went with pipe(2) instead.

The trouble with pipe(2) is that we end up using FileChannel
to implement the Pipe.SinkChannel and Pipe.SourceChannel, but
the kernel won't wake a read(2) on a pipe if another thread
calls close(2) on it, so we started failing interrupt tests.

This (final?) rewrite is hopefully the best of all worlds:
we don't have any INTERNET permission needs, the code is as
simple as the pipe(2) code, and interruption works.

Bug: 7084342
Bug: 2735373
Bug: http://code.google.com/p/android/issues/detail?id=9431

(cherry picked from commit 3218082325b6b8713a8ac15731482e3da86a7df9)

Change-Id: Ib92cdf8c818f6bba1f00e191f1b624ce9e693754
ava/nio/PipeImpl.java
ava/nio/SelectorProviderImpl.java
ava/nio/SocketChannelImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
5189c980ebdc842e0e5ca7d6794b4880aa0b6cd5 04-Oct-2012 Kenny Root <kroot@google.com> OpenSSLCipher: remove buffer for partial blocks

Some block ciphers buffer the first block used. We weren't accounting
for this so we started failing with DES3. This led to another issue that
OpenSSL can sometimes keep things in its internal buffer. Instead of
having multiple levels of buffering, just rely on OpenSSL to do the
buffering.

Change-Id: I40a6c7e92e70d3c9ae530f35e8a4234f62e8d225
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipher.java
5db76d31870b0ef3ced3b0f01584118b4b9a3e3d 03-Oct-2012 Kenny Root <kroot@google.com> am ed07842e: am db3690a2: Merge "Fix some failing unit tests"

* commit 'ed07842e67e28e57c0ef596e2e1e4772d54926da':
Fix some failing unit tests
db3690a2d37331bd48b67ba177f7fc1bb33c9276 03-Oct-2012 Kenny Root <kroot@google.com> Merge "Fix some failing unit tests"
a56d856815c0974298fbdd9210b8f5a890756add 03-Oct-2012 Kenny Root <kroot@google.com> am bec17d88: am dac74262: Merge "OpenSSLCipher: 3DES cipher name depends on key size"

* commit 'bec17d88296d0729e8f5047e91e156d2fbce3b08':
OpenSSLCipher: 3DES cipher name depends on key size
dac742628847c1abd746de773a3ccd37a406469d 03-Oct-2012 Kenny Root <kroot@google.com> Merge "OpenSSLCipher: 3DES cipher name depends on key size"
1fe411ff4e4aa4f24158effb6dbfd786bb30048a 03-Oct-2012 Kenny Root <kroot@google.com> Fix some failing unit tests

evpCipher can be null to handle re-initialization of CIPHER_CTX
instances.

Make the constructor of OpenSSLCipherContext public so it can be used in
testing.

Fix all of the things hidden by JNI_DEBUG that were not correct.

Throw a BadPaddingException when a decrypt fails. This particular error
is returned by OpenSSL in evp_enc.c from EVP_DecryptFinal_ex when the
padding check fails.

Change-Id: I77cad024db52986fe726443cd9b3ff52430a30dd
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipherContext.java
46a749879a6d52408e51938b9e63683b238d0bee 03-Oct-2012 Kenny Root <kroot@google.com> OpenSSLCipher: 3DES cipher name depends on key size

OpenSSL doesn't infer from the key size whether to use two-key or
three-key 3DES, so explicitly call it out.

Change-Id: Ibd93088844e7585e72a7c7857dd2af8a150b3780
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipher.java
b9fac1a0d7638d692d03416e5beab40cb8a1d643 03-Oct-2012 Brian Carlstrom <bdc@google.com> am 55e75879: am a4c696b7: Merge "Make ASN1 time locale safe."

* commit '55e75879622098428e3a7be4efd6636261d4fbe8':
Make ASN1 time locale safe.
a4c696b77b990cbf12e1e7eed630767317c19132 03-Oct-2012 Brian Carlstrom <bdc@google.com> Merge "Make ASN1 time locale safe."
c3e475e288f0027502b16f3cfea0ce5cc8d4bdfd 03-Oct-2012 Johan Redestig <johan.redestig@sonymobile.com> Make ASN1 time locale safe.

The ASN1 classes were using SimpleDateFormat with the
default locale which caused the to produce time strings
that did not follow the spec in some locales.

Change-Id: I74979e0b59db075c420b8281497e491b03621cca
rg/apache/harmony/security/asn1/ASN1GeneralizedTime.java
rg/apache/harmony/security/asn1/ASN1UTCTime.java
c2f3e11588854db37f609f60cea8ef946211a02f 03-Oct-2012 Kenny Root <kroot@google.com> am f8dac9e9: am d85dfd8d: Merge changes I81f1bec8,I4aa6e3a2

* commit 'f8dac9e9410705895e64187fd8ad75431e147957':
OpenSSLCipher: Add DESede support
Add Cipher support for AES through OpenSSL
9961a1e1fc3cf3fa8ceab5917eb49cedc996a2f6 01-Oct-2012 Kenny Root <kroot@google.com> OpenSSLCipher: Add DESede support

Change-Id: I81f1bec8e3562c3ed90b35a60829ca0dfc4d8341
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipher.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
43e28aa028d6e06ea74237bef2758d0108a2d174 02-Oct-2012 Kenny Root <kroot@google.com> am 56d378a8: am a1848749: Merge "Update docs on SecureRandom about determinism"

* commit '56d378a82fa1565517d2a46ee0d918df557a3662':
Update docs on SecureRandom about determinism
13cf08b2f06e1f5f0278c449072898f5e147db49 24-Sep-2012 Kenny Root <kroot@google.com> Add Cipher support for AES through OpenSSL

Timings using encrypt with 256-bit key in CTR mode and PKCS5Padding:

implementation inputSize us linear runtime
OpenSSL 16 11.4 =
OpenSSL 32 12.1 =
OpenSSL 64 13.2 =
OpenSSL 128 15.1 =
OpenSSL 1024 44.0 =
OpenSSL 8192 275.0 ===
BouncyCastle 16 11.5 =
BouncyCastle 32 15.9 =
BouncyCastle 64 24.6 =
BouncyCastle 128 41.5 =
BouncyCastle 1024 277.2 ===
BouncyCastle 8192 2196.9 ==============================

Change-Id: I4aa6e3a2ca2b368fab2c602733b4f97e740d04fd
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipher.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipherContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
a1848749e8a2514ac8d16709b05bd39443980fc2 02-Oct-2012 Kenny Root <kroot@google.com> Merge "Update docs on SecureRandom about determinism"
1c27d48ddfaf595d06899c020d2ad037b40c27d2 24-Aug-2012 Kenny Root <kroot@google.com> Update docs on SecureRandom about determinism

The docs for SecureRandom mentioned very specific operational semantics
of the behavior of one provider. This makes it more general while
maintaining the cautioning tone givent to developers about the setSeed
semantics.

Change-Id: I234478dfe05a20357f16a2ae7eb9535889101832
ava/security/SecureRandom.java
9d5e6833b58652f0061a09852dc8802c4c9ed67b 02-Oct-2012 Elliott Hughes <enh@google.com> am 74b3b18c: am 7ca6ef25: Merge "Make Timestamp.valueOf locale safe"

* commit '74b3b18c2723991a2d237bf038486a4d52d9bcea':
Make Timestamp.valueOf locale safe
7ca6ef25d8dff972e6c40523be464dbbf338013a 02-Oct-2012 Elliott Hughes <enh@google.com> Merge "Make Timestamp.valueOf locale safe"
f58ca9d9ff8540a146a0031d5557881f8b66f348 02-Oct-2012 Johan Redestig <johan.redestig@sonymobile.com> Make Timestamp.valueOf locale safe

Timestamp.valueOf was producing results that varied
depending on the current default locale.

Change-Id: I464be9c1553dfc4886be7bfbdbf0ac4eb50929b3
ava/sql/Timestamp.java
025809f0a06ac8218e7c6b519936855f4d2a9686 01-Oct-2012 Elliott Hughes <enh@google.com> am 1fe7285c: am 4b606b12: Merge "Posix_umask: throw IllegalArgumentException on malformed mask"

* commit '1fe7285cdbe0625119bf3f2452c5811ef82039c5':
Posix_umask: throw IllegalArgumentException on malformed mask
c79d3ef4dcd25f0e264bf957861e2632da93e62d 27-Sep-2012 Nick Kralevich <nnk@google.com> Posix_umask: throw IllegalArgumentException on malformed mask

If we see an invalid umask, throw an IllegalArgumentException.
This prevents a native crash when FORTIFY_SOURCE is enabled and
the java umask method is used improperly.

Change-Id: I21aae48500df5e7081b63601123dd40070b4ff05
ibcore/io/Posix.java
bc049016ee71735211cf0d3e4ac34a531e8fe5ba 29-Sep-2012 Elliott Hughes <enh@google.com> am 05d71b4b: am 1235166d: Merge "Rewrite NIO Pipe to use socketpair(2)."

* commit '05d71b4bb57bd741214b15ea838770adb5ff688b':
Rewrite NIO Pipe to use socketpair(2).
1235166de4824b641dfeabca7dfd2907f37bb00d 29-Sep-2012 Elliott Hughes <enh@google.com> Merge "Rewrite NIO Pipe to use socketpair(2)."
3218082325b6b8713a8ac15731482e3da86a7df9 29-Sep-2012 Elliott Hughes <enh@google.com> Rewrite NIO Pipe to use socketpair(2).

Our Pipe originally used socket(2) to create AF_INET/AF_INET6
sockets. This was clearly a bad idea.

I rewrote it to use socketpair(2) and AF_UNIX, but this was
before the big "expose POSIX" rewrite, so it required a bunch
of hacks in the native code, so I went with pipe(2) instead.

The trouble with pipe(2) is that we end up using FileChannel
to implement the Pipe.SinkChannel and Pipe.SourceChannel, but
the kernel won't wake a read(2) on a pipe if another thread
calls close(2) on it, so we started failing interrupt tests.

This (final?) rewrite is hopefully the best of all worlds:
we don't have any INTERNET permission needs, the code is as
simple as the pipe(2) code, and interruption works.

Bug: 7084342
Bug: 2735373
Bug: http://code.google.com/p/android/issues/detail?id=9431
Change-Id: If3f052c9d3f5aa1c099f5a069ace9a8d6ce3ca3a
ava/nio/PipeImpl.java
ava/nio/SelectorProviderImpl.java
ava/nio/SocketChannelImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
0df5a7ea6de1b66a1a27678e66909b85c1e464fe 27-Sep-2012 Kenny Root <kroot@google.com> am 96612f9c: am a233144d: Merge "Add serialization to OpenSSL-based keys"

* commit '96612f9cbfe5666958ec3608a669e6c585432049':
Add serialization to OpenSSL-based keys
d3df366d3fd59237f1fbf099e979e6843047032c 27-Sep-2012 Kenny Root <kroot@google.com> Add serialization to OpenSSL-based keys

Any OpenSSL keys that aren't ENGINE-based are serializable, so add the
code to be able to keep the Serializable contract.

Bug: http://code.google.com/p/android/issues/detail?id=37880
Change-Id: I6d5fd9a1c6817d97d7890e4cccd8c95253e95279
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateCrtKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPublicKey.java
b2fc6057db8c0c833db90f7ebe01d945213613fc 25-Sep-2012 Brian Carlstrom <bdc@google.com> am f80f3547: am 5e05b783: Merge "Fix Generic[Stream|Generic]Cipher to Generic[Stream|Block]Cipher in comments"

* commit 'f80f354718d9790ec98db3fd9377a7c40a99710f':
Fix Generic[Stream|Generic]Cipher to Generic[Stream|Block]Cipher in comments
6d41a7cc3cb4cc684c8bece69ddc55954812ad6e 24-Sep-2012 Narayan Kamath <narayan@google.com> Strip content length in requests with "transparent" gzip handling.

We need to strip both the Content-Length and the Content-Encoding
for such requests. In such requests, it will be the length of the
compressed response. We hide the fact that compression is taking place
from clients, so we shouldn't give them the content length either.

(cherry picked from commit f9d60aed414ae21811a6488f603333517f257b22)

Change-Id: Ic2776ecf020c34b1c55e2fb7e2f0728e553187a0
ibcore/net/http/HttpEngine.java
ibcore/net/http/ResponseHeaders.java
ca3fd60b58369806a7d02f2204e4140ab70b353e 25-Sep-2012 Brian Carlstrom <bdc@google.com> Fix Generic[Stream|Generic]Cipher to Generic[Stream|Block]Cipher in comments

Change-Id: Iee2a86c764e5bd19135b371b100865fab2690965
rg/apache/harmony/xnet/provider/jsse/ConnectionState.java
a770cc51537499170a77f7c97cf832ccc7438b92 25-Sep-2012 Brian Carlstrom <bdc@google.com> am 2c5e9434: am baf61cbc: Merge "Strip content length in requests with "transparent" gzip handling."

* commit '2c5e94343c276c431735b566ad02e884b120a77c':
Strip content length in requests with "transparent" gzip handling.
baf61cbc422870424a858dd18a291a0b883a1220 25-Sep-2012 Brian Carlstrom <bdc@google.com> Merge "Strip content length in requests with "transparent" gzip handling."
f9d60aed414ae21811a6488f603333517f257b22 24-Sep-2012 Narayan Kamath <narayan@google.com> Strip content length in requests with "transparent" gzip handling.

We need to strip both the Content-Length and the Content-Encoding
for such requests. In such requests, it will be the length of the
compressed response. We hide the fact that compression is taking place
from clients, so we shouldn't give them the content length either.

Change-Id: I80713ab33143945c5e2656f478d83cc9e60226a8
ibcore/net/http/HttpEngine.java
ibcore/net/http/ResponseHeaders.java
0292a23dc535fcaeba0c1a65c6068e8423a5e326 25-Sep-2012 Elliott Hughes <enh@google.com> am 83a7efd5: am 107c45f4: Merge "Improve java.lang.Thread documentation."

* commit '83a7efd5f636c015ad0a91f05f5a25370033a15e':
Improve java.lang.Thread documentation.
a6ea031761707e674703bef04519ddf0c6a81a4d 25-Sep-2012 Elliott Hughes <enh@google.com> Improve java.lang.Thread documentation.

Change-Id: Id722186291bd9be94b64616397a979f07766c34f
ava/lang/Thread.java
615225a35dbd838210270b282d1196deff643b51 22-Sep-2012 Brian Carlstrom <bdc@google.com> Add OpenSSLSocketImpl.setSoWriteTimeout to allow SO_SNDTIMEO to be specified

Bug: 6693087
Change-Id: Ie6903168ca0ada4516c55dfab5f7194baf965b4c
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
abfee56fa51ed8533a822b0e5c8ecae1333d9abe 21-Sep-2012 Elliott Hughes <enh@google.com> am 2682316c: am c87dc489: Merge "Add setsid."

* commit '2682316ccbfb1e154fd9d14d5813c805e78be885':
Add setsid.
6c9b5377550a9649ed1532d1fcdfeba116c74ead 21-Sep-2012 Elliott Hughes <enh@google.com> Add setsid.

See "Monkey not handling SIGHUP signal" (https://android-review.googlesource.com/43053).

Change-Id: Ib327702caefa8eb8d044723c270acfe4685c7551
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
78f02b883864a64338854522731ec15174a093e2 21-Sep-2012 Elliott Hughes <enh@google.com> am f0f825cb: am 90bdb9da: Merge "Fix LocaleData.toString once and for all."

* commit 'f0f825cb720cd905a3b966d5cef35d73f87b6d24':
Fix LocaleData.toString once and for all.
0ab0d54b1615fa0b074978f0b5a669b5327294c8 21-Sep-2012 Elliott Hughes <enh@google.com> am 63529068: am 82d74983: Merge "Fix a native memory leak in SimpleDateFormat cloning."

* commit '63529068e9655252a46b372fa8919c59177fb453':
Fix a native memory leak in SimpleDateFormat cloning.
66e8297c70daaf001ca199e4e4ad3ba5283396d2 21-Sep-2012 Elliott Hughes <enh@google.com> Fix LocaleData.toString once and for all.

Change-Id: I207a3226470557ac26caba165ef35f5df6859273
ibcore/icu/LocaleData.java
ibcore/util/Objects.java
34a3a0501220dd62b88ddb4a355bad46b15c25a2 21-Sep-2012 Elliott Hughes <enh@google.com> Fix a native memory leak in SimpleDateFormat cloning.

We didn't use the regular finalization idiom in NativeDecimalFormat because
Formatter used to create a lot of these objects, and we wanted to be able to
close them manually rather than clogging up the GC. We've since rewritten
the Formatter code so this is no longer relevant, but we left the finalization
in the wrong class.

Tested with a "while (true) sdf.clone();" loop and ps(1).

Bug: http://code.google.com/p/android/issues/detail?id=37607
Change-Id: I0c435edf8c1bced00ebf04bd7187883344e971e7
ava/text/DateFormat.java
ava/text/DecimalFormat.java
ava/text/NumberFormat.java
ava/text/SimpleDateFormat.java
ibcore/icu/NativeDecimalFormat.java
50c00238d15d5e42386c0a9e4315b4a0a8299eae 20-Sep-2012 Elliott Hughes <enh@google.com> am 7252fd9a: am 630a4982: Merge "Remove obsolete ThirdPartyProject.prop files."

* commit '7252fd9a6da4c733ccc5003e3575145d69e99c68':
Remove obsolete ThirdPartyProject.prop files.
e6281f0d5775a3d61d9ec27d29f32c170f05027b 20-Sep-2012 Elliott Hughes <enh@google.com> Remove obsolete ThirdPartyProject.prop files.

Change-Id: I5288c5c1f6ce094bcac2792f6fa7fc6a455f756a
rg/xml/ThirdPartyProject.prop
9473606aca0af1a6410b2ea396c8a6609cf16940 20-Sep-2012 Geremy Condra <gcondra@google.com> Add cached trust anchors to the chain prior to checking pinning.

This avoids an issue where intermediate certs are assumed cached
rather than provided by the server.

Bug: 7195828
Change-Id: I44e033ddc40a7a259bac888bf2b873d9bb81becc
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
7b5bf805d03c2b71266886fa75513400817de9f1 19-Sep-2012 Geremy Condra <gcondra@google.com> Move null check for cert store to the consumer code.

This allows the check to operate if TrustManagerImpl gets a non-
AndroidCAStore cert store.

Bug:7190096
Change-Id: I7c55e48afdbee293e08a0594ad3957b4695a6415
rg/apache/harmony/xnet/provider/jsse/PinListEntry.java
5ab2ad7ebf828d06710868f33458fb1fbe1aa50b 19-Sep-2012 Geremy Condra <gcondra@google.com> Migrate PinFailureLogger to use the DropBox.

Also change the DropBox add* methods to be static, since they can be.

Change-Id: Iedab6948754dfc0db5d432a918bdc6297e3b8f02
ibcore/io/DropBox.java
rg/apache/harmony/xnet/provider/jsse/PinFailureLogger.java
aeb2d41a75b5df69711b4dd5e4ec53190c14e657 19-Sep-2012 Geremy Condra <gcondra@google.com> Add dummy DropBox to libcore.

Bug:7190096
Change-Id: Iacd3321153c53c80353e61d8626e8f435091c9d5
ibcore/io/DropBox.java
924af71bb26b7c35f702de9a3425109c73184a53 19-Sep-2012 Geremy Condra <gcondra@google.com> Restructure logging to ease the transition to dropbox.

Bug: 7190096
Change-Id: Ib16bcd47712890fd627027ebacacc511870b31b0
rg/apache/harmony/xnet/provider/jsse/CertPinManager.java
rg/apache/harmony/xnet/provider/jsse/PinFailureLogger.java
rg/apache/harmony/xnet/provider/jsse/PinListEntry.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
1c55af74baacee33ae662f65c07c1d9598a76524 18-Sep-2012 Kenny Root <kroot@google.com> am 0101812e: am e2f9b2c6: Merge "OsConstants: add O_NOFOLLOW"

* commit '0101812e9af94e69ac3aecbee949742796d00fd3':
OsConstants: add O_NOFOLLOW
e2f9b2c638367125899bf38576d24c6c807424e5 18-Sep-2012 Kenny Root <kroot@google.com> Merge "OsConstants: add O_NOFOLLOW"
5c9add3e84fd426fafbec289738f1f09c49aaf90 18-Sep-2012 Geremy Condra <gcondra@google.com> Add logging to detect cert pin failures caused by MITM proxies.

Change-Id: Ie9554aaa824506a75534d888432ed8a91e14e386
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateStore.java
dd538c3bbd85d14ccae83ab3b384b2ebcc4a4c13 18-Sep-2012 Kenny Root <kroot@google.com> OsConstants: add O_NOFOLLOW

Change-Id: I91619191d83ca8e0a13d30588f761e4defefc30d
ibcore/io/OsConstants.java
5a97188382a40d3345300b92147f80b230b620bc 17-Sep-2012 Brian Carlstrom <bdc@google.com> Make PinListEntry and PinEntryException public for CertPinManagerTest

Change-Id: If61f800e20613e37a076bf049c259abca1072e4b
rg/apache/harmony/xnet/provider/jsse/PinEntryException.java
rg/apache/harmony/xnet/provider/jsse/PinListEntry.java
719abfb38ff2db32b373d7dec6e254d2026dfd6d 15-Sep-2012 Elliott Hughes <enh@google.com> am d23dd0d4: am 90450038: Merge "Consistently use "charsetName" for charset names."

* commit 'd23dd0d42acab1c9b5b2cd4421b196120369d72e':
Consistently use "charsetName" for charset names.
9b9e9145bc55a47be42a9d3f7ecc9f6b533739b2 14-Sep-2012 Elliott Hughes <enh@google.com> Consistently use "charsetName" for charset names.

Change-Id: I147217077790c1ddfb815e870409abade31839c6
ava/io/ByteArrayOutputStream.java
ava/io/InputStreamReader.java
ava/io/OutputStreamWriter.java
ava/io/PrintStream.java
rg/apache/harmony/security/x509/AuthorityKeyIdentifier.java
d43b9ef11a1095967a3396b246639b563e1a4128 12-Sep-2012 Kenny Root <kroot@google.com> Add consistent reasons for NullPointerException

Semi-automated replacement of empty and non-conforming
NullPointerException reason messages.

(cherry-pick of 86acc043d3334651ee26c65467d78d6cefedd397.)

Change-Id: I6d893979f5c20a50e841e32af9fd7b2d8bc9d54d
ava/beans/PropertyChangeSupport.java
ava/io/BufferedWriter.java
ava/io/File.java
ava/io/InputStreamReader.java
ava/io/ObjectInputStream.java
ava/io/ObjectStreamField.java
ava/io/OutputStreamWriter.java
ava/io/PipedOutputStream.java
ava/io/PipedWriter.java
ava/io/PrintStream.java
ava/io/Reader.java
ava/io/SequenceInputStream.java
ava/io/StreamTokenizer.java
ava/io/StringBufferInputStream.java
ava/io/Writer.java
ava/lang/AbstractStringBuilder.java
ava/lang/Character.java
ava/lang/ClassLoader.java
ava/lang/Enum.java
ava/lang/ProcessBuilder.java
ava/lang/ProcessManager.java
ava/lang/Runtime.java
ava/lang/StackTraceElement.java
ava/lang/String.java
ava/lang/StringBuilder.java
ava/lang/System.java
ava/lang/Thread.java
ava/lang/Throwable.java
ava/lang/reflect/GenericArrayType.java
ava/lang/reflect/Proxy.java
ava/math/BigDecimal.java
ava/math/BigInt.java
ava/net/CookieStore.java
ava/net/DatagramSocket.java
ava/net/URISyntaxException.java
ava/net/URLClassLoader.java
ava/nio/DatagramChannelImpl.java
ava/nio/SocketChannelImpl.java
ava/nio/channels/Channels.java
ava/security/AlgorithmParameterGenerator.java
ava/security/AlgorithmParameters.java
ava/security/KeyFactory.java
ava/security/KeyPairGenerator.java
ava/security/KeyStore.java
ava/security/MessageDigest.java
ava/security/Provider.java
ava/security/SecureRandom.java
ava/security/Security.java
ava/security/Signature.java
ava/security/Signer.java
ava/security/cert/CertPathBuilder.java
ava/security/cert/CertPathValidator.java
ava/security/cert/CertStore.java
ava/security/cert/CertificateFactory.java
ava/security/cert/CollectionCertStoreParameters.java
ava/security/cert/LDAPCertStoreParameters.java
ava/security/cert/PKIXCertPathBuilderResult.java
ava/security/cert/X509CRL.java
ava/security/spec/ECGenParameterSpec.java
ava/sql/DriverManager.java
ava/text/AttributedString.java
ava/text/Collator.java
ava/text/DateFormatSymbols.java
ava/text/DecimalFormat.java
ava/text/DecimalFormatSymbols.java
ava/text/MessageFormat.java
ava/text/NumberFormat.java
ava/text/RuleBasedCollator.java
ava/text/SimpleDateFormat.java
ava/util/AbstractQueue.java
ava/util/ArrayDeque.java
ava/util/Arrays.java
ava/util/Calendar.java
ava/util/Collections.java
ava/util/DuplicateFormatFlagsException.java
ava/util/EnumMap.java
ava/util/FormatFlagsConversionMismatchException.java
ava/util/Formatter.java
ava/util/Hashtable.java
ava/util/IllegalFormatConversionException.java
ava/util/IllegalFormatFlagsException.java
ava/util/ListResourceBundle.java
ava/util/MissingFormatArgumentException.java
ava/util/MissingFormatWidthException.java
ava/util/Observable.java
ava/util/PriorityQueue.java
ava/util/Properties.java
ava/util/PropertyResourceBundle.java
ava/util/ResourceBundle.java
ava/util/Scanner.java
ava/util/ServiceLoader.java
ava/util/StringTokenizer.java
ava/util/TimeZone.java
ava/util/Timer.java
ava/util/UUID.java
ava/util/UnknownFormatConversionException.java
ava/util/UnknownFormatFlagsException.java
ava/util/jar/JarOutputStream.java
ava/util/logging/FileHandler.java
ava/util/logging/Handler.java
ava/util/logging/LogManager.java
ava/util/logging/StreamHandler.java
ava/util/prefs/AbstractPreferences.java
ava/util/zip/DeflaterInputStream.java
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/InflaterOutputStream.java
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
avax/crypto/Cipher.java
avax/crypto/CipherInputStream.java
avax/crypto/EncryptedPrivateKeyInfo.java
avax/crypto/ExemptionMechanism.java
avax/crypto/KeyAgreement.java
avax/crypto/KeyGenerator.java
avax/crypto/Mac.java
avax/crypto/SecretKeyFactory.java
avax/crypto/spec/DESedeKeySpec.java
avax/crypto/spec/OAEPParameterSpec.java
avax/crypto/spec/PSource.java
avax/net/ssl/KeyManagerFactory.java
avax/net/ssl/SSLContext.java
avax/net/ssl/TrustManagerFactory.java
avax/security/auth/Subject.java
avax/security/auth/x500/X500Principal.java
avax/xml/datatype/DatatypeFactory.java
avax/xml/datatype/Duration.java
avax/xml/validation/SchemaFactory.java
avax/xml/validation/SchemaFactoryFinder.java
avax/xml/validation/Validator.java
avax/xml/validation/ValidatorHandler.java
avax/xml/xpath/XPathException.java
avax/xml/xpath/XPathFactory.java
avax/xml/xpath/XPathFactoryFinder.java
ibcore/icu/NativeIDN.java
ibcore/icu/RuleBasedCollatorICU.java
ibcore/io/StrictLineReader.java
ibcore/net/UriCodec.java
ibcore/util/BasicLruCache.java
rg/apache/harmony/crypto/internal/NullCipherSpi.java
rg/apache/harmony/security/SystemScope.java
rg/apache/harmony/security/provider/cert/X509CRLImpl.java
rg/apache/harmony/security/provider/crypto/SHA1withDSA_SignatureImpl.java
rg/apache/harmony/xml/ExpatAttributes.java
rg/apache/harmony/xml/dom/NodeImpl.java
rg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl.java
rg/apache/harmony/xml/parsers/SAXParserFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/FileClientSessionCache.java
16edf9b0421592489932a81f29528eb532aeb441 14-Sep-2012 Kenny Root <kroot@google.com> Merge "Add consistent reasons for NullPointerException" into jb-mr1-dev
8d6c578f1d484482b644f5b77f3f2a5ea9f52977 14-Sep-2012 Elliott Hughes <enh@google.com> am dad6b628: am 480d35bc: Merge "Manually inline StrictMath.min(JJ) and StrictMath.max(JJ)."

* commit 'dad6b62846eb2d3e9aa51c1eb16c17fce8363da0':
Manually inline StrictMath.min(JJ) and StrictMath.max(JJ).
2827b1f103ac753cb5a16d459b6e017c80643ed7 14-Sep-2012 Elliott Hughes <enh@google.com> am c9411f30: am 3f905a73: Merge "Document that Random.nextGaussian should use StrictMath."

* commit 'c9411f301ca8336e2d1edff2977e3f246373c1ea':
Document that Random.nextGaussian should use StrictMath.
480d35bc9afbf59539ddb9e9b8c6a0765ac4f219 14-Sep-2012 Elliott Hughes <enh@google.com> Merge "Manually inline StrictMath.min(JJ) and StrictMath.max(JJ)."
3f905a7382ed82a05d42f2fb01f9483b5f47a584 14-Sep-2012 Elliott Hughes <enh@google.com> Merge "Document that Random.nextGaussian should use StrictMath."
bf9c47975631cda6ead2eda00d3db3c93444eeba 14-Sep-2012 Elliott Hughes <enh@google.com> Manually inline StrictMath.min(JJ) and StrictMath.max(JJ).

Also add new intrinsic tests.

Bug: 7146208
Change-Id: Ic454c8c5b218c51ce1c21f0c11163455392b4e72
ava/lang/Math.java
ava/lang/StrictMath.java
86acc043d3334651ee26c65467d78d6cefedd397 12-Sep-2012 Kenny Root <kroot@google.com> Add consistent reasons for NullPointerException

Semi-automated replacement of empty and non-conforming
NullPointerException reason messages.

Change-Id: Iedeb4b21949e973c4042ce5982dda315f2e785e1
ava/beans/PropertyChangeSupport.java
ava/io/BufferedWriter.java
ava/io/File.java
ava/io/InputStreamReader.java
ava/io/ObjectInputStream.java
ava/io/ObjectStreamField.java
ava/io/OutputStreamWriter.java
ava/io/PipedOutputStream.java
ava/io/PipedWriter.java
ava/io/PrintStream.java
ava/io/Reader.java
ava/io/SequenceInputStream.java
ava/io/StreamTokenizer.java
ava/io/StringBufferInputStream.java
ava/io/Writer.java
ava/lang/AbstractStringBuilder.java
ava/lang/Character.java
ava/lang/ClassLoader.java
ava/lang/Enum.java
ava/lang/ProcessBuilder.java
ava/lang/ProcessManager.java
ava/lang/Runtime.java
ava/lang/StackTraceElement.java
ava/lang/String.java
ava/lang/StringBuilder.java
ava/lang/System.java
ava/lang/Thread.java
ava/lang/Throwable.java
ava/lang/reflect/GenericArrayType.java
ava/lang/reflect/Proxy.java
ava/math/BigDecimal.java
ava/math/BigInt.java
ava/net/CookieStore.java
ava/net/DatagramSocket.java
ava/net/URISyntaxException.java
ava/net/URLClassLoader.java
ava/nio/DatagramChannelImpl.java
ava/nio/SocketChannelImpl.java
ava/nio/channels/Channels.java
ava/security/AlgorithmParameterGenerator.java
ava/security/AlgorithmParameters.java
ava/security/KeyFactory.java
ava/security/KeyPairGenerator.java
ava/security/KeyStore.java
ava/security/MessageDigest.java
ava/security/Provider.java
ava/security/SecureRandom.java
ava/security/Security.java
ava/security/Signature.java
ava/security/Signer.java
ava/security/cert/CertPathBuilder.java
ava/security/cert/CertPathValidator.java
ava/security/cert/CertStore.java
ava/security/cert/CertificateFactory.java
ava/security/cert/CollectionCertStoreParameters.java
ava/security/cert/LDAPCertStoreParameters.java
ava/security/cert/PKIXCertPathBuilderResult.java
ava/security/cert/X509CRL.java
ava/security/spec/ECGenParameterSpec.java
ava/sql/DriverManager.java
ava/text/AttributedString.java
ava/text/Collator.java
ava/text/DateFormatSymbols.java
ava/text/DecimalFormat.java
ava/text/DecimalFormatSymbols.java
ava/text/MessageFormat.java
ava/text/NumberFormat.java
ava/text/RuleBasedCollator.java
ava/text/SimpleDateFormat.java
ava/util/AbstractQueue.java
ava/util/ArrayDeque.java
ava/util/Arrays.java
ava/util/Calendar.java
ava/util/Collections.java
ava/util/DuplicateFormatFlagsException.java
ava/util/EnumMap.java
ava/util/FormatFlagsConversionMismatchException.java
ava/util/Formatter.java
ava/util/Hashtable.java
ava/util/IllegalFormatConversionException.java
ava/util/IllegalFormatFlagsException.java
ava/util/ListResourceBundle.java
ava/util/MissingFormatArgumentException.java
ava/util/MissingFormatWidthException.java
ava/util/Observable.java
ava/util/PriorityQueue.java
ava/util/Properties.java
ava/util/PropertyResourceBundle.java
ava/util/ResourceBundle.java
ava/util/Scanner.java
ava/util/ServiceLoader.java
ava/util/StringTokenizer.java
ava/util/TimeZone.java
ava/util/Timer.java
ava/util/UUID.java
ava/util/UnknownFormatConversionException.java
ava/util/UnknownFormatFlagsException.java
ava/util/jar/JarOutputStream.java
ava/util/logging/FileHandler.java
ava/util/logging/Handler.java
ava/util/logging/LogManager.java
ava/util/logging/StreamHandler.java
ava/util/prefs/AbstractPreferences.java
ava/util/zip/DeflaterInputStream.java
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/InflaterOutputStream.java
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
avax/crypto/Cipher.java
avax/crypto/CipherInputStream.java
avax/crypto/EncryptedPrivateKeyInfo.java
avax/crypto/ExemptionMechanism.java
avax/crypto/KeyAgreement.java
avax/crypto/KeyGenerator.java
avax/crypto/Mac.java
avax/crypto/SecretKeyFactory.java
avax/crypto/spec/DESedeKeySpec.java
avax/crypto/spec/OAEPParameterSpec.java
avax/crypto/spec/PSource.java
avax/net/ssl/KeyManagerFactory.java
avax/net/ssl/SSLContext.java
avax/net/ssl/TrustManagerFactory.java
avax/security/auth/Subject.java
avax/security/auth/x500/X500Principal.java
avax/xml/datatype/DatatypeFactory.java
avax/xml/datatype/Duration.java
avax/xml/validation/SchemaFactory.java
avax/xml/validation/SchemaFactoryFinder.java
avax/xml/validation/Validator.java
avax/xml/validation/ValidatorHandler.java
avax/xml/xpath/XPathException.java
avax/xml/xpath/XPathFactory.java
avax/xml/xpath/XPathFactoryFinder.java
ibcore/icu/NativeIDN.java
ibcore/icu/RuleBasedCollatorICU.java
ibcore/io/StrictLineReader.java
ibcore/net/UriCodec.java
ibcore/util/BasicLruCache.java
rg/apache/harmony/crypto/internal/NullCipherSpi.java
rg/apache/harmony/security/SystemScope.java
rg/apache/harmony/security/provider/cert/X509CRLImpl.java
rg/apache/harmony/security/provider/crypto/SHA1withDSA_SignatureImpl.java
rg/apache/harmony/xml/ExpatAttributes.java
rg/apache/harmony/xml/dom/NodeImpl.java
rg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl.java
rg/apache/harmony/xml/parsers/SAXParserFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/FileClientSessionCache.java
e88bbba97a2a68287b93fecba822d11f272325b7 12-Sep-2012 Geremy Condra <gcondra@google.com> Added event logging to PinListEntry.

This is done by adding a stub EventLogger that writes to the
usual logs if not overriden by the framework. If it has been
then we will wind up writing the code + Objects to the event
log.

cherry-picked from 52dc295e93679baa72f95b5b873dd21d5a2ccb32

Change-Id: I2c887c233d019910c9b018c4639a36c0808efc02
ibcore/io/EventLogger.java
rg/apache/harmony/xnet/provider/jsse/PinListEntry.java
6d2a17ab04ab0967e3bff7fe6280066ef66d1d76 11-Jun-2012 Geremy Condra <gcondra@google.com> Added basic cert pinning support.

This has four main changes:

First, it adds a CertPinManager to TrustManagerImpl that checks to
ensure that the chain is properly pinned.

Second, it adds the CertPinManager and associated classes to
implement cert pinning at this level.

Third, it changes the callers of checkServerTrusted to pass in a
hostname where possible, allowing them to make use of the pinning
transparently.

Finally, it changes checkServerTrusted to return the ultimate
chain that was verified, which is useful for implementing pinning
at a higher level.

cherry-picked from 5315f29b2de4aace0077b78f0b99634fda440b85

Change-Id: I150e010da3e2aeed57bd5330ff113d3a7fbbee2a
rg/apache/harmony/xnet/provider/jsse/CertPinManager.java
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/PinEntryException.java
rg/apache/harmony/xnet/provider/jsse/PinListEntry.java
rg/apache/harmony/xnet/provider/jsse/PinManagerException.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketWrapper.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
fe8b870db2b374e21c69c2ff0050e6a34e0d8d94 05-Sep-2012 Brian Carlstrom <bdc@google.com> Tracking upgrade to bouncycastle 1.47

Change-Id: Ie1f2ae92638e81ccd7e4ec2459199e6eecdac75f
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
f0993272562ebc6e8d77024b985c45fae9f92ed4 12-Sep-2012 Brian Carlstrom <bdc@google.com> am a1359997: am 9f519e17: Merge "Add OpenSSLProvider support for Cipher.RSA/None/PKCS1Padding"

* commit 'a1359997a83e4d1aefdb7ae23f73b61420d37964':
Add OpenSSLProvider support for Cipher.RSA/None/PKCS1Padding
0a156e0126e8015f2791e9a7dd48bbdaeae0c335 12-Sep-2012 Brian Carlstrom <bdc@google.com> Add OpenSSLProvider support for Cipher.RSA/None/PKCS1Padding

Summary:
- Add OpenSSLProvider support for Cipher.RSA/None/PKCS1Padding
Added NativeCrypto.RSA_private_decrypt and NativeCrypto.RSA_public_encrypt
- Changed OpenSSLSignatureRawRSA to use new Cipher.RSA/None/PKCS1Padding
Removed now obsoleted NativeCrypto APIs for
RSA_padding_add_PKCS1_type_1 and RSA_padding_check_PKCS1_type_1
- added wrap/unwrap support OpenSSLCipherRSA
Needed for SSLEngine (and fallback SSLSocket implementation)
which are now picking up the new Cipher.RSA/None/PKCS1Padding
- expanded CipherTest to sanity test all algorithms and PKCS1 padding

Change-Id: I03566cc86ffce07d44d5e0094fa82c9c24587c26
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipherRSA.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipherRawRSA.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignatureRawRSA.java
b37323027a3fb66b07a2c70eb48e9dd1c4c0f466 12-Sep-2012 Elliott Hughes <enh@google.com> Document that Random.nextGaussian should use StrictMath.

Bug: 7146208
Change-Id: Ife58d868e9310de3f378500fdbf53b2f3a690f04
ava/util/Random.java
e25cfef797c4428bb7a3b9b64a5a09591ed1a55a 05-Sep-2012 Elliott Hughes <enh@google.com> am ab991b57: am 43211dce: Merge "Make FileDescriptor.sync() work on ttys"

* commit 'ab991b570d8cd3b1c36fe6dfc8af883eaad9a74f':
Make FileDescriptor.sync() work on ttys
c44b3f5d857d0d3f4d3668de905cdac5080ede3b 01-Sep-2012 Kenny Root <kroot@google.com> Better OpenSSL key comparison

Use native code to compare OpenSSL keys instead of converting them to
Java BigIntegers first.

Change-Id: If795c9c26e41174755cdab34ff70e01c7487c9bd
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateCrtKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
bb5816aa1626eb2f6263bd21479600b114c8a1bd 10-Jan-2012 Johan Redestig <johan.redestig@sonymobile.com> Make FileDescriptor.sync() work on ttys

fsync on Linux fails on tty file descriptors. This change
adds the capability to make sure all data was written to the
terminal device descriptor to java.io.FileDescriptor.sync()
implementation.

Also fixed the return value from Posix_isatty. isatty
returns 1 if an fd is a tty and 0 otherwise.

Change-Id: I6cc65db83f523b4c31b67b48d7534e18af0989e8
ava/io/FileDescriptor.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
c455ce42ebb3742c888fcd0fc7db94a6dfc36fe3 05-Sep-2012 Elliott Hughes <enh@google.com> am 2c417207: am f26e2ed8: Merge "Fix date parsing for RTL languages such as Arabic."

* commit '2c4172071923e0d6066a84874517d702c9d3d261':
Fix date parsing for RTL languages such as Arabic.
f26e2ed8981895aab395cf14ef25fb54a208614b 05-Sep-2012 Elliott Hughes <enh@google.com> Merge "Fix date parsing for RTL languages such as Arabic."
9596d75ebf937d47a2de195b09584e88c91eb6f6 30-Aug-2012 Elliott Hughes <enh@google.com> Fix date parsing for RTL languages such as Arabic.

(The cleanup of the native code is an irrelevant target of opportunity.)

Bug: http://code.google.com/p/android/issues/detail?id=36689
Change-Id: I6d9f0bbbd6e8f99421072102e0d785bc3429cc14
ava/text/SimpleDateFormat.java
c590a497ee88ed1a0ee59f35619ae7804b1d3715 30-Aug-2012 Brian Carlstrom <bdc@google.com> am d027b65d: am 36bd86c1: Merge "Disable SSL compression"

* commit 'd027b65de7150569f4f65f8c90113eac850b52f0':
Disable SSL compression
7695a9b3261bfee3a810e0829bd8082fe1fcb6a4 30-Aug-2012 Brian Carlstrom <bdc@google.com> Disable SSL compression

Bug: 7079965

Change-Id: I8e060a827613e212bbcced66507fbf124bb04543
ibcore/net/http/HttpConnection.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
d0c2c3bdc19066142cad2a4ed567bfc4378f38e2 29-Aug-2012 Elliott Hughes <enh@google.com> am 0a1346b9: am d2852870: Merge "Improve nio IllegalArgumentException detail messages."

* commit '0a1346b9d785a595898845294770efe073741a9b':
Improve nio IllegalArgumentException detail messages.
126ab1b546c71137a97cef68cc89267e7f7be634 28-Aug-2012 Elliott Hughes <enh@google.com> Improve nio IllegalArgumentException detail messages.

Bug: 7005326
Change-Id: Ibab8b776865dbed5da062cc683f834a79f068b32
ava/nio/Buffer.java
ava/nio/ByteBuffer.java
ava/nio/CharBuffer.java
ava/nio/DoubleBuffer.java
ava/nio/FileChannelImpl.java
ava/nio/FloatBuffer.java
ava/nio/IntBuffer.java
ava/nio/LongBuffer.java
ava/nio/MappedByteBuffer.java
ava/nio/SelectorImpl.java
ava/nio/ShortBuffer.java
ava/nio/SocketChannelImpl.java
ava/nio/channels/FileLock.java
ava/nio/charset/CharsetDecoder.java
ava/nio/charset/CharsetEncoder.java
ava/nio/charset/CoderResult.java
796b0d2f4508e3933e53df2d372090c8634164ee 21-Aug-2012 Kenny Root <kroot@google.com> Remember key aliases for OpenSSLKeys from ENGINEs

Since it's not easy (or sometimes impossible) to retrieve key IDs for
keys loaded from an ENGINE, remember them when we create them.

(cherry-picked from 86bdaf9b40263efae243d685d449e1ae30b0b161)

Change-Id: I3920f56214d9eade87d51d30b024f5aeda9e8344
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLEngine.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
86bdaf9b40263efae243d685d449e1ae30b0b161 21-Aug-2012 Kenny Root <kroot@google.com> Remember key aliases for OpenSSLKeys from ENGINEs

Since it's not easy (or sometimes impossible) to retrieve key IDs for
keys loaded from an ENGINE, remember them when we create them.

Change-Id: I643b23668eae4303af04dc59899a6430e8d3a799
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLEngine.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
b039f1886262429ad871f2b4d5403333b4a91ca4 20-Aug-2012 Brian Carlstrom <bdc@google.com> am 758401da: am 2a4282c1: Merge "Restore ability for SSLSocket.close() to interrupt reads and writes"

* commit '758401da7c3315fd1bf4146acfc5501af6842de2':
Restore ability for SSLSocket.close() to interrupt reads and writes
783004cceef470884b3ee6946cbbfc4af0f28ae7 20-Aug-2012 Brian Carlstrom <bdc@google.com> Restore ability for SSLSocket.close() to interrupt reads and writes

SSLSocketTest.test_SSLSocket_interrupt didn't catch this regression so
added new test_SSLSocket_interrupt_read to cover this case
specifically. Also cleanup SSLSocketTest to use Executors like
NativeCryptoTest instead of Threads for better error checking.

Bug: 7014266
Change-Id: I1160cd283310a0c6197cd3271a25830e0e2b1524
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
e9648a47e80bf150da4f23c6cded726da55374a5 18-Aug-2012 Brian Carlstrom <bdc@google.com> am c7044013: am 5fb9cb9c: Merge "KeyStoreSpi.engineSetEntry should allow null ProtectionParameter"

* commit 'c704401332c808551a20bf8e4dc97920d458ac6c':
KeyStoreSpi.engineSetEntry should allow null ProtectionParameter
d951031b428eb2885dca51e0484d5d29e0caad44 18-Aug-2012 Brian Carlstrom <bdc@google.com> KeyStoreSpi.engineSetEntry should allow null ProtectionParameter

Change-Id: Ibf5be502a70a63abccb6e45dc6b6ff18b2c63ca9
ava/security/KeyStoreSpi.java
642b1841c441a0934def4ebbb6cb48d77178d671 16-Aug-2012 Elliott Hughes <enh@google.com> am fbcdc979: am 2b79aeb6: Merge "Add chown, fchmod, fchown, lchown, and umask."

* commit 'fbcdc979f257076a7ad2f90451af43fb68691f7e':
Add chown, fchmod, fchown, lchown, and umask.
44f7875f2985d7944c5afecc8394ad9f2219c806 16-Aug-2012 Elliott Hughes <enh@google.com> Add chown, fchmod, fchown, lchown, and umask.

Bug: 6141031
Bug: 3107501
Change-Id: I3f514f615b397f57340066f26d43320fb3c219fa
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
b55c8aa5ed7c02b5a6dc17d12218122db25e36ee 16-Aug-2012 Elliott Hughes <enh@google.com> am 213d201a: am 58e7be64: Merge "Performance improvements: DiskLruCache, HttpResponseCache."

* commit '213d201a7ee1bf37f32845e41f076eafb9ac4c05':
Performance improvements: DiskLruCache, HttpResponseCache.
ac665275e161fab8ecd4225e73e159a9edf10501 23-Jul-2012 Vladimir Marko <vmarko@google.com> Performance improvements: DiskLruCache, HttpResponseCache.

Add StrictLineReader for efficient reading of lines
consistent with Streams.readAsciiLine(). Use this to improve
DiskLruCache.readJournal() and initialization of
HttpResponseCache$Entry from InputStream.

(cherry-pick of e03b551079aae1204e505f1dc24f2b986ef82ec0.)

Bug: 6739304
Change-Id: If3083031f1368a9bbbd405c91553d7a205fd4e39
ibcore/io/DiskLruCache.java
ibcore/io/StrictLineReader.java
ibcore/net/http/HttpResponseCache.java
1a3437b67847aa34d2c0679b50c0176b6295adc9 16-Aug-2012 Kenny Root <kroot@google.com> am c77c2d5a: am a0676e5a: Merge "Add new Android-only algos to StandardNames"

* commit 'c77c2d5aeadf75c521b81131ced2163def54f830':
Add new Android-only algos to StandardNames
62fc526d80608925cad24c3d6d91657f63a56fcf 16-Aug-2012 Kenny Root <kroot@google.com> Add new Android-only algos to StandardNames

The ProviderTest fails if we don't add these to StandardNames.

Change the name of Signature.RAWRSA to "NONEwithRSA" so it matches the
convention in existing algorithms.

Change-Id: Id126eca46ee3b9f9d19aee596c1babd489693c7a
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
0a2b7e2cb49df43822c613cd4a2da527951fa77f 16-Aug-2012 Kenny Root <kroot@google.com> am 4a4db1e2: am cdad5434: Merge "Call ENGINE_add to prevent ENGINEs from unloading"

* commit '4a4db1e290536e8155f8f8dcd273b647462842a5':
Call ENGINE_add to prevent ENGINEs from unloading
cdad5434dff71f87b4e85c6faf6e0c30a80672d7 16-Aug-2012 Kenny Root <kroot@google.com> Merge "Call ENGINE_add to prevent ENGINEs from unloading"
829d1bfa36622e45f891277430a993854179d0c8 16-Aug-2012 Kenny Root <kroot@google.com> am 59b77d31: am 31531439: Merge "Do better comparisons for ENGINE-based keys"

* commit '59b77d312aa62a428ec89d9a39b8066b369c7dd0':
Do better comparisons for ENGINE-based keys
106a8928fb4249f2f3d4dba1dddbe73ca5cb3d61 16-Aug-2012 Kenny Root <kroot@google.com> Call ENGINE_add to prevent ENGINEs from unloading

The only user of the OpenSSLEngine interface is a dynamic engine (loaded
from eng_dyn.c), so it will unload the .so when references to it
decrease to zero.

Calling ENGINE_add will add the loaded engine to the list of loaded
engines. The next time ENGINE_by_id is called, it will just use the one
from the list instead of loading the .so again.

You can still control whether the engine is ref-counted or copied with
ENGINE_set_flags(ret, ENGINE_FLAGS_BY_ID_COPY) in the engine
initialization method.

Change-Id: Ic005e9ea22a3c6027e3a5aab2adf41fb7995c1f0
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLEngine.java
315314395fd3be331a4daf83f329ff0406567e58 16-Aug-2012 Kenny Root <kroot@google.com> Merge "Do better comparisons for ENGINE-based keys"
84818197ed60f59a86ba8d9274e1639d222f4040 15-Aug-2012 Kenny Root <kroot@google.com> Do better comparisons for ENGINE-based keys

ENGINE-based keys need only be compared by their modulus in actuality,
because given a good random number generator each modulus should be
unique.

Change-Id: Iea1f19126c5ce306d63b3a1bcb05a43139a86846
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateCrtKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
1f1da73f69bb11631a984b9c0ac1e8574c3dd1a8 15-Aug-2012 Elliott Hughes <enh@google.com> am 21bb3a0e: am f5e25724: Merge "Revert "Revert "Add support for returning the CLDR "Yesterday", "Today", and "Tomorrow" strings."""

* commit '21bb3a0e1891afe49f68a929ad7e293f51b146bb':
Revert "Revert "Add support for returning the CLDR "Yesterday", "Today", and "Tomorrow" strings.""
c4e0797a4dd028d23e788da15c3055f83f6f37d5 15-Aug-2012 Elliott Hughes <enh@google.com> Revert "Revert "Add support for returning the CLDR "Yesterday", "Today", and "Tomorrow" strings.""

This reverts commit 73dc486a74a67ce375e3d90dcfaa6b5255b7c0da

I've added code to handle falling back to parent locales to find relative
day names.

Change-Id: Iec2eebb62c0cbb5f6ce625365de514d80ddc05f7
ibcore/icu/LocaleData.java
93984e77c0e86fd46fd543586b414b382e6e9e30 15-Aug-2012 Elliott Hughes <enh@google.com> am 4745f251: am cf7d9f30: Merge "Revert "Add support for returning the CLDR "Yesterday", "Today", and "Tomorrow" strings.""

* commit '4745f2518e8fe993ec9fd8aa4c37d09f4f94efa6':
Revert "Add support for returning the CLDR "Yesterday", "Today", and "Tomorrow" strings."
73dc486a74a67ce375e3d90dcfaa6b5255b7c0da 15-Aug-2012 Elliott Hughes <enh@google.com> Revert "Add support for returning the CLDR "Yesterday", "Today", and "Tomorrow" strings."

This reverts commit 774294d74fe02e2b5040fcc2feb9f9d0913a4c77

This patch didn't work for locales that didn't explicitly specify values (and relied on fallback), and caused hard failures in those cases.

Change-Id: I7e3a45cc4d39317c8e523c2ee951c49e0aa8e811
ibcore/icu/LocaleData.java
38b5c6b314b811a5e7e2b1f8924cc66da73b8e9f 15-Aug-2012 Elliott Hughes <enh@google.com> am 132d978e: am 49578873: Merge "Add support for returning the CLDR "Yesterday", "Today", and "Tomorrow" strings."

* commit '132d978eda3e7e0017a208aa7b329e0f78454ffa':
Add support for returning the CLDR "Yesterday", "Today", and "Tomorrow" strings.
774294d74fe02e2b5040fcc2feb9f9d0913a4c77 15-Aug-2012 Elliott Hughes <enh@google.com> Add support for returning the CLDR "Yesterday", "Today", and "Tomorrow" strings.

This will let us remove a little more of the duplicate (and unmaintained)
CLDR data from frameworks/base.

Change-Id: Idbdb755e8469bb46e7597775ed2139c47de24b39
ibcore/icu/LocaleData.java
b7e5ab4d0a944d293a9691db163b188bbaa5e730 11-Aug-2012 Kenny Root <kroot@google.com> am b031809d: am abcf0783: Merge "Fix OpenSSLCipherRawRSA doFinal array copy"

* commit 'b031809d68102178e10ae1de1347072ff623d11c':
Fix OpenSSLCipherRawRSA doFinal array copy
d762af619aa85042c08553425a4ca4ef7900d45a 10-Aug-2012 Kenny Root <kroot@google.com> Fix OpenSSLCipherRawRSA doFinal array copy

System.arraycopy was pointing the wrong way making calls to doFinal()
with offset markers get zeroed output instead of the actual output.

Also fix tests that checked RSA cipher behavior to match RI.

Bug: 6951038
Change-Id: Ife84c177a2c06a2c27b98df9960cbd3c4b62d984
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipherRawRSA.java
d7d4cf700dbb7f46d5bbaccfe38f2e555b1942e8 09-Aug-2012 Elliott Hughes <enh@google.com> am b37b2884: am 3cb4f017: Merge "Fix the java.util.concurrent package documentation."

* commit 'b37b288468d936d231e934e11820d2c11b6e0c4d':
Fix the java.util.concurrent package documentation.
a7d984ae8902f65664de50ca5faed1f9d52689ec 09-Aug-2012 Elliott Hughes <enh@google.com> am 13966371: am c27b2e39: Merge "Make Charsets final."

* commit '13966371f65f211e9d8cc152a029cfb419149ee1':
Make Charsets final.
5899d4aaa8b0b03bfdf4abeef8f1a1189ac1bd65 09-Aug-2012 Brian Carlstrom <bdc@google.com> Merge "Add chain building to TrustedCertificateStore"
3cb4f017922d81d7d8c44a6bd2cb9fd5f876f69b 09-Aug-2012 Elliott Hughes <enh@google.com> Merge "Fix the java.util.concurrent package documentation."
83a7cea6ad5c5f066e55aeddd6da27d3ef5e62c1 07-Aug-2012 Kenny Root <kroot@google.com> Add chain building to TrustedCertificateStore

Since TrustedCertificateStore has information needed, use it to build
certificate chains.

OpenSSL uses Authority Key Identifier in extensions to determine if the
certificate is the same as itself. There are problems with key rotation
when a different certificate serial signs a key with the same subject
identifier. It appears to be the same with the old code, but it may
generate an invalid chain.

(cherry-picked from 3fb088d79e446063ef743362a030e1cfb80b2178)

Change-Id: I8149bed1a0ae537f75da5dc3f3d7e3ccab353f91
rg/apache/harmony/security/x509/AuthorityKeyIdentifier.java
rg/apache/harmony/security/x509/SubjectKeyIdentifier.java
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateStore.java
2d7d4072dbfe90e9da20106deb0c7ed6e8ed614b 09-Aug-2012 Elliott Hughes <enh@google.com> Fix the java.util.concurrent package documentation.

Android doesn't yet include Phaser.

Bug: http://code.google.com/p/android/issues/detail?id=36142
Change-Id: I237d8a2616550f809a34bab196de374b28e9273c
ava/util/concurrent/package-info.java
5de66adb390e0885195b4f5caa3856a790abd087 09-Aug-2012 Elliott Hughes <enh@google.com> Make Charsets final.

Change-Id: I4a16ba53eda539059738f92a07b5563370ae2693
ava/nio/charset/Charsets.java
3fb088d79e446063ef743362a030e1cfb80b2178 07-Aug-2012 Kenny Root <kroot@google.com> Add chain building to TrustedCertificateStore

Since TrustedCertificateStore has information needed, use it to build
certificate chains.

OpenSSL uses Authority Key Identifier in extensions to determine if the
certificate is the same as itself. There are problems with key rotation
when a different certificate serial signs a key with the same subject
identifier. It appears to be the same with the old code, but it may
generate an invalid chain.

Change-Id: Ieaeacf535029c4d485944a8803a0ea8cff5b7b94
rg/apache/harmony/security/x509/AuthorityKeyIdentifier.java
rg/apache/harmony/security/x509/SubjectKeyIdentifier.java
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateStore.java
1b6a07f5dce7d2d2c9ebafd2eec5dd2ce1634213 06-Aug-2012 Elliott Hughes <enh@google.com> am a10a95ad: am 678205c9: Merge "Offer "J" in addition to "January" and "Jan"."

* commit 'a10a95ad7988eb4b9778e7ad5bcdc5f0eb964489':
Offer "J" in addition to "January" and "Jan".
ad66a888b2e48b1a185de1b3c73fd01383a1fd04 06-Aug-2012 Elliott Hughes <enh@google.com> Offer "J" in addition to "January" and "Jan".

The frameworks/base XML had out-of-date copies of this CLDR data, which
isn't accessible via SimpleDateFormat. Offer the strings direct from icu4c
so we can use them in frameworks/base.

Change-Id: If97dac05bcbb36542b209b19ae590e8b30aedb7b
ibcore/icu/LocaleData.java
28c2f0868cdf16b446df806efb63ae54b4426ba0 06-Aug-2012 Elliott Hughes <enh@google.com> am 68e025f3: am 1af7fe99: Merge "Improve the URLConnection timeout documentation slightly."

* commit '68e025f328af63c0bbab9a8698833ca9e5e66818':
Improve the URLConnection timeout documentation slightly.
1af7fe9969b57f551e6a97e8e87c6559ae31c254 06-Aug-2012 Elliott Hughes <enh@google.com> Merge "Improve the URLConnection timeout documentation slightly."
699f565e8773f3aab263e7b33f6d089355814f19 06-Aug-2012 Elliott Hughes <enh@google.com> Improve the URLConnection timeout documentation slightly.

Change-Id: Ia4fbe6466f6db3f1186e6a007988d59140fc9f40
ava/net/URLConnection.java
2151de6ac4464a0397081d7d238c76382d66000a 04-Aug-2012 Kenny Root <kroot@google.com> am 04074c1f: am 9dbbca97: Merge "Add raw RSA Cipher to OpenSSLProvider"

* commit '04074c1f59db78e7dd9ac71a4cba61cb2d5270c3':
Add raw RSA Cipher to OpenSSLProvider
c5ddc93173f32383ab456c0a24739e7cb2d19c42 02-Aug-2012 Kenny Root <kroot@google.com> Add raw RSA Cipher to OpenSSLProvider

Recent changes in the way that Android Keystore (accessed via KeyChain)
necessitate all key operations be done with a provider that understands
the new OpenSSLKey object.

This adds Cipher support for the RSA algorithm in "RSA/ECB/NoPadding"
and "RSA/None/NoPadding" modes.

Change-Id: I98a8eaf3514763a863b2751bba999fbd48609c96
rg/apache/harmony/xnet/provider/jsse/OpenSSLCipherRawRSA.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
eb9888af9602a62555c4975dde1f1c6de13eac8c 03-Aug-2012 Brian Carlstrom <bdc@google.com> am 7d9863dd: am bc5d94b6: Merge "Simplify locking and close race in getSecureRandomService()"

* commit '7d9863dda38c5e71efac20c6da0625400f872dbd':
Simplify locking and close race in getSecureRandomService()
bc5d94b62ec601430c68c7c48add44f6d3c5724a 03-Aug-2012 Brian Carlstrom <bdc@google.com> Merge "Simplify locking and close race in getSecureRandomService()"
b9d36450c63be9096984ea167aace421af2ef05b 03-Aug-2012 Brian Carlstrom <bdc@google.com> Simplify locking and close race in getSecureRandomService()

Change-Id: I5c482d9a2d2a9282d7a5e5d4c4de52be05c60b93
rg/apache/harmony/security/fortress/Services.java
363b9599d1f3bb8a27fd1443d32eb7c7f8a9ab9c 03-Aug-2012 Brian Carlstrom <bdc@google.com> am d9a268ef: am 29c19bec: Merge "Use default UncaughtExceptionHandler to report finalizer timeouts when defined."

* commit 'd9a268ef73af475c1f97c400cf76f4d3daf2eb3a':
Use default UncaughtExceptionHandler to report finalizer timeouts when defined.
7c10bc697cfee271a4cc9561c86be388a85edcd5 03-Aug-2012 Brian Carlstrom <bdc@google.com> Merge "Add raw RSA signature support"
474a846981ea98054f221a10f994b7dcbfee985c 02-Aug-2012 Brian Carlstrom <bdc@google.com> Use default UncaughtExceptionHandler to report finalizer timeouts when defined.

In a previous release dalvik would abort on finalizer timeouts which
would be noticed by various tools such as the monkey. However, more
recently when the handling of this was moved to managed code, we
simply logged and exited, which went unnoticed by the monkeys. By
reporting via the default UncaughtExceptionHandler, finalizer timeouts
will once again be noticed by the monkeys, this time via the
application crash reporting.

Bug: 6894375
Change-Id: I94664f8bb54dc7647b4d3666484d88b1c8428c4b
ava/lang/Daemons.java
7501e29e0182accf28cc317870a3bbe1e25f4bfa 31-Jul-2012 Kenny Root <kroot@google.com> Add raw RSA signature support

With the new Keystore changes, this is the only way you can get raw RSA
signatures which a lot of native code expects to be able to do.

(cherry-picked from c531f5f402b4cedcc35a0b7f0b540dc84c545106)

Bug: 6787078
Change-Id: I1c5ddd5287be1ab71347eedc864a41c24e156cb4
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignatureRawRSA.java
6a5bacd61a909da581a56533043448f099c5c640 03-Aug-2012 Kenny Root <kroot@google.com> Merge "Add raw RSA signature support" into jb-mr1-dev
8af8c050290c7a3d7886574644fcd1208ce95c89 03-Aug-2012 Brian Carlstrom <bdc@google.com> am f27d4dab: am 21d09848: Merge "Avoid ConcurrentModificationException on providers"

* commit 'f27d4dab850d09b660556c649788a7ffa13db4b5':
Avoid ConcurrentModificationException on providers
c531f5f402b4cedcc35a0b7f0b540dc84c545106 31-Jul-2012 Kenny Root <kroot@google.com> Add raw RSA signature support

With the new Keystore changes, this is the only way you can get raw RSA
signatures which a lot of native code expects to be able to do.

Bug: 6787078
Change-Id: I1c5ddd5287be1ab71347eedc864a41c24e156cb4
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignatureRawRSA.java
494ad8a7a28a628a57eba2a07b85a5cc46b25e80 02-Aug-2012 Brian Carlstrom <bdc@google.com> am cb5e1d12: am 34513525: Merge "Add a test for KxmlSerializer attributes with whitespace chars."

* commit 'cb5e1d12e2f6d0fb49453d2a0421c4df0fe538b0':
Add a test for KxmlSerializer attributes with whitespace chars.
c7a56c94bdea0e20123ae6fba5eca5b8d984c670 01-Aug-2012 Brian Carlstrom <bdc@google.com> Avoid ConcurrentModificationException on providers

Previously concurrently adding/removing providers in one thread and
doing algorithm lookups on another thread would cause
ConcurrentModificationExceptions such as:

java.util.ConcurrentModificationException
at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:569)
at org.apache.harmony.security.fortress.Services.updateServiceInfo(Services.java:186)
at org.apache.harmony.security.fortress.Services.refresh(Services.java:234)
at org.apache.harmony.security.fortress.Engine.getInstance(Engine.java:137)
at java.security.KeyFactory.getInstance(KeyFactory.java:81)

Also do some general cleanup and add similar protection on services.

Change-Id: I706c45655924dfccc3383fca57653d0c5b461721
ava/security/SecureRandom.java
rg/apache/harmony/security/fortress/Engine.java
rg/apache/harmony/security/fortress/Services.java
5fbdac52bd724b6c43b38e13e8dcfbc1dd158363 02-Aug-2012 Brian Carlstrom <bdc@google.com> am 5a47c405: am a74ca833: Merge "Remove more cruft."

* commit '5a47c405c99b1832d64f9f607f738e4d82a870ed':
Remove more cruft.
6372c77f7c07b8bfacf08f3435f03a03c24eaff1 02-Aug-2012 Brian Carlstrom <bdc@google.com> am 1d8227be: am e7f6b286: Merge "Don\'t call overrideable methods from a constructor."

* commit '1d8227beef85e0529dd64acabfd674244987368b':
Don't call overrideable methods from a constructor.
10be789f42863b6d3cb2991d0439dd6528288bac 09-Dec-2011 Jesse Wilson <jessewilson@google.com> Add a test for KxmlSerializer attributes with whitespace chars.

Delete some unused Kxml classes while I'm in the area, and
combine our two classes named KXmlSerializerTest.

(cherry-pick of 22a12704190060f74e308a5b5aa32d0b7f715183.)

Change-Id: Id8b3f72edc58547e49ad86c51a171dce3669be3f
rg/xml/ThirdPartyProject.prop
46aabcb28b0e3b807f6db8c33173962d6f2cb71f 12-Jun-2012 Kenny Root <kroot@google.com> Add OpenSSL provider for SHA1PRNG

(cherry-pick of 4718b07e482ccb083ce3dfff228d0615b96a8dd2 and 84fb77d814b0ad04d70addb04847797925acf805.)

Change-Id: Ib45c646a8596bf5ea0629408d6057d3828a1ac94
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRandom.java
20484654bc7c2407da40226d5188acfc37ee1c2b 09-Aug-2011 Elliott Hughes <enh@google.com> Remove more cruft.

Unused imports and bogus comments.

(cherry-pick of 9af8c0318fac8bf03ee145da01b0c38a503791fc.)

Change-Id: I2bddb32028b71964407e86c4dbef5516673c27eb
ava/io/ObjectInputStream.java
avax/xml/namespace/QName.java
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/Logger.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
9b69e9466df96b62c6a689184d6ea50f52e4447b 02-Aug-2012 Brian Carlstrom <bdc@google.com> am 8dc08bcc: am 549a5544: Merge "Include the failed key when a Hashtable put fails."

* commit '8dc08bcc359d3fe7a6b2a9921df92b5d3173cd0f':
Include the failed key when a Hashtable put fails.
92f41b722d1f1c0ca943ad3959558c2073f1de7a 02-Aug-2012 Elliott Hughes <enh@google.com> am 05823bc3: am 0449fee2: Merge "Avoid the implicit NaN test in {float,double}To{Int,Long}Bits."

* commit '05823bc335b033a8ce2d1e4d03df4748822bceea':
Avoid the implicit NaN test in {float,double}To{Int,Long}Bits.
e05231e0050e27c49c64a37fec70e0576d9b2687 02-Aug-2012 Brian Carlstrom <bdc@google.com> am 5f4469c7: am cfd0f992: Merge "Don\'t cache partial sets of date fields in Calendar."

* commit '5f4469c7a0a815c74dd6148638c6cfbaa70b5cb8':
Don't cache partial sets of date fields in Calendar.
687409006d21cb01c56b3a3acc180952bb4d7e3e 22-Jun-2011 Jesse Wilson <jessewilson@google.com> Don't call overrideable methods from a constructor.

Conflicts:

luni/src/test/java/libcore/java/util/TimeZoneTest.java

(cherry-pick of 7dbf334facc7f43c18244150d2052ae4ec8c5e16.)

Change-Id: I0aa0f3c8776538076bdfed070da08e65aa959486
ava/util/SimpleTimeZone.java
421f0b0e439b5baeb6d2888cf61c7acc0516e2ec 07-Dec-2011 Jesse Wilson <jessewilson@google.com> Include the failed key when a Hashtable put fails.

This helped debugging a problem I was running into when
getting vogar to work when System.getenv() was returning
null; it might help other developers in similar situations.

(cherry-pick of e9f1bc2eb660107ef925b3424f472e38b74b92ac.)

Change-Id: If58c16397b70ef747736df8d5491da15fa3a450c
ava/util/Hashtable.java
bbffd0389666ee4c3a44c9f111bc87cb8781c30e 16-Jul-2011 Carl Shapiro <cshapiro@google.com> Avoid the implicit NaN test in {float,double}To{Int,Long}Bits.

The possibility of ak being a NaN is eliminated by the preceding
compare to 0.0. As such, a raw conversion will produce identical
results.

(cherry-pick of c9f45b2e4dd6c5f0bd96d8419370cdbbc7031ffa.)

Change-Id: Ic87cc137030d9d9e2f3c725ed15982b313323b5d
ava/util/DualPivotQuicksort.java
2aafe038571c2ec47e1d72ea7b9fdb8ea1c0043a 02-Aug-2012 Brian Carlstrom <bdc@google.com> am bf98261b: am 1e97b40a: Merge "Don\'t serialize a Throwable\'s stackState field."

* commit 'bf98261b88799ac856076b84287ed9cf787d35bf':
Don't serialize a Throwable's stackState field.
1baa4fcbfe3c22e5f06a4fee48f520162d23270f 22-Jun-2011 Jesse Wilson <jessewilson@google.com> Don't cache partial sets of date fields in Calendar.

This was only useful when modifying calendars within a single day.
Not worth the complexity, and possibly a source of bugs.

(cherry-pick of 0170a5c2cd87d90e11513a45f29ebafee6a1701c.)

Bug: 2435103
Change-Id: Ib6d68aed29f424ac464fc389e7ae26909667b9b9
ava/util/Calendar.java
ava/util/GregorianCalendar.java
56444c0884abdbd0946d4e601d534edda0bb2aac 22-Nov-2011 Jesse Wilson <jessewilson@google.com> Don't serialize a Throwable's stackState field.

In some situations this field may reference a non-serializable value.

(cherry-pick of 6c15570a27c2b7aad18ae2064db2eae921be27e0.)

Change-Id: I78607bbcb707fc1ab43cfbaba4647d91b9d90ad4
ava/lang/Throwable.java
a913776e4119be88d51f53f8800e388bdf4a25bc 02-Aug-2012 Brian Carlstrom <bdc@google.com> am c12b0ee5: am 5bfdc3aa: Merge "Update java.util.concurrent to 2011-nov-1."

* commit 'c12b0ee5e53380f24999454b0a68e66d920f8e70':
Update java.util.concurrent to 2011-nov-1.
a807b4d808d2591894daf13aab179b2e9c46a2f5 01-Nov-2011 Jesse Wilson <jessewilson@google.com> Update java.util.concurrent to 2011-nov-1.

The most recent change to the upstream CVS tree was on Tue Oct 25 20:29:12 2011 UTC.

This removes references to security managers.

(cherry-pick of d206d1f85f051ec85bc1b00d576a67fa9be13228.)

Bug: 3289698
Change-Id: Id89c909407f268fdc828ebe2bebcb1c12dbb93aa
ava/util/AbstractQueue.java
ava/util/ArrayDeque.java
ava/util/Deque.java
ava/util/NavigableMap.java
ava/util/NavigableSet.java
ava/util/Queue.java
ava/util/concurrent/AbstractExecutorService.java
ava/util/concurrent/ArrayBlockingQueue.java
ava/util/concurrent/BlockingDeque.java
ava/util/concurrent/BlockingQueue.java
ava/util/concurrent/BrokenBarrierException.java
ava/util/concurrent/Callable.java
ava/util/concurrent/CancellationException.java
ava/util/concurrent/CompletionService.java
ava/util/concurrent/ConcurrentHashMap.java
ava/util/concurrent/ConcurrentLinkedDeque.java
ava/util/concurrent/ConcurrentLinkedQueue.java
ava/util/concurrent/ConcurrentMap.java
ava/util/concurrent/ConcurrentNavigableMap.java
ava/util/concurrent/ConcurrentSkipListMap.java
ava/util/concurrent/ConcurrentSkipListSet.java
ava/util/concurrent/CopyOnWriteArraySet.java
ava/util/concurrent/CountDownLatch.java
ava/util/concurrent/CyclicBarrier.java
ava/util/concurrent/DelayQueue.java
ava/util/concurrent/Delayed.java
ava/util/concurrent/Exchanger.java
ava/util/concurrent/ExecutionException.java
ava/util/concurrent/Executor.java
ava/util/concurrent/ExecutorCompletionService.java
ava/util/concurrent/ExecutorService.java
ava/util/concurrent/Executors.java
ava/util/concurrent/ForkJoinPool.java
ava/util/concurrent/ForkJoinTask.java
ava/util/concurrent/ForkJoinWorkerThread.java
ava/util/concurrent/Future.java
ava/util/concurrent/FutureTask.java
ava/util/concurrent/LinkedBlockingDeque.java
ava/util/concurrent/LinkedBlockingQueue.java
ava/util/concurrent/LinkedTransferQueue.java
ava/util/concurrent/Phaser.java
ava/util/concurrent/PriorityBlockingQueue.java
ava/util/concurrent/RecursiveAction.java
ava/util/concurrent/RecursiveTask.java
ava/util/concurrent/RejectedExecutionException.java
ava/util/concurrent/RejectedExecutionHandler.java
ava/util/concurrent/RunnableFuture.java
ava/util/concurrent/RunnableScheduledFuture.java
ava/util/concurrent/ScheduledExecutorService.java
ava/util/concurrent/ScheduledFuture.java
ava/util/concurrent/ScheduledThreadPoolExecutor.java
ava/util/concurrent/Semaphore.java
ava/util/concurrent/SynchronousQueue.java
ava/util/concurrent/ThreadFactory.java
ava/util/concurrent/ThreadLocalRandom.java
ava/util/concurrent/ThreadPoolExecutor.java
ava/util/concurrent/TimeUnit.java
ava/util/concurrent/TimeoutException.java
ava/util/concurrent/TransferQueue.java
ava/util/concurrent/atomic/AtomicBoolean.java
ava/util/concurrent/atomic/AtomicInteger.java
ava/util/concurrent/atomic/AtomicIntegerArray.java
ava/util/concurrent/atomic/AtomicIntegerFieldUpdater.java
ava/util/concurrent/atomic/AtomicLong.java
ava/util/concurrent/atomic/AtomicLongArray.java
ava/util/concurrent/atomic/AtomicLongFieldUpdater.java
ava/util/concurrent/atomic/AtomicMarkableReference.java
ava/util/concurrent/atomic/AtomicReference.java
ava/util/concurrent/atomic/AtomicReferenceArray.java
ava/util/concurrent/atomic/AtomicReferenceFieldUpdater.java
ava/util/concurrent/atomic/AtomicStampedReference.java
ava/util/concurrent/atomic/Fences.java
ava/util/concurrent/atomic/UnsafeAccess.java
ava/util/concurrent/atomic/package-info.java
ava/util/concurrent/locks/AbstractOwnableSynchronizer.java
ava/util/concurrent/locks/AbstractQueuedLongSynchronizer.java
ava/util/concurrent/locks/AbstractQueuedSynchronizer.java
ava/util/concurrent/locks/Condition.java
ava/util/concurrent/locks/Lock.java
ava/util/concurrent/locks/LockSupport.java
ava/util/concurrent/locks/ReadWriteLock.java
ava/util/concurrent/locks/ReentrantLock.java
ava/util/concurrent/locks/ReentrantReadWriteLock.java
ava/util/concurrent/locks/UnsafeAccess.java
ava/util/concurrent/locks/package-info.java
ava/util/concurrent/package-info.java
f033103ae4405bb2104d9292abd02fb0afbed0d9 01-Aug-2012 Elliott Hughes <enh@google.com> am 164c53dd: am ad9c4690: Merge "Avoid creating suppressedExceptions ArrayList for all Throwables"

* commit '164c53dda8b41dd35177340358e3b227454b01ca':
Avoid creating suppressedExceptions ArrayList for all Throwables
3554ea977fed3444b73d4489c08832d6dda4984c 01-Aug-2012 Brian Carlstrom <bdc@google.com> am 0b545fe3: am c4b50b65: Merge "Include library path information in BaseDexClassLoader for better error reporting in Runtime.loadLibrary"

* commit '0b545fe338b2e2cf1052d1e678a34f538c1ae0e6':
Include library path information in BaseDexClassLoader for better error reporting in Runtime.loadLibrary
0bc7e41e9aec6ec0d4aed987ae4b1debcdf3c4d2 01-Aug-2012 Brian Carlstrom <bdc@google.com> am 5e8b403d: am 8438df1f: Merge "Clean up lint in java.lang.ref."

* commit '5e8b403df2bab1965b0409e986320f165a73fcde':
Clean up lint in java.lang.ref.
c903b283cdcdb6d3eebb7879097a297450d87dec 01-Aug-2012 Brian Carlstrom <bdc@google.com> am b7970886: am 47404489: Merge "Amortize the cost of Class.isEnum in Enum.valueOf."

* commit 'b7970886395c827b0ece6c3eafe76131589451ce':
Amortize the cost of Class.isEnum in Enum.valueOf.
d7dbb7c5627d11d09852b36340cb67316ed0cc6a 01-Aug-2012 Brian Carlstrom <bdc@google.com> am f7e243b3: am 17380a3a: Merge "Improve detail messages for throwers of NegativeArraySizeException."

* commit 'f7e243b3f437953241c5113d023cfc5caec413e4':
Improve detail messages for throwers of NegativeArraySizeException.
254fed99854bd8ce9d5d9f6f9e16d746af3f8f7c 12-Jun-2012 Romain Guy <romainguy@google.com> Take the Buffer's position into account when accessing the array

Prior to this patch, our APIs would take into account a Buffer's position
if it was backed by native memory. The position would not be taken into
account for buffers backed by a Dalvik array.

(cherry-pick of 177714f960fc0c586930e23b4c98341b9b4eef56.)

Bug: http://code.google.com/p/android/issues/detail?id=32588
Change-Id: Id27bc73e4cf44caa4e304fc17a52c4732d2cd97c
ava/nio/NIOAccess.java
a8b15bcac1bd17987118da06f4c63afd8799910d 31-Jan-2012 Ian Rogers <irogers@google.com> Avoid creating suppressedExceptions ArrayList for all Throwables

Suppressed exceptions are a Java 7 feature and therefore unlikely to be
being used. Throwable is the parent of all exceptions, so allocating
memory here is expensive. Make Throwable use Collections empty list when
no suppressed exceptions are present and then create a list when asked
to add a suppressed exception.

(cherry-pick of 24d2b0060b13d953cb5a9f10d7d2198ec3385f85.)

Change-Id: I66e4a755be66493b33c9562a8275c006b601b28e
ava/lang/Throwable.java
75245fcfe3555e4dd06939b9bae366fd3e43b658 02-Apr-2012 Brian Carlstrom <bdc@google.com> Include library path information in BaseDexClassLoader for better error reporting in Runtime.loadLibrary

(cherry-pick of b6a576f43f1c23bb92493590a04bf9c72f092438.)

Change-Id: I6f34862327cf99d8c6f9a7e9aa3aeab47985969b
ava/lang/Runtime.java
2680db46e43b69cc1c49429d371cd1c7512d6f2c 01-Aug-2012 Elliott Hughes <enh@google.com> Clean up lint in java.lang.ref.

Change-Id: Ie54af5965f07e8f0261eaeb5803d718658da2a23
ava/lang/ref/FinalizerReference.java
ava/lang/ref/Reference.java
ava/lang/ref/ReferenceQueue.java
695b2a12fb5420680ab7da33c5ebd683853f4050 17-Dec-2011 Elliott Hughes <enh@google.com> Amortize the cost of Class.isEnum in Enum.valueOf.

(cherry-pick of 1f6a7be67187fa6553f6466c0ec311294149f754.)

Conflicts:

luni/src/main/java/java/lang/Enum.java

Change-Id: Ic4905650dfd8c2b8359ab723955d228771ea27c7
ava/lang/Enum.java
834ce234b54466ba230b3c7199d4363a837c5628 07-Sep-2011 Elliott Hughes <enh@google.com> Improve detail messages for throwers of NegativeArraySizeException.

(cherry-pick of e1766a71541cbc592c6ceb6fe703258bebd9c15e.)

Change-Id: Ib208ac64d26f2969299667d3312eb0fd1fdda3d1
ava/lang/AbstractStringBuilder.java
ava/util/Arrays.java
ava/util/BitSet.java
71e3131a59aeb1c30f6db7bc77e0cfb23e265133 01-Aug-2012 Elliott Hughes <enh@google.com> am ca204483: am 88d8d171: Merge "Fix problem with Runtime.runFinalization()"

* commit 'ca204483669eaf824c19decb05db1d0de31db5f4':
Fix problem with Runtime.runFinalization()
3edd28a92fc86a1260347d0995e65a815d73bbbe 16-Apr-2012 Mattias Petersson <mattias.petersson@sonymobile.com> Fix problem with Runtime.runFinalization()

This is a fix for a problem with runFinalization(). The
problem was that all FinalizerReferences to objects that had
not yet been garbage collected were lost when calling this
function. When a FinalizerReference was lost, it is was not
possible to call the finalize() method when the object
was garbage collected.

The result was that finalizers was sometimes never
called, which typically lead to memory leaks.

Also stop synchronizing on the class itself; use a private
lock instead.

Bug: 6907299
Bug: 5462944 # Synchronization on FinalizerReference.class
Change-Id: Ief515edbb5a1823c06d7371415d131165baef7f2
ava/lang/ref/FinalizerReference.java
d4d0636e2b0ef43e8a7c09917993ffd722b2a8f8 31-Jul-2012 Elliott Hughes <enh@google.com> am 6a2cbb22: am 48b00f0d: Merge "HttpResponseCache should return 504, not 502."

* commit '6a2cbb22c2ac526c71a80bc0ec54e6dac2e22bf6':
HttpResponseCache should return 504, not 502.
48b00f0d52cdce981c197e67e46a61af31d8648f 31-Jul-2012 Elliott Hughes <enh@google.com> Merge "HttpResponseCache should return 504, not 502."
7601b88a8c4dcd91f7a3eb622f806bee12d29eb3 31-Jul-2012 Elliott Hughes <enh@google.com> am 95ca54d1: am 25e65a52: Merge "Fix TimeZone\'s handling of Australia/Lord_Howe."

* commit '95ca54d1ae12653915882f3a3bf16746c676883b':
Fix TimeZone's handling of Australia/Lord_Howe.
fddea0213028dd6d467f316584fac0f6e0745ce9 31-Jul-2012 Elliott Hughes <enh@google.com> HttpResponseCache should return 504, not 502.

The RFC seems pretty clear on this issue.

Bug: http://code.google.com/p/android/issues/detail?id=28294
Change-Id: Ia9a979e1fbbd8b38b1607059c042e0fc9ca44270
ibcore/net/http/HttpEngine.java
78c3de051d68b703af480778c100ca335690b250 30-Jul-2012 Elliott Hughes <enh@google.com> Fix TimeZone's handling of Australia/Lord_Howe.

Australia/Lord_Howe has a half hour difference between standard and daylight
time, rather than the usual hour. Our ZoneInfo implementation ignored this.
Fix that oversight, make SimpleDateFormat actually use this information, and
prevent TimeZone.getTimeZone("GMT") and TimeZone.getTimeZone("UTC") from
being quite as expensive as they accidentally were.

Longer term I think we should probably remove all uses of getDSTSavings from
libcore in favor of TimeZone.getOffset, but this is probably a useful step
forwards anyway. It fixes Australia/Lord_Howe in the meantime and it means
that anyone else who's using getDSTSavings won't be bitten (even if they too
really ought to be using TimeZone.getOffset).

Bug: 4723412
Bug: http://code.google.com/p/android/issues/detail?id=24684
Change-Id: I5d50afecbe1453157e9c8f0b88305a258a3ba2e0
ava/text/SimpleDateFormat.java
ava/util/GregorianCalendar.java
ava/util/TimeZone.java
ibcore/util/ZoneInfo.java
ibcore/util/ZoneInfoDB.java
ca8061f40b6c390eabd7be8f7004e099c33eec7a 30-Jul-2012 Elliott Hughes <enh@google.com> am 1a45a21f: am 0b8dc2e1: Merge "De-pessimize the String(byte[], int, int) constructor."

* commit '1a45a21fa89c42f499bb765c29dea7a85ba157f5':
De-pessimize the String(byte[], int, int) constructor.
bbe3e7f1f8c312fcfbd7af2ecbfa98c48f502c61 30-Jul-2012 Elliott Hughes <enh@google.com> De-pessimize the String(byte[], int, int) constructor.

Also add a few tests.

Before:
0% Scenario{vm=app_process, trial=0, benchmark=_new_String_BII, length=1, name=UTF-8} 155838.96 ns; σ=1179.42 ns @ 3 trials
10% Scenario{vm=app_process, trial=0, benchmark=_new_String_BII, length=10, name=UTF-8} 170741.68 ns; σ=10178.36 ns @ 10 trials
40% Scenario{vm=app_process, trial=0, benchmark=_new_String_BII, length=10000, name=UTF-8} 3867968.18 ns; σ=347173.32 ns @ 10 trials

Change-Id: Ic1a8a46a81faf1afc807cfff132565e87944994b
After:
0% Scenario{vm=app_process, trial=0, benchmark=_new_String_BII, length=1, name=UTF-8} 4563.80 ns; σ=7.13 ns @ 3 trials
10% Scenario{vm=app_process, trial=0, benchmark=_new_String_BII, length=10, name=UTF-8} 6667.55 ns; σ=862.26 ns @ 10 trials
40% Scenario{vm=app_process, trial=0, benchmark=_new_String_BII, length=10000, name=UTF-8} 1836705.08 ns; σ=71293.06 ns @ 10 trials
ava/lang/String.java
ed56457ed970d29101bd4cc7d7e5305a8962928f 30-Jul-2012 Elliott Hughes <enh@google.com> am 8962582b: am b7dd9ee6: Merge "Repair the damage I did removing "useless" checkIndex calls from the asXBuffer adapter classes."

* commit '8962582befb42ab2cfe642ab107d0694f844f84c':
Repair the damage I did removing "useless" checkIndex calls from the asXBuffer adapter classes.
86f5f3e0e2bd808e4c85b0563ae50f17b7d48309 30-Jul-2012 Elliott Hughes <enh@google.com> Repair the damage I did removing "useless" checkIndex calls from the asXBuffer adapter classes.

The checkIndex calls were unnecessary as far as throwing the right Exception
subclass goes, but they're necessary if you want the detail message to use
the units of the wrapping buffer rather than the wrapped buffer. And we want
that. An IndexOutOfBoundsException that says "offset=0, limit=1" is only
going to confuse developers.

(Fixes bug introduced by 26841c0bb838d54fea2e1a06390e413fab561e27.)

Bug: 6085292
Change-Id: I9a1a5991ad383b7712642e40bced9af91440bed2
ava/nio/CharToByteBufferAdapter.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/ShortToByteBufferAdapter.java
6029e96024538f206e65b2961292ccb7567233bb 28-Jul-2012 Brian Carlstrom <bdc@google.com> am f8dd25db: am 044b0dc0: Merge "NullPointerException invoking Field.getModifiers"

* commit 'f8dd25dbf9b9073c8e834652dfcfaebc95c1da49':
NullPointerException invoking Field.getModifiers
bd8dfd99b523583c3b5e662975638643e17874ea 28-Jul-2012 Brian Carlstrom <bdc@google.com> NullPointerException invoking Field.getModifiers

Change-Id: I56c5908d16458d36098ffa7e2dc8c3518280f2e3
ava/io/ObjectInputStream.java
caa1170135505911cdf61ab959008590f4d5ce0f 28-Jul-2012 Brian Carlstrom <bdc@google.com> am 5573369a: am c0e9010d: Merge "Fix HttpURLConnection CloseGuard warning due to lack of close on GZIPInputStream"

* commit '5573369a8a3cff58122a6bc0d5e754c527c3e9fd':
Fix HttpURLConnection CloseGuard warning due to lack of close on GZIPInputStream
c0e9010d03768a745d589e8093fc3d7a056c740b 27-Jul-2012 Brian Carlstrom <bdc@google.com> Merge "Fix HttpURLConnection CloseGuard warning due to lack of close on GZIPInputStream"
8155888a2c4e7cc28596deec28433e1984cfaf11 25-Jul-2012 Brian Carlstrom <bdc@google.com> Fix HttpURLConnection CloseGuard warning due to lack of close on GZIPInputStream

java.lang.Throwable: Explicit termination method 'end' not called
at dalvik.system.CloseGuard.open(CloseGuard.java:184)
at java.util.zip.Inflater.<init>(Inflater.java:82)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:96)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81)
at libcore.net.http.HttpEngine.initContentStream(HttpEngine.java:523)
at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:831)
at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274)
at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:486)
at ...

Bug: 6602529
Change-Id: I9b49cbca561f8780d08844e566820087fdffc4d7
ibcore/net/http/HttpURLConnectionImpl.java
0a59916879540867cc144399b902f9a31375e72b 27-Jul-2012 Elliott Hughes <enh@google.com> am fcf37613: am 88a5c75f: Merge "Fix deserialization of transient fields."

* commit 'fcf376132b8f23ca240951c565ec29e7d64e7a11':
Fix deserialization of transient fields.
05895faacf43e6fd2bcd57baed31832f6888cb31 27-Jul-2012 Elliott Hughes <enh@google.com> Fix deserialization of transient fields.

We need to read field data in the stream, but if the field is (now)
transient, we should just ignore the request to set it.

Bug: 4471249
Change-Id: I5336fdeaaef73e912a48be53af75fd9d1b29fccf
ava/io/ObjectInputStream.java
ava/io/ObjectStreamClass.java
226398eed2ffec9663df2600a9c93cd932ac5099 27-Jul-2012 Elliott Hughes <enh@google.com> am 7a593cd7: am f9b430c6: Merge "Remove useless checkIndex calls from the asXBuffer adapter classes."

* commit '7a593cd77d71a19f3d003a75582b9808d9f3b207':
Remove useless checkIndex calls from the asXBuffer adapter classes.
26841c0bb838d54fea2e1a06390e413fab561e27 26-Jul-2012 Elliott Hughes <enh@google.com> Remove useless checkIndex calls from the asXBuffer adapter classes.

Also add tests that we throw the expected exceptions.

Bug: 6085292
Change-Id: Ibcc44bdb546cba5365cdf557847e068fea77e1ca
ava/nio/CharToByteBufferAdapter.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/ShortToByteBufferAdapter.java
0aee35eef7ebf89173489838ac2e4faef295b85f 26-Jul-2012 Elliott Hughes <enh@google.com> am 1efb060f: am b862a116: Merge "Make ZipFileTest#testHugeZipFile faster, and reduce ZipFile memory usage."

* commit '1efb060ff85ba54ca4f4538a3f687b4c47d0f479':
Make ZipFileTest#testHugeZipFile faster, and reduce ZipFile memory usage.
02e0e9bce2706f0024e6f51275e2834dfacdb570 26-Jul-2012 Elliott Hughes <enh@google.com> Make ZipFileTest#testHugeZipFile faster, and reduce ZipFile memory usage.

This test was timing out because of unbuffered I/O.

ZipFile was creating an unnecessary byte[] when writing out the central
directory. In the case of these tests, that was an extra 3MiB of heap!

(cherry-picked from a57c521b9d250f909508af771b96c0011676a968.)

Bug: 6481730
Change-Id: I923e563421056c9c0e73246357ccf54d8fb60cdb
ava/util/zip/ZipOutputStream.java
a57c521b9d250f909508af771b96c0011676a968 26-Jul-2012 Elliott Hughes <enh@google.com> Make ZipFileTest#testHugeZipFile faster, and reduce ZipFile memory usage.

This test was timing out because of unbuffered I/O.

ZipFile was creating an unnecessary byte[] when writing out the central
directory. In the case of these tests, that was an extra 3MiB of heap!

Bug: 6481730
Change-Id: I75acac35c556ad5fdc8b06bc616c11244d6b6c55
ava/util/zip/ZipOutputStream.java
1c355ebd98ccac05a4daf4d8116e41a0c12971ea 25-Jul-2012 Elliott Hughes <enh@google.com> am a3e83895: am 41b15b85: Merge "Fix URLConnectionTest#test_getAllowUserInteraction."

* commit 'a3e838950bb02074c777fc36493b6ca4c84631e7':
Fix URLConnectionTest#test_getAllowUserInteraction.
27ba483b79c43b169573e4861ebfd664a7c51dce 25-Jul-2012 Brian Carlstrom <bdc@google.com> am 256b1367: am 7d71bf5f: Merge "Tolerate cache files being removed from underneath DiskLruCache"

* commit '256b13671456a45dadc92081d8430962c6bbadbf':
Tolerate cache files being removed from underneath DiskLruCache
41b15b85a105cc74d8e82441c723134dde674e92 25-Jul-2012 Elliott Hughes <enh@google.com> Merge "Fix URLConnectionTest#test_getAllowUserInteraction."
7d71bf5f6d2a501426357709160416a786be40b6 24-Jul-2012 Brian Carlstrom <bdc@google.com> Merge "Tolerate cache files being removed from underneath DiskLruCache"
d3298cd1b4bc69183e96e3cf8fd247e1596b7e07 24-Jul-2012 Elliott Hughes <enh@google.com> Fix URLConnectionTest#test_getAllowUserInteraction.

Also improve the documentation, make it possible to run these tests
individually outside of CTS with vogar, and remove a few more URLs of
external web servers.

We should clean up all tests to remove all reliance on external web servers.

Bug: http://code.google.com/p/android/issues/detail?id=35400

(cherry-picked from 3827b65b1937acfbf3abbc449f8ba0ffc60f3cf3.)

Conflicts:

luni/src/test/java/org/apache/harmony/luni/tests/java/net/URLConnectionTest.java

Change-Id: I4959fefa130290236533be72cce7c57b9ea1e296
ava/net/URLConnection.java
ibcore/net/url/FileURLConnection.java
3827b65b1937acfbf3abbc449f8ba0ffc60f3cf3 24-Jul-2012 Elliott Hughes <enh@google.com> Fix URLConnectionTest#test_getAllowUserInteraction.

Also improve the documentation, make it possible to run these tests
individually outside of CTS with vogar, and remove a few more URLs of
external web servers.

We should clean up all tests to remove all reliance on external web servers.

Bug: http://code.google.com/p/android/issues/detail?id=35400
Change-Id: I28e78b7375ee554b3afe98e5249676e8bbbbec0e
ava/net/URLConnection.java
ibcore/net/url/FileURLConnection.java
459718ce7114a918efcc7d464e4209dbfade6a86 21-Jul-2012 Brian Carlstrom <bdc@google.com> Tolerate cache files being removed from underneath DiskLruCache

Bug: 6777079
Change-Id: I2f950ab6d847dd63061aeb449fc5d46ab9e6c50a
ibcore/io/DiskLruCache.java
ibcore/net/http/HttpResponseCache.java
d532227f413c3c6ec193b78ff8f77c72220eb1e3 24-Jul-2012 Elliott Hughes <enh@google.com> am e71b65f4: am 80cfc0df: Merge "Declare that various Posix methods can throw SocketException."

* commit 'e71b65f47d67b85cd687c361e29a9cf37e47e2e1':
Declare that various Posix methods can throw SocketException.
80cfc0dfe417f58499fadf1dee99e5cfc69f4286 24-Jul-2012 Elliott Hughes <enh@google.com> Merge "Declare that various Posix methods can throw SocketException."
3ff7a80532c9edbcca3331de2b9e87bbf16a0c96 24-Jul-2012 Brian Carlstrom <bdc@google.com> Signature.verify should not throw if called twice

Bug: http://code.google.com/p/android/issues/detail?id=34933
Bug: 6870225

(cherry-picked from 52ec5bcc7d5d042d7ba6d0244d98ee72007a95e4)

Change-Id: I29ee6feb4df9505b1691418a9213fe69f840e1ea
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
fa606655beabb938c84764a39a9c0edabda364d4 24-Jul-2012 Brian Carlstrom <bdc@google.com> am b8b00c84: am d7d09ef0: Merge "Signature.verify should not throw if called twice"

* commit 'b8b00c840d0db2a5fe034a33e8aa2f8bdcd32720':
Signature.verify should not throw if called twice
52ec5bcc7d5d042d7ba6d0244d98ee72007a95e4 24-Jul-2012 Brian Carlstrom <bdc@google.com> Signature.verify should not throw if called twice

Bug: http://code.google.com/p/android/issues/detail?id=34933
Change-Id: Iad18e46729dcd283f4cecd65994ac7b741bd3036
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
bf37bc94d9c56dc47b0b42dc657aad1331d0ec92 24-Jul-2012 Brian Carlstrom <bdc@google.com> am 165b9dc5: am fe1daea1: Merge "Fix OpenSSLSocketImpl.close race"

* commit '165b9dc50bc50f69eef05395edb6e70cdaa85225':
Fix OpenSSLSocketImpl.close race
8f5562a222150d4a7d4763052a7ce0a9bdc6c70d 24-Jul-2012 Brian Carlstrom <bdc@google.com> am e4c50ddd: am e25c9d72: Merge "Provider should enumerate services in the order they are added"

* commit 'e4c50ddd2c245091f0bbe2eb3ab01e7aba7ec808':
Provider should enumerate services in the order they are added
f35af87005578cd704a4912c381e731b64dfa560 24-Jul-2012 Elliott Hughes <enh@google.com> am 65c7df1b: am d44e8b8b: Merge "Clean up ICU error reporting."

* commit '65c7df1be540e232ebf3038664bc1587331adb72':
Clean up ICU error reporting.
fe1daea160b11cbb422e64ad7fc34a7caea32ab5 24-Jul-2012 Brian Carlstrom <bdc@google.com> Merge "Fix OpenSSLSocketImpl.close race"
e25c9d72b136f274c67207698bcc2c8508a59957 24-Jul-2012 Brian Carlstrom <bdc@google.com> Merge "Provider should enumerate services in the order they are added"
df9f5967a3b8dc2f61183d155791393b67980511 24-Jul-2012 Brian Carlstrom <bdc@google.com> Fix OpenSSLSocketImpl.close race

Move the NativeCrypto.SSL_interrupt call within the close
synchronization. Otherwise there can be problems if
NativeCrypto_SSL_interrupt tries to use the SSL* and another thread
has called NativeCrypto_SSL_free.

Bug: 6707288
Change-Id: Id8b0311b10124f2a08f8e0f24595a6ee46805c33
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
26010ab930a2cee3bf10b9612cf070183c21228b 24-Jul-2012 Elliott Hughes <enh@google.com> Declare that various Posix methods can throw SocketException.

Bug: 5177516
Change-Id: Icf2f06c7df6686dd1f54a930bc3fa50b1ce4e1d4
ava/net/PlainDatagramSocketImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
fc7d051b4a8a79687a13228184f03a82270b262b 24-Jul-2012 Brian Carlstrom <bdc@google.com> Provider should enumerate services in the order they are added

Bug: http://code.google.com/p/android/issues/detail?id=21449
Change-Id: Ie520a8b47adab0583ed1c5cb0da7f43c2eb452ee
ava/security/Provider.java
rg/apache/harmony/luni/util/TwoKeyHashMap.java
5ec69b20ab9b3e2dcbe225d548168b09afbbbac2 24-Jul-2012 Elliott Hughes <enh@google.com> Clean up ICU error reporting.

Throw all ICU exceptions from the native side, and include the name of the
function that failed.

Bug: 5037042
Change-Id: I49b5493a7e7365226d612479294b5b8f47ec4e8c
ava/nio/charset/CharsetDecoderICU.java
ava/nio/charset/CharsetEncoderICU.java
ava/sql/DataTruncation.java
ibcore/icu/ErrorCode.java
ibcore/icu/ICU.java
ibcore/icu/NativeConverter.java
005e8053fbb8e315f59d7ea2e5f24a705d7bc7c5 20-Jul-2012 Brian Carlstrom <bdc@google.com> am d5a1479a: am 518cfbc4: Merge "TLS + SNI + proxy => bug : the SNI at the TLS layer is the hostname of the proxy instead of the hostname in the URL"

* commit 'd5a1479abb5fe3e4dddfce09a02fc808b375a148':
TLS + SNI + proxy => bug : the SNI at the TLS layer is the hostname of the proxy instead of the hostname in the URL
4f81a0603dcec28609b762634be603c759a291cd 20-Jul-2012 Brian Carlstrom <bdc@google.com> TLS + SNI + proxy => bug : the SNI at the TLS layer is the hostname of the proxy instead of the hostname in the URL

Bug: http://code.google.com/p/android/issues/detail?id=35050
Bug: 6851038

(cherry-pick from b7705a4629bb74a5bb19d97bf0b4dd4c74cecd9e)

Change-Id: I93d718aa81832bae98209620e98f534ff525c555
ibcore/net/http/HttpConnection.java
b7705a4629bb74a5bb19d97bf0b4dd4c74cecd9e 20-Jul-2012 Brian Carlstrom <bdc@google.com> TLS + SNI + proxy => bug : the SNI at the TLS layer is the hostname of the proxy instead of the hostname in the URL

Bug: http://code.google.com/p/android/issues/detail?id=35050

Change-Id: Ia12f54e0521cf98eac184d80744192c1f782e7c2
ibcore/net/http/HttpConnection.java
cf62d624b9bd679a46b23061e716cf0839c91362 13-Jul-2012 Brian Carlstrom <bdc@google.com> am 5c41f4fc: am f0c85fa1: Merge "CertificateRequest should handle case where certificate is requested but none is available."

* commit '5c41f4fc873fba5c009fb279d10ec3a0172a892f':
CertificateRequest should handle case where certificate is requested but none is available.
f0c85fa16995e1c715c679aea704392a162f493a 13-Jul-2012 Brian Carlstrom <bdc@google.com> Merge "CertificateRequest should handle case where certificate is requested but none is available."
7c935d4e4ca990334200cf5eb4fbcfac718c6b45 04-Jun-2012 gcollins <gcollins@antennasoftware.com> CertificateRequest should handle case where certificate is requested but none is available.

Android SSL client was not handling a CertificateRequest where there was no cert to send.
It had a problem because it was assuming that if the CertificateMessage response is not null,
it means there is a cert included, which is not true (if it has no cert to send an empty CertificateMessage
is sent to the server). So I updated the CertificateVerify creation check to also check whether the CertificateMessage
contained any certs (ClientHandshakeImpl.java).
In testing I found that the same error was in the server code so I made the same change there
(ServerHandshakeImpl.java).
I added two test cases to SSLEngineTest - one to directly test the scenario (test_SSLEngine_clientAuthWantedNoClientCert)
and one to just double-check that the server would not allow the connection if setNeedClientAuth (test_SSLEngine_clientAuthNeededNoClientCert).

Bug: http://code.google.com/p/android/issues/detail?id=31903
Change-Id: Ideb57d6ccbcdd54ca24dc3063e60aba2653c8414
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
9ef8a3b401d67c685c0021a320452677834c97ce 13-Jul-2012 Elliott Hughes <enh@google.com> am 9bedf857: Merge "Rewrite File.mkdirs, improve the documentation, and add tests."

* commit '9bedf8572e9f1d007fbe31e09fd76d1f5989bdcf':
Rewrite File.mkdirs, improve the documentation, and add tests.
9bedf8572e9f1d007fbe31e09fd76d1f5989bdcf 13-Jul-2012 Elliott Hughes <enh@google.com> Merge "Rewrite File.mkdirs, improve the documentation, and add tests."
0b508ebd9f6f3c366c72db3375570c31519b2ece 13-Jul-2012 Elliott Hughes <enh@google.com> am 372d8baa: Merge "Fix Matcher.find(int) to ignore the region."

* commit '372d8baa55fd8b6b67adee3e27bd7aa0058f9851':
Fix Matcher.find(int) to ignore the region.
91cd2eae0c1fd2e04d46876856b33b8324aa8b5f 13-Jul-2012 Elliott Hughes <enh@google.com> Fix Matcher.find(int) to ignore the region.

Also fix the tests, which were wrong.

Bug: 6404568
Change-Id: I8718aab754bdbc87c37d573d19c4999cc3c447ac
ava/util/regex/Matcher.java
fec51846c02116a6ac02fac8ecf8ffb705a74b36 12-Jul-2012 Elliott Hughes <enh@google.com> Rewrite File.mkdirs, improve the documentation, and add tests.

Every time anyone stumbles across the File.mkdirs implementation,
usually because of some other problem, it takes us a few minutes
of head-scratching to convince ourselves that the recusive case
is correct. So let's rewrite it to be a little less unclear.

Also improve the documentation and add some tests. Turns out the
only mkdirs tests were implicit (where it's used for test setup)
or for special cases (like the empty path). Duh.

Change-Id: I78376fb1aaa72223c63c581d18c6682a50c84e23
ava/io/File.java
e322913333b2035f692bff31aa7ea04bbb972d8c 12-Jul-2012 Elliott Hughes <enh@google.com> am fac398fc: Merge "Fix NetworkInterface.getNetworkInterfaces /proc/net/if_inet6 parsing."

* commit 'fac398fc546cfba3392a53055ee016a7b0b9c18d':
Fix NetworkInterface.getNetworkInterfaces /proc/net/if_inet6 parsing.
b0e6dc5464f959b3d42f37b32f4b01767f6fe506 12-Jul-2012 Elliott Hughes <enh@google.com> Fix NetworkInterface.getNetworkInterfaces /proc/net/if_inet6 parsing.

It turns out that some devices can have very large interface indexes,
and my code was incorrectly assuming they'd always fit in 8 bits.

Bug: http://code.google.com/p/android/issues/detail?id=34022
Change-Id: I388a46ffe45f9706a4e28fb3b2975c991a74d419
ava/net/NetworkInterface.java
5655e03a7e10b3201b6814dac7b2f6ac5607ebf2 10-Jul-2012 Jean-Baptiste Queru <jbq@google.com> Merge from AOSP

Change-Id: I83f2ba38dca0fa86e9ff802e5df02311f6bc6e99
43d3954d43004ac875ac8923d894648f18670437 09-Jul-2012 Jean-Baptiste Queru <jbq@google.com> am 64c25bde: Merge from AOSP

* commit '64c25bdea3abb631ddb5ea6f2f2c88ae06c5f653':
Fix SealedObject.readObject.
64c25bdea3abb631ddb5ea6f2f2c88ae06c5f653 09-Jul-2012 Jean-Baptiste Queru <jbq@google.com> Merge from AOSP

Change-Id: Ic2651c490850fffa1efb2db9c51e0a45a4c02f7a
ebac4e8fcafe084009925cfa7526e73fa4ed0487 06-Jul-2012 Vladimir Marko <vmarko@google.com> Improve HttpResponseCache performance.

Avoid writing to HttpResponseCache.CacheRequestImpl.cacheOut
one byte at a time via inefficient FilterOutputStream write.

(cherry-picked from 91cc423115fdfa682d9c4cd025dee06aaa145b3c.)

Bug: 6738383
Change-Id: Ia657d7417cc292746968809f6896a5e790f1394d
ibcore/net/http/HttpResponseCache.java
38846d115b17683a800b76b93c66c24f91cf6d91 09-Jul-2012 Elliott Hughes <enh@google.com> Fix SealedObject.readObject.

Using readUnshared on the byte[]s seems like a reasonable security precaution.
Using readUnshared on the algorithm Strings is just plain wrong.

Bug: http://code.google.com/p/android/issues/detail?id=4834
Change-Id: I73d32a14521de62ce9e19871fd30b619cf3ff6eb
avax/crypto/SealedObject.java
91cc423115fdfa682d9c4cd025dee06aaa145b3c 06-Jul-2012 Vladimir Marko <vmarko@google.com> Improve HttpResponseCache performance.

Avoid writing to HttpResponseCache.CacheRequestImpl.cacheOut
one byte at a time via inefficient FilterOutputStream write.

Bug: 6738383
Change-Id: I342d6dbffeefcf2e778f8f01fd79e367320aa7a7
ibcore/net/http/HttpResponseCache.java
a69960a1f10dac214b8bec3140d20827cbca6c8e 03-Jul-2012 Elliott Hughes <enh@google.com> am 08256ad2: am 3516b603: Merge "Clarify the documentation of the Pattern character classes."

* commit '08256ad205bcbde119f8f7749cdadf7f490f676d':
Clarify the documentation of the Pattern character classes.
8969018c2d094446af3ad42d99c8f9bd0e65c1e6 03-Jul-2012 Elliott Hughes <enh@google.com> am a5bc3af5: am 1f52ec62: Merge "Fix xpath documentation bug."

* commit 'a5bc3af58cf9a650a5074a29f07fc5204f35ab20':
Fix xpath documentation bug.
08256ad205bcbde119f8f7749cdadf7f490f676d 03-Jul-2012 Elliott Hughes <enh@google.com> am 3516b603: Merge "Clarify the documentation of the Pattern character classes."

* commit '3516b6031a4d2fb8901b2378c7287545741e1cab':
Clarify the documentation of the Pattern character classes.
a5bc3af58cf9a650a5074a29f07fc5204f35ab20 03-Jul-2012 Elliott Hughes <enh@google.com> am 1f52ec62: Merge "Fix xpath documentation bug."

* commit '1f52ec627a9b45b83a094c14f75a58edd47e82a6':
Fix xpath documentation bug.
2ec25b742f52a02c393fd6b71a6979557104aaff 03-Jul-2012 Jean-Baptiste Queru <jbq@google.com> am eeddfe47: Merge 55b4312b

* commit 'eeddfe47f90ce73199e57c10d6caa3c1a05dbed3':
Be more careful when parsing custom zone ids.
eeddfe47f90ce73199e57c10d6caa3c1a05dbed3 03-Jul-2012 Jean-Baptiste Queru <jbq@google.com> Merge 55b4312b

Change-Id: I6d8f507514a48396f506bc01cc55c9d3e04c4848
ccbb356138d38f38ffc9cb839bef24fb9088c615 02-Jul-2012 Elliott Hughes <enh@google.com> am 13894501: am 2d289627: Merge "Bring Random.nextGaussian in line with the specification."

* commit '13894501f107e66d6b1b78f0165108d94e9018bb':
Bring Random.nextGaussian in line with the specification.
13894501f107e66d6b1b78f0165108d94e9018bb 02-Jul-2012 Elliott Hughes <enh@google.com> am 2d289627: Merge "Bring Random.nextGaussian in line with the specification."

* commit '2d289627ab856e89795d9e947ffeebe10b34f610':
Bring Random.nextGaussian in line with the specification.
3516b6031a4d2fb8901b2378c7287545741e1cab 02-Jul-2012 Elliott Hughes <enh@google.com> Merge "Clarify the documentation of the Pattern character classes."
eaa9fa7c28da311c3c06e698af7c59f1f1fe24f8 30-Jun-2012 Elliott Hughes <enh@google.com> Fix xpath documentation bug.

Bug: http://code.google.com/p/android/issues/detail?id=26168
Change-Id: Ib6f8b84d174fa884b0eace0305331c7b58e6166a
avax/xml/xpath/package.html
953dfe37db00b2610807c3f895c72183c7ce5b14 30-Jun-2012 Elliott Hughes <enh@google.com> Clarify the documentation of the Pattern character classes.

Android (via icu4c) supports the full Unicode TR-18 definitions
rather than the traditional ASCII-only ones. Document this fact.

Bug: http://code.google.com/p/android/issues/detail?id=21176
Change-Id: If9b94d4e7769ec1ef7c443a7db47bc7586f49b44
ava/util/regex/Pattern.java
13741de404b4fc3b27aac22fb27618d09c86ad4f 29-Jun-2012 Brian Carlstrom <bdc@google.com> am ba4be8f4: am 4ec2d0de: HttpEngine should not attempt to cache proxy CONNECT responses

* commit 'ba4be8f488f5cc416e9914f98e2f5374fa0a004b':
HttpEngine should not attempt to cache proxy CONNECT responses
ba4be8f488f5cc416e9914f98e2f5374fa0a004b 29-Jun-2012 Brian Carlstrom <bdc@google.com> am 4ec2d0de: HttpEngine should not attempt to cache proxy CONNECT responses

* commit '4ec2d0dea800397fb32227e0631246f4d2a73191':
HttpEngine should not attempt to cache proxy CONNECT responses
4ec2d0dea800397fb32227e0631246f4d2a73191 29-Jun-2012 Brian Carlstrom <bdc@google.com> HttpEngine should not attempt to cache proxy CONNECT responses

This fixes an issue where a bad proxy repsonse that included a body
would turn into an IllegalStateException instead of an IOException.

Bug: 6754912

Change-Id: I204ad975820693d6add2780d7b77360463e33710
ibcore/net/http/HttpEngine.java
55b4312b3ae9f694ee90b9709f8b2acec3b34f6d 25-Jun-2012 Elliott Hughes <enh@google.com> Merge "Be more careful when parsing custom zone ids."
91348f798cddae22b59ee1a17bd24315c0897f6f 23-Jun-2012 Elliott Hughes <enh@google.com> Be more careful when parsing custom zone ids.

The old code was allowing invalid ids.

Bug: 6556561
Change-Id: I691d33fa133527a76bbffa4e3b56a023c389ca8f
ava/util/TimeZone.java
68618152969be1144d460add7349f0b89ae8f499 23-Jun-2012 Elliott Hughes <enh@google.com> Bring Random.nextGaussian in line with the specification.

Bug: 6126164
Change-Id: I36d5ccc776b15f7f4085da23c189f91507d57224
ava/util/Random.java
2e7aec9f886cf869089194687154b00b46272dd2 13-Jun-2012 Kenny Root <kroot@google.com> Merge "Add OpenSSL provider for SHA1PRNG"
177714f960fc0c586930e23b4c98341b9b4eef56 12-Jun-2012 Romain Guy <romainguy@google.com> Take the Buffer's position into account when accessing the array
External bug: http://code.google.com/p/android/issues/detail?id=32588

Prior to this patch, our APIs would take into account a Buffer's position
if it was backed by native memory. The position would not be taken into
account for buffers backed by a Dalvik array.

Change-Id: Ibf0bfc14055742ec6ca9f40ab7082f8ae9bca7b6
ava/nio/NIOAccess.java
4718b07e482ccb083ce3dfff228d0615b96a8dd2 12-Jun-2012 Kenny Root <kroot@google.com> Add OpenSSL provider for SHA1PRNG

Change-Id: I45a3c1c0089aa439629e4645f15b16bd35aa6f55
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRandom.java
6c63ef96266d27454bec32abc6607c644c79cba5 07-Jun-2012 Elliott Hughes <enh@google.com> am e89d4a16: am f6574a23: am 63c73584: Merge "Buffer System.in."

* commit 'e89d4a16572937e63068511a7f060d91660d2238':
Buffer System.in.
e89d4a16572937e63068511a7f060d91660d2238 07-Jun-2012 Elliott Hughes <enh@google.com> am f6574a23: am 63c73584: Merge "Buffer System.in."

* commit 'f6574a23180e415abd6acbca74af46b87136eb5c':
Buffer System.in.
f0e583ce305f656c05aa2f7dc2878c2e314d418c 07-Jun-2012 Elliott Hughes <enh@google.com> Buffer System.in.

Android apps won't notice this, but command-line tools will. Console was
already doing this.

Bug: 6603218
Change-Id: I0f65f3154f5e3ec5c49a6a2c4c87f30a846bb008
ava/lang/System.java
8ecba5fd3f3ab30aa57caf917963bed50087ea9c 08-Feb-2012 Elliott Hughes <enh@google.com> Fix an ICS DatagramPacket bug.

(cherry-picked from e50d82455c813210a2d452070f45fd38d9903159.)

Bug: http://code.google.com/p/android/issues/detail?id=24748
Change-Id: Id7772c3f27961c99d3e5e3856e79edb84483dd46
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ibcore/io/IoBridge.java
b9f7735e85f195506179dba55e8fac95077b3ac5 29-May-2012 Jesse Wilson <jessewilson@google.com> am e02d12cf: am 1982194c: Change OpenSSLSocketImpl to forbid empty lists of NPN protocols.

* commit 'e02d12cf46b8f1e871ccb10a02900f36391f080b':
Change OpenSSLSocketImpl to forbid empty lists of NPN protocols.
e02d12cf46b8f1e871ccb10a02900f36391f080b 29-May-2012 Jesse Wilson <jessewilson@google.com> am 1982194c: Change OpenSSLSocketImpl to forbid empty lists of NPN protocols.

* commit '1982194cb9067e3311ac491b4d02a6ead611fd59':
Change OpenSSLSocketImpl to forbid empty lists of NPN protocols.
1982194cb9067e3311ac491b4d02a6ead611fd59 17-May-2012 Jesse Wilson <jessewilson@google.com> Change OpenSSLSocketImpl to forbid empty lists of NPN protocols.

Change-Id: I65d5d7b8d69ddfd551cbbe6da063f5ac277c5f45
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
85e31fb04a8bda12dbee4f45520603b3326a55d6 22-May-2012 Brian Carlstrom <bdc@google.com> am c8c6255f: am c1e57ed7: Revert "Revert "Cut down on object allocation in CipherInputStream""

* commit 'c8c6255fb29d105697c74e012e7355b353fbaade':
Revert "Revert "Cut down on object allocation in CipherInputStream""
c8c6255fb29d105697c74e012e7355b353fbaade 22-May-2012 Brian Carlstrom <bdc@google.com> am c1e57ed7: Revert "Revert "Cut down on object allocation in CipherInputStream""

* commit 'c1e57ed799a4fea200144330823f4acbb5330395':
Revert "Revert "Cut down on object allocation in CipherInputStream""
fed816eb73bbf87e0db15ffdefa809fcfc1c3dc3 21-May-2012 Brian Carlstrom <bdc@google.com> am f95e7a70: am 6b3f9499: Revert "Cut down on object allocation in CipherInputStream"

* commit 'f95e7a7056157e49a6ce9247adeec6be34248f46':
Revert "Cut down on object allocation in CipherInputStream"
52574387c7096b67806865aad5d4b03b90f4f0a0 21-May-2012 Brian Carlstrom <bdc@google.com> am 6da15d17: am 4dda1fc1: Cut down on object allocation in CipherInputStream

* commit '6da15d17a83208f1957f7ac90f3416c5ebb032fd':
Cut down on object allocation in CipherInputStream
c1e57ed799a4fea200144330823f4acbb5330395 21-May-2012 Brian Carlstrom <bdc@google.com> Revert "Revert "Cut down on object allocation in CipherInputStream""

This reverts commit 6b3f9499cf6647263b51741e4187a26a54500072.

Bug: 6523748
Bug: 6478569
Change-Id: Ic422e5fa320995600bdae7a42816652e16b8728b
avax/crypto/Cipher.java
avax/crypto/CipherInputStream.java
f95e7a7056157e49a6ce9247adeec6be34248f46 21-May-2012 Brian Carlstrom <bdc@google.com> am 6b3f9499: Revert "Cut down on object allocation in CipherInputStream"

* commit '6b3f9499cf6647263b51741e4187a26a54500072':
Revert "Cut down on object allocation in CipherInputStream"
6b3f9499cf6647263b51741e4187a26a54500072 21-May-2012 Brian Carlstrom <bdc@google.com> Revert "Cut down on object allocation in CipherInputStream"

This reverts commit 4dda1fc15343339bd075860ce650bb744db3fbf2.
avax/crypto/Cipher.java
avax/crypto/CipherInputStream.java
6da15d17a83208f1957f7ac90f3416c5ebb032fd 19-May-2012 Brian Carlstrom <bdc@google.com> am 4dda1fc1: Cut down on object allocation in CipherInputStream

* commit '4dda1fc15343339bd075860ce650bb744db3fbf2':
Cut down on object allocation in CipherInputStream
4dda1fc15343339bd075860ce650bb744db3fbf2 17-May-2012 Brian Carlstrom <bdc@google.com> Cut down on object allocation in CipherInputStream

Bug: 6478569
Change-Id: I214a9b701d9fbe71be3681298d8c49172bc2f85f
avax/crypto/Cipher.java
avax/crypto/CipherInputStream.java
1f8dd9fd0ac9c1f0470acc787acd8603f73ac4e7 17-May-2012 Elliott Hughes <enh@google.com> am 3b47d62b: Merge "AssertionError(Object) should only initCause if the object is a Throwable." into jb-dev

* commit '3b47d62bc3926a021b34bddea279b375ebd71e99':
AssertionError(Object) should only initCause if the object is a Throwable.
5738251d685059353a185a6de4f40b9b6e4e65d7 17-May-2012 Elliott Hughes <enh@google.com> am 049ddf94: Fix BitSet.nextClearBit.

* commit '049ddf9438b4707faccf7bf01abcc3a24eaf9978':
Fix BitSet.nextClearBit.
3b47d62bc3926a021b34bddea279b375ebd71e99 17-May-2012 Elliott Hughes <enh@google.com> Merge "AssertionError(Object) should only initCause if the object is a Throwable." into jb-dev
89b01dfbae113b1165520fe676ed03df2ddf0207 15-May-2012 Elliott Hughes <enh@google.com> AssertionError(Object) should only initCause if the object is a Throwable.

Bug: http://code.google.com/p/android/issues/detail?id=29378

(cherry picked from commit f3d07392d4fbeb7b6762b08a523431c34fef750a)

Change-Id: I43bd0adad010348004376606335f947d0b8cb912
ava/lang/AssertionError.java
049ddf9438b4707faccf7bf01abcc3a24eaf9978 16-May-2012 Elliott Hughes <enh@google.com> Fix BitSet.nextClearBit.

Bug: http://code.google.com/p/android/issues/detail?id=31036

(cherry picked from commit 431d246358fa832bc2e759fcaec9c4ad9f0b09a7)

Change-Id: If5acc7bbfdba12d98b8a6ef02b887eafa29cb2d8
ava/util/BitSet.java
578aa3c84d5896bdeb045aabc55f591c3f1b3abf 17-May-2012 Elliott Hughes <enh@google.com> Merge "Fix BitSet.nextClearBit."
d8a1521a6188e1c0b942d85578d03cc5c48cbd21 16-May-2012 Jesse Wilson <jessewilson@google.com> am b4265071: am dea827db: Merge "Only use SSL CUTTHROUGH (False Start) if the server supports NPN." into jb-dev

* commit 'b4265071320d3202147e47fdb99e8995ef072e94':
Only use SSL CUTTHROUGH (False Start) if the server supports NPN.
b4265071320d3202147e47fdb99e8995ef072e94 16-May-2012 Jesse Wilson <jessewilson@google.com> am dea827db: Merge "Only use SSL CUTTHROUGH (False Start) if the server supports NPN." into jb-dev

* commit 'dea827db3bfa399cdb539e9bba228ba0eeda25c5':
Only use SSL CUTTHROUGH (False Start) if the server supports NPN.
dea827db3bfa399cdb539e9bba228ba0eeda25c5 16-May-2012 Jesse Wilson <jessewilson@google.com> Merge "Only use SSL CUTTHROUGH (False Start) if the server supports NPN." into jb-dev
431d246358fa832bc2e759fcaec9c4ad9f0b09a7 16-May-2012 Elliott Hughes <enh@google.com> Fix BitSet.nextClearBit.

Bug: http://code.google.com/p/android/issues/detail?id=31036
Change-Id: I45762449b56773cb5eb323bda7728e8c63a50487
ava/util/BitSet.java
974094b04c9a11e2cab02b6268de78c9b65a1014 15-May-2012 Elliott Hughes <enh@google.com> Merge "AssertionError(Object) should only initCause if the object is a Throwable."
f3d07392d4fbeb7b6762b08a523431c34fef750a 15-May-2012 Elliott Hughes <enh@google.com> AssertionError(Object) should only initCause if the object is a Throwable.

Bug: http://code.google.com/p/android/issues/detail?id=29378
Change-Id: I608901eed848ab496b8f54b784216b1362b561d2
ava/lang/AssertionError.java
679ac55c3c037887edfc6ce6f42a23cd7c11cd12 12-May-2012 Jesse Wilson <jessewilson@google.com> Only use SSL CUTTHROUGH (False Start) if the server supports NPN.

We enable cutthrough on the client if the server supports NPN.
We never enable cutthrough on the server because most relevant
protocols (ie. HTTP) are client-speaks-first and those don't
benefit from cutthrough on the server.

I verified this by enabling NPN on both client and server and
checking that the client's Application Data was sent before the
server's Change Cipher Spec. To increase the likelihood of this
otherwise racy situation I put the server in SSL debug mode
after it receiving next_protos_advertised_callback. OpenSSL's
debug mode adds a 1-second sleep before each read and write.

Bug: http://b/6331035

Change-Id: I879b5fb26dc237392a36fe0585c8a6519c0e5220
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
b5947b2362df0c96e6a054f91f4622dc50a290ce 14-May-2012 Elliott Hughes <enh@google.com> am 2f0a3cdc: am f7bd2a99: Work around poll(2) failing with EINTR.

* commit '2f0a3cdc6776f1ff8d31c2180e1d55093185705d':
Work around poll(2) failing with EINTR.
811320db23eb8fa68b0ee8659b4448157a0680a5 12-May-2012 Elliott Hughes <enh@google.com> Add more tests for Object.wait.

Change-Id: Ifd8d80650a2714ead99c6d3426c902728d43b457
ava/lang/Object.java
2f0a3cdc6776f1ff8d31c2180e1d55093185705d 12-May-2012 Elliott Hughes <enh@google.com> am f7bd2a99: Work around poll(2) failing with EINTR.

* commit 'f7bd2a99f6f4024e9034300b30a13a2ea871aa97':
Work around poll(2) failing with EINTR.
f7bd2a99f6f4024e9034300b30a13a2ea871aa97 12-May-2012 Elliott Hughes <enh@google.com> Work around poll(2) failing with EINTR.

This restores the gingerbread behavior, which is arguably pretty annoying too,
but it's what we've always done so less likely to be disruptive.

Bug: 6453247
Change-Id: I22635e36a37cb36cf2b22d1739ab6a28662c9188
ava/nio/SelectorImpl.java
dbe6082dfde421c11972251101590e9422c3912e 10-May-2012 Brian Carlstrom <bdc@google.com> am af732da7: Merge "javax.net.ssl javadoc cleanup" into jb-dev

* commit 'af732da7f0f5b940d50de168c78094a56f5df5b9':
javax.net.ssl javadoc cleanup
0f38eccddbc8ea0ec3e331509d40650ad4b14d45 09-May-2012 Brian Carlstrom <bdc@google.com> javax.net.ssl javadoc cleanup

Change-Id: I8b64831a5f0a160c167eaf3e4bf2dd81fe265f5f
avax/net/ssl/SSLSocket.java
avax/net/ssl/package.html
22eb052a4daf3d45382398e4754dffe3a84347e4 07-May-2012 Selim Gurun <sgurun@google.com> am d71c8470: Merge "Provide key context" into jb-dev

* commit 'd71c8470c187ac3bcd1bcba055bc0389da4eec98':
Provide key context
908975092f7ac7b7562f242c5fd99fbf228acf0f 02-May-2012 Selim Gurun <sgurun@google.com> Provide key context

Bug: 6249185

Make the key context available.

Change-Id: I51967e2a164b3f83d5d5096add7199c3a121da06
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
956c441f163270f6a0657931fc8002e2ec1a91a4 01-May-2012 Brian Carlstrom <bdc@google.com> am 88f3ec9e: NativeCrypto should honor timeout less than one second

* commit '88f3ec9ebfd60998eb321f8c182009dace9bf983':
NativeCrypto should honor timeout less than one second
88f3ec9ebfd60998eb321f8c182009dace9bf983 01-May-2012 Brian Carlstrom <bdc@google.com> NativeCrypto should honor timeout less than one second

Bug: http://code.google.com/p/android/issues/detail?id=29680
Change-Id: I4507a1e9fe37b1c095f7bb4d3e3a55d6d738f7ad
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
b63a1ef368d7b5c28d4867953c44cef99720bdf6 01-May-2012 Brian Carlstrom <bdc@google.com> am 0afb10f6: Avoid session reuse to fix test_SSL_do_handshake_clientCertificateRequested_throws_after_renegotiate for OpenSSL 1.0.1

* commit '0afb10f667ef9c19aa2ea4797af6ba0bc328f148':
Avoid session reuse to fix test_SSL_do_handshake_clientCertificateRequested_throws_after_renegotiate for OpenSSL 1.0.1
0afb10f667ef9c19aa2ea4797af6ba0bc328f148 01-May-2012 Brian Carlstrom <bdc@google.com> Avoid session reuse to fix test_SSL_do_handshake_clientCertificateRequested_throws_after_renegotiate for OpenSSL 1.0.1

Bug: 6229570
Change-Id: I891d10db104fda9978310b8be3420e1729971b27
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
f698461fec300c5e1e9570c882bd5fee0df62aed 01-May-2012 Elliott Hughes <enh@google.com> am 0253fff2: am a42068e9: Merge "BT: Adding support for wrf files to BT OPP"

* commit '0253fff2a77a0db11a1ddd879e222b36aca8a368':
BT: Adding support for wrf files to BT OPP
a42068e945d5c4de5926710d87feaf95969a2001 01-May-2012 Elliott Hughes <enh@google.com> Merge "BT: Adding support for wrf files to BT OPP"
4b2058331094aa5a3b26e65026748ba406594816 30-Apr-2012 Brian Carlstrom <bdc@google.com> Tracking openssl-1.0.1b

Change-Id: I418a5b36670c6cc72e1e6cc29add950409f97f9f
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
ebe87d125b8cc83238914f84f5f7aa799c0d83bd 15-Apr-2012 Brian Carlstrom <bdc@google.com> Use SSL_CTX_set_session_id_context in ServerSessionContext

Without this, OpenSSL with fail when SSLSessions are reused on an
SSLServerSocket when client certificates are requested.

Bug: 6329719
Change-Id: I9b14b32cccee1e5aba1215cebf81eb05a788d63b
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/ServerSessionContext.java
3d74b4bec8543e6e3f89eafe3afe0925f3a69f01 28-Mar-2012 Brian Carlstrom <bdc@google.com> Disable TLSv1.1 and TLSv1.2 by default

Bug: 6234791

Change-Id: I5d829211c9e1d5672fc96e42ef603c53d789e695
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
12b42fd0252d5423e167dbccd2e09b82018b7a5b 28-Mar-2012 Brian Carlstrom <bdc@google.com> Merge "Use WRAP/UNWRAP for key exchange"
b9f9831a0800adbb6b67ab5bdc62292aa034992b 28-Mar-2012 Brian Carlstrom <bdc@google.com> Use WRAP/UNWRAP for key exchange

Bug: http://code.google.com/p/android/issues/detail?id=12955

Change-Id: I1a2be021e0a22ec6a00ba354fb3f19a78c601be9
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
0c224360a4deec32eaf66e5420fbf01790ee2d13 27-Mar-2012 Elliott Hughes <enh@google.com> Merge "Use the release name in Locale's table of releases."
271af435d3f0fd0135aeec7e48d5cd7d5611829d 27-Mar-2012 Elliott Hughes <enh@google.com> Use the release name in Locale's table of releases.

Bug: 5905761
Change-Id: If0fc5fd19bddefd72f216e8c230893b0387fa03d
ava/util/Locale.java
087043baca7e2de81bd10c7955f73f8597d7bb83 26-Mar-2012 Kenny Root <kroot@google.com> Merge "More support for ENGINE-based keys"
beac31ef5949d994a7096f20f12fcf929b06884d 26-Mar-2012 Kenny Root <kroot@google.com> More support for ENGINE-based keys

Tweak some of the parameters for RSA and DSA keys to allow ENGINE-based
keys to exist without needing to define private key material.

Change-Id: Ide2884d6d97636ae2178f8e789eaeec1babd9650
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAParams.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateCrtKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
600dc4949de6bf5608e5f5a5214cde59299b683a 26-Mar-2012 Jesse Wilson <jessewilson@google.com> Don't use the SSL_CTX prefix for a method that takes an SSL.

The implementation is asymmetric: enabling NPN is per-context, but
actually looking up the negotiated protocol is per-SSL. This caused
me to screw up in following the SSL_CTX naming scheme; I applied it
in too many places.

Change-Id: I5bd1be334d513f220086c901527d0b8416f2ba3f
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
3a906b6e3555a999b929a129bc896f3e64afc659 26-Mar-2012 Jesse Wilson <jessewilson@google.com> Merge "Expose NPN in OpenSSL."
25977e422febea04dac9fb9c35d7271d55d3b6b8 23-Mar-2012 Jesse Wilson <jessewilson@google.com> Expose NPN in OpenSSL.

This is derived from costin's change Ib18da136cb628515d6909c438cd0809452d7058a.
It moves the protocols data to the AppData's callbacks so the memory can be
released when the handshake completes.

Change-Id: Id61feaa6f28250e393f5c8093688b099e92dce9c
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
c6d24c6b88ce50c1fa2b9e89253d5839eff1618a 07-Dec-2011 Lukasz Rymanowski <lukasz.rymanowski@tieto.com> BT: Adding support for wrf files to BT OPP

This patch adds support for wrf files to BT OPP.
Proper mime type /application/octet-stream with extension
wrf was added to webkit framework.

Change-Id: I2cdd961a78281129b96fba51d5df37c534c5c893
Signed-off-by: Christian Bejram <christian.bejram@stericsson.com>
ibcore/net/MimeUtils.java
5b7f91c1e6e208187cef57ab8a5de0a7f35e817f 22-Mar-2012 Brian Carlstrom <bdc@google.com> Split OpenSSLRSAPrivateCrtKey from OpenSSLRSAPrivateKey

Change-Id: I6a58044162758b3b74db5d17e9044f97dbe53bae
rg/apache/harmony/xnet/provider/jsse/OpenSSLEngine.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyPairGenerator.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateCrtKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
3e6dd45baa0d7f9b4fa06f4ade76e088b59cc7bf 16-Mar-2012 Brian Carlstrom <bdc@google.com> Tracking openssl-1.0.1

Bug: 6168278

Change-Id: I240d2cbc91f616fd486efc5203e2221c9896d90f
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLRecordProtocol.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
92f87a4de2f7c360a44f0195ef748874a1f4378e 16-Mar-2012 Jeff Brown <jeffbrown@google.com> Remove unnecessary last parameter to nativeExit.

Change-Id: I4c46e643647440fb3606179f773cd202a38a36ce
ava/lang/Runtime.java
95ae73a81948944b24aa4962e9e0ec375fae8467 13-Mar-2012 Kenny Root <kroot@google.com> Merge "Add support for OpenSSL engines"
41e34229c07e8d05090560ff80558fa222623769 09-Mar-2012 Kenny Root <kroot@google.com> Add support for OpenSSL engines

This allows OpenSSL ENGINE to be used for RSA and DSA private key
operations.

Also add in support for directly passing an OpenSSLKey to the
OpenSSLSocketImpl in case we are using ENGINEs.

Change-Id: Ia31735109052a13e421900b69ba5de13bbce0f6f
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLEngine.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
e2fda3eb560dd75b6be16e2a8fce3860ce3c4e0f 12-Mar-2012 Brian Carlstrom <bdc@google.com> Make classes accessible to ParsedHeadersTest

Bug: 5835156

(cherry picked from commit 943036db28577070ae5b5fed5051a2e47d95f6ea)

Change-Id: I7a1a9d7ae7003e54847fb2b0e99cc560e1fe34f0
ibcore/net/http/Challenge.java
ibcore/net/http/HeaderParser.java
b5a0f6db01fc08a7302cb7cc7dd412c7a4e96d9a 12-Mar-2012 Jesse Wilson <jessewilson@google.com> Merge "Fix incorrect documentation for non proxy hosts."
02a01a6ce390976b7c5cea95fe87c3020c797dff 12-Mar-2012 Jesse Wilson <jessewilson@google.com> Fix incorrect documentation for non proxy hosts.

Bug: http://b/6152698
Change-Id: I5b0bd61aeaf8d27c0087210859de1fd2cbcf88d7
ava/net/ProxySelector.java
f52b35a5bc22f53b663ea22954135b69f8636bf4 08-Mar-2012 Brian Carlstrom <bdc@google.com> getPeerHostName should check for null InetAddress

The address can be null for SSLSockets that have not been connected.

Bug: 5835165

(cherry picked from commit cb047c49abcf3b7b5c231b68431c291fe2d81b52)

Change-Id: I12eb92ab0cdb42b89333361a485979c48365d5da
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
ffec9b8990adcdaab295e112ca3c3ebf83488199 08-Mar-2012 Brian Carlstrom <bdc@google.com> Use KeyManagementException with causes to report errors

Before the code would squash excecptions into null values, then turn
the values back into KeyManagementException. Now the code preservers
the underlying exception as the cause of the KeyManagementException.

(cherry picked from commit b6d100ca03dd4c576c6735ce510cecc70d2e6617)

Change-Id: Ia833145839578760ed9b49c626e8d4ab86ceacbe
rg/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
2e86dac8a4a2c2bbffb143cfcf9c0fb0ebc045b0 02-Mar-2012 Nick Kralevich <nnk@google.com> System: incorporate comments from previous review.

Change-Id: Ieb6a4c75389dbafe832db0c3a2efdd133a062e73
ava/lang/System.java
e401d6274863e8e59c5cdfd26b82ec1cdda39c09 02-Mar-2012 Nick Kralevich <nnk@google.com> System: improve setSecurityManager documentation.

Make it clearer that setSecurityManager method always throws
a SecurityException. It's easy to miss the current
"@throws SecurityManager always" line when you're reading the
docs.

Change-Id: Id5475bd952bd4e4a27a0058034c1b508b28a4f0f
ava/lang/System.java
796f0d5a4e7b83c3efc5e587b6766977dc20b0c3 16-Feb-2012 Elliott Hughes <enh@google.com> Fix asynchronous interruption of Socket.connect with a timeout.

Turns out there was one connect variant I hadn't properly addressed.

Bug: http://code.google.com/p/android/issues/detail?id=24318
Change-Id: I7af697bdf6ea17ad1f8ea904d7d8a051ffb970d2
ibcore/io/IoBridge.java
60003bff55e4d9fa936078063bf007ffccc79553 16-Feb-2012 Selim Gurun <sgurun@google.com> Merge "Add a way to clear stored trusted certificates."
7a61ad51ba5f5a0b439b2f3eacb1e0f99f909606 16-Feb-2012 Selim Gurun <sgurun@google.com> Add a way to clear stored trusted certificates.

Bug: 6009802

Update the TrustManagerImpl Api to allow clearing stored certificates.
This is needed so we can remove CAs when credential storage is updated.

Change-Id: I024f7e8b12b60ea0ee35d7f94280e0e3d6db039f
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateIndex.java
b0b6096fa27cb303db1ee9452ef102608c7d813d 16-Feb-2012 Kenny Root <kroot@google.com> Merge "OpenSSL block ciphers, part 1"
68dc9c0f9ea2913a627aa3df81f4956efa48a980 06-Feb-2012 Kenny Root <kroot@google.com> OpenSSL block ciphers, part 1

This implements the NativeCrypto piece necessary to do basic block
cipher operations. More work will need to be done to enable useful
modes.

This gives us the ability to replace BouncyCastle's ECB mode that it
bases the higher level CBC, CTR, etc modes on. However, calling through
JNI to OpenSSL for 16-byte blocks for AES ends up being the same speed
as the Java implementation.

Further enhancements to use large blocks during the JNI call should show
marked improvements in speed.

Change-Id: I594a6d13ce5101a1ef2877b84edaa5e5b65e1e71
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
75cf14944d476670f6f915e5efd849e238a16250 16-Feb-2012 Elliott Hughes <enh@google.com> Throw SecurityException for DNS without INTERNET permission.

When GoogleTV had to work around this for glibc, I realized that maybe I was
the problem, not the C library...

Bug: http://code.google.com/p/android/issues/detail?id=15722
Change-Id: Ia3fbf2f4578ad60d84e538819660c181248f1e1c
ava/net/InetAddress.java
e636ca4d6bd101324bd95fbc817401e6e0b80a2c 15-Feb-2012 Jesse Wilson <jessewilson@google.com> Introduce an ExtendedResponseCache interface.

We had an ugly bug where HttpEngine was inspecting its response
cache's implementation type, and calling stats tracking methods
if that type permitted it.

This worked for all the libcore tests, but not in practice since
the public HttpResponseCache class WRAPS the libcore HttpResponseCache.
The new interface makes the new APIs called by HttpEngine on its
cache explicit, and permits the public android.net.HttpResponseCache
to implement the API.

Bug: http://code.google.com/p/android/issues/detail?id=25418
Change-Id: Ic9697af96635256e7ffc24f86628a85fbe2defd4
ava/net/ExtendedResponseCache.java
ava/net/ResponseSource.java
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpResponseCache.java
ibcore/net/http/ResponseHeaders.java
ibcore/net/http/ResponseSource.java
df29c7dc69965462cd19de8910b04c8cb463e57f 15-Feb-2012 Jesse Wilson <jessewilson@google.com> Don't attempt to parse an HTTP response body on HEAD requests.

Previously if the response had a Content-Length or Transfer-Encoding
header we assumed it had a body. This was untrue of HEAD requests.
This is not a regression.

Bug: http://code.google.com/p/android/issues/detail?id=24672
Change-Id: I264db2014e681a6f8e93cd40b0f1640c95103d21
ibcore/net/http/HttpEngine.java
bdd17cde8cf675f5d5703aad4dfb565932fb4c50 08-Feb-2012 Elliott Hughes <enh@google.com> Fix an ICS regression with hasArray on a JNI-allocated DirectByteBuffer.

Bug: http://code.google.com/p/android/issues/detail?id=24327
Change-Id: Ib31b60fe01e3d0b5a1ed7125ddf047e09fd64056
ava/nio/CharSequenceAdapter.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/ReadOnlyCharArrayBuffer.java
ava/nio/ReadOnlyDoubleArrayBuffer.java
ava/nio/ReadOnlyFloatArrayBuffer.java
ava/nio/ReadOnlyHeapByteBuffer.java
ava/nio/ReadOnlyIntArrayBuffer.java
ava/nio/ReadOnlyLongArrayBuffer.java
ava/nio/ReadOnlyShortArrayBuffer.java
ava/nio/ReadWriteCharArrayBuffer.java
ava/nio/ReadWriteDoubleArrayBuffer.java
ava/nio/ReadWriteFloatArrayBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
ava/nio/ReadWriteIntArrayBuffer.java
ava/nio/ReadWriteLongArrayBuffer.java
ava/nio/ReadWriteShortArrayBuffer.java
ava/nio/ShortToByteBufferAdapter.java
e50d82455c813210a2d452070f45fd38d9903159 08-Feb-2012 Elliott Hughes <enh@google.com> Fix an ICS DatagramPacket bug.

Bug: http://code.google.com/p/android/issues/detail?id=24748
Change-Id: Iafab3a6c55007a47b68af5581148f5556f2fc808
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ibcore/io/IoBridge.java
deae54f894698453552073c9fb760df6db988f24 07-Feb-2012 Elliott Hughes <enh@google.com> Merge "Rely more on the C library level DNS caching."
de2ae30023028e82e4f5ae0c9e88b05649a4c1be 07-Feb-2012 Elliott Hughes <enh@google.com> Fix some list javadoc.

Bug: http://code.google.com/p/android/issues/detail?id=25124
Change-Id: I31ed6818f6828cc0da53aa0c3ca867d88c5f66d3
ava/util/AbstractList.java
ava/util/ArrayList.java
ava/util/LinkedList.java
ava/util/List.java
afd70b773bd938c845a3bb0d9a3e21ec64d4db1a 07-Feb-2012 Elliott Hughes <enh@google.com> Rely more on the C library level DNS caching.

This change:

1. decreases the size of the libcore cache (to 16 hostnames).
2. brings the positive and negative TTLs way down (to 2s).
3. removes the dead code for the broken TTL-setting system properties.

Bug: 5841178
Bug: http://code.google.com/p/android/issues/detail?id=23878
Change-Id: Ib989c72bf3046300b4d59fa5ae49b8fe3ae6c2dc
ava/net/AddressCache.java
ava/net/InetAddress.java
d036721c2ecd146acef9f36408c7a397dd0a0785 03-Feb-2012 Kenny Root <kroot@google.com> OpenSSL keys add hashCode, equals, and toString

Change-Id: I8d0d8eac1e5a4ee455de1ed51bc8b610df1f45d7
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAParams.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPublicKey.java
91bb5fbe55b854df891ff7720e30d42081dbcd58 03-Feb-2012 Kenny Root <kroot@google.com> Throw exceptions on wrong key type in Signature

Our engine can handle both RSA and DSA, but we need to throw an error if
the wrong key type is supplied after we've initialized to emulate other
providers.

Also, apparently OpenSSL is really flexible, because calling
EVP_SignInit had the same effect as EVP_VerifyInit. Change this to be
correct even though the underlying implementation in OpenSSL doesn't
care.

Change-Id: If9223d17909fcf86437b9669c204fc544e6d12ff
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
746a236e2be5dee62c482e27f4c682496d071d8b 01-Feb-2012 Kenny Root <kroot@google.com> Add OpenSSL KeyPairGenerator and KeyFactory

Refactor the way OpenSSL keys are handled so we can generate OpenSSL
keys with the KeyPairGenerator and KeyFactory and pass them around
without keeping the context in the OpenSSLSignature where it originated.

Change-Id: Ib66bd1914e241a240cd97b1ea37e8526998107d9
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAKeyPairGenerator.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAParams.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLDSAPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyFactory.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAKeyPairGenerator.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPrivateKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLRSAPublicKey.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
ad369fb678d4f6148fcb635449f8852906b2a6a7 02-Feb-2012 Elliott Hughes <enh@google.com> Move Array's privates together.

Change-Id: I024d31be92c8b393a546b8cb92bdac051dd8cede
ava/lang/reflect/Array.java
e797642c05dc49ba927af738a36591028fe78656 02-Feb-2012 Elliott Hughes <enh@google.com> Merge "Rewrite java.lang.reflect.Array (now with tests!)."
f449df0090c25793242f3ecc1653b6b0c331be92 02-Feb-2012 Elliott Hughes <enh@google.com> Rewrite java.lang.reflect.Array (now with tests!).

This is the fix for the current failures of dalvik's test 045.

Change-Id: I8e7045f460b4eec0797f921c2337043ad10bd514
ava/lang/reflect/Array.java
5b57eb538f8da8e97cf88a310d75d14dfc91624c 31-Jan-2012 Kenny Root <kroot@google.com> Add signatures to the OpenSSLProvider

Now that OpenSSLSignature is a full-fledged Signature provider, we can
add it to our OpenSSLProvider.

Change-Id: If8539acdf895082cef38eed97a706dbbcdff6853
rg/apache/harmony/security/provider/cert/X509CertImpl.java
rg/apache/harmony/security/utils/JarUtils.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
1dfb8aa653d52268087f450e9b5a865e08b56d98 31-Jan-2012 Kenny Root <kroot@google.com> Add signature generation to OpenSSLSignature

Change-Id: I1203516d95a937edb48959146bbec64b338e4f1e
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
7eeb1d7024f830b89f17489befeb5688624ae6dd 30-Jan-2012 Brian Carlstrom <bdc@google.com> am a5aec70a: am 806d834d: Ensure faster OpenSSLSignature is used when possible by doing proper case insensitive comparison

* commit 'a5aec70ab8db56172804108077d5c9d7d8ced789':
Ensure faster OpenSSLSignature is used when possible by doing proper case insensitive comparison
806d834df24db86be0540ce0846e03fc4d43cb0b 28-Jan-2012 Brian Carlstrom <bdc@google.com> Ensure faster OpenSSLSignature is used when possible by doing proper case insensitive comparison

Bug: 5934554
Change-Id: I640cd54c227df2bf662d484cb2af95ece4d13421
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
1195bd8cc1284f6b772a35185a0f3537fe136163 27-Jan-2012 Andy McFadden <fadden@android.com> Merge "Put daemons in the "system" thread group"
5dcab07aff722be0a065851c462fe9a1cd259674 27-Jan-2012 Andy McFadden <fadden@android.com> Put daemons in the "system" thread group

With this change, the debugger won't show FinalizerDaemon,
FinalizerWatchdogDaemon, and ReferenceQueueDaemon in the lst of
threads when debugging an app. (This is already done for
"internal" threads: Compiler, Signal Catcher, and GC.)

Change-Id: I929b2ce28400a9969e6a389d8972c24a42ee3aa9
ava/lang/Daemons.java
58d229ebb70c7f6018e7b39c004638b9bdd62e31 26-Jan-2012 Jesse Wilson <jessewilson@google.com> Merge commit 'f41105dc' into manualmerge

Conflicts:
luni/src/test/java/libcore/java/net/URLConnectionTest.java

Change-Id: I8f2bd79b02d1c3315e97e36a59497054ec3e1dc2
a468471e8ccc2f642d5b2ae3c75873a74267ece2 26-Jan-2012 Jesse Wilson <jessewilson@google.com> Don't throw needlessly when returning the CacheResponse.

We were throwing under the premise that we'd always have
response headers before we had a cached body. But when the
user calls connect() we'll have queried the cache but we
won't necessarily have response headers from the server yet.
That's because connect() doesn't require a response to be ready.

Bug: http://b/5920659
Cherry-picked from: I9d69b44b5be3d0e29f14d8b83781f6e65c67582a

Change-Id: Ia403b42ddc9783fd1456164f4b7350da3ce80566
ibcore/net/http/HttpEngine.java
f7fac157d0c22e5315b62aad11bb10245afcc932 25-Jan-2012 Irfan Sheriff <isheriff@google.com> Merge "Add support for ARP on RawSocket"
db40744613d500958c8b053b95b032c46540edce 25-Jan-2012 Jesse Wilson <jessewilson@google.com> Fix spelling of ambiguous.

Change-Id: I5948a7bf1e9c485b336d6d498dfcd28bd26248b8
ava/util/TreeMap.java
5f0ed6ed5798a3e6ad642bcd5382b864796cdcb8 25-Jan-2012 Irfan Sheriff <isheriff@google.com> Add support for ARP on RawSocket

Merged from the changes contributed from googletv folks

Change-Id: Ie4c40c96950becbed28fd68cb482d8b3dbebc001
ibcore/net/RawSocket.java
afbdc57f4c6af189aed558cdd1cc1005b5b033af 24-Jan-2012 Brian Carlstrom <bdc@google.com> Merge "Use lenient wildcard matching for *.clients.google.com."
265a2b554dacfa36f8adc5617ec6f05c8e1710f7 24-Jan-2012 Brian Carlstrom <bdc@google.com> Use lenient wildcard matching for *.clients.google.com.

This is an unfortunate workaround until we fix our hostname/cert
misconfiguration.

Bug: http://b/5426333
Change-Id: Ie855d55131412fa96d8b28eca469d1276d96a776
avax/net/ssl/DefaultHostnameVerifier.java
5cef08f71b7fd1282ce3b338f420ae754744925d 23-Jan-2012 Elliott Hughes <enh@google.com> Mention the ICU upgrade and the new CLDR/Unicode versions.

I'll need to come back when "master" becomes an actual release.

Bug: 5905761
Change-Id: Ia4d45ba028c9de0f167cc566c0275ddc955de9ee
ava/util/Locale.java
5b7b7fe6a817fdf058eefd9a716cc58a3283eb05 12-Jan-2012 claireho <chinglanho@gmail.com> Libcore changes for ICU4.8.1.1 upgrade.

This CL includes:
1. Change libcore_icu_ICU.cpp and LocaleData.java to support locale data structures in ICU4.8.1.1.
The new libcore_icu_ICU instantiates ICU objects instead of reading the ICU resource files
directly. This could avoid the code change for future ICU upgrade.
2. Change the libcore tests data caused the test failures from ICU locale data change.

Change-Id: Ia3dfb0a8e5c4ccc2ad110a1ff4211ff97fe5b2ad
ava/util/Currency.java
ibcore/icu/LocaleData.java
9f050bd1d16b822532430c897991e27a58605ff5 11-Jan-2012 Elliott Hughes <enh@google.com> Fix an ICS regression with zip files containing >= 32768 entries.

The usual signed/unsigned 16-bit field problem with zip files. In adding a unit
test I also found two other long-standing bugs:

1. We had O(N^2) behavior when adding files. Someone used an List where they
wanted a Set. Fixed by switching that code over to a Set.

2. We were allowing people to create .zip files with > 64Ki entries but
generating a file that would claim to have (entryCount & 0xffff) entries.
Fixed to throw ZipException until we have proper Zip64 support.

Bug: http://code.google.com/p/android/issues/detail?id=23207
Change-Id: Ice9c9790782639ba50e1ca057bc2cf21a945e147
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
ava/util/zip/ZipOutputStream.java
6fb123c8681a795c65cbd67ffcc0ef641c473288 10-Jan-2012 Elliott Hughes <enh@google.com> Make it clearer that TimeZone.getTimeZone(null) throws NPE on purpose.

Bug: http://code.google.com/p/android/issues/detail?id=24036
Change-Id: I3464dc5094274931d67e3ca4a5bc553fa1a6dc96
ava/util/TimeZone.java
4bbc5de89764a9bcdb62c65be31e0f110578d427 07-Jan-2012 Elliott Hughes <enh@google.com> Cope with network interfaces disappearing while we're enumerating them.

Bug: 5833739
Change-Id: I2af2c3cd9dde66422786345cc22c9297b4b218ae
ava/net/NetworkInterface.java
1f50103c9dfdbc3554b9a4c476668de7514c2a39 07-Jan-2012 Elliott Hughes <enh@google.com> Don't send SIGKILL to a Process that's already exited.

The reporter was complaining about the logging, but I'm more concerned that
we're sending signals to potentially-reused pids.

Bug: 5831831
Change-Id: Ie164cc8cfa27da2b32f0a3ee40b7d3e34974a066
ava/lang/ProcessManager.java
fa16791091df52c2bbc0dd23eb0828f7fdc384b6 05-Jan-2012 Jesse Wilson <jessewilson@google.com> Fix a copy-paste documentation typo.

Change-Id: I1bebb0338c0ef9efad0a9296c3d1881dcd52ebbe
ibcore/io/DiskLruCache.java
3167109e2aa1f9d2b02515bf7a2277ec94e821a2 04-Jan-2012 Jesse Wilson <jessewilson@google.com> Merge "Discourage Serializable."
47f29998eae296ad812d697c8da12e84e394fee2 28-Dec-2011 Jesse Wilson <jessewilson@google.com> Discourage Serializable.

Change-Id: Ic24edcc126ba0e9f580e49cd2a2ba52c96b01744
ava/io/Serializable.java
a9d79f124eb91eab9f7ec8f5fa6b5f64631533a2 04-Jan-2012 Jesse Wilson <jessewilson@google.com> Merge "Rename timestamp to sequenceNumber."
5bfc9b49b4fd0d2f16e759146b8883d2ae9caedb 04-Jan-2012 Jesse Wilson <jessewilson@google.com> Merge "Test enum serialization and deserialization."
72baec6104b80ff6a6b189dc78968f042f0b91ef 04-Jan-2012 Jesse Wilson <jessewilson@google.com> Merge "Update the response cache on a conditional cache hit"
74bf6bb2f673cee8d2efb50b30de86411b586865 04-Jan-2012 Jesse Wilson <jessewilson@google.com> Rename timestamp to sequenceNumber.

Change-Id: If80f56a1bda637d2af7bc7951df43e84b8515629
ibcore/io/DiskLruCache.java
8576f309825e23add080f2a50345ec1884939c39 03-Jan-2012 Jesse Wilson <jessewilson@google.com> Use lenient wildcard matching for android.clients.google.com.

This is an unfortunate workaround until we fix our hostname/cert
misconfiguration.

Bug: http://b/5426333
Change-Id: Id2eddeec5dfa5ef6d2a4125fadbcf7b0e982904f
avax/net/ssl/DefaultHostnameVerifier.java
d2afaee242a56adede5510cd1c6455a5e7dbabe9 02-Jan-2012 Jesse Wilson <jessewilson@google.com> Cleanup verifyHostName to use regionMatches instead of regex splits.

Change-Id: Ic778ab99057d03676c39a2e2126d6f2db1a5747e
avax/net/ssl/DefaultHostnameVerifier.java
6415a22f3fa8bdab5d152eff343756d62f7e90b4 28-Dec-2011 Jesse Wilson <jessewilson@google.com> Merge "Move the frameworks/base hostname verifier into libcore. Part 1/2"
57d73e33dc039f6fff06db52106a358192868060 27-Dec-2011 Jesse Wilson <jessewilson@google.com> Move the frameworks/base hostname verifier into libcore. Part 1/2

This replaces our libcore's DefaultHostnameVerifier.

The frameworks/base verifier is better exercised because it's used by
the browser. The libcore one includes a few dubious behaviors: parsing
toString() and non-standard TLD validation.

Behavior changes in libcore:
- A wildcard cert like *.co.uk would be honored. This would require
a rogue CA. We had a comment documenting that other SSL clients don't
do this.
- Wildcards in substrings like "f*.android.com" are now supported.
- Wildcards match without a child domain: "*.android.com" will match
"android.com".
- If an alt name is present, the CN is not used.
- subject alt name IP addresses are supported.

This also moves the tests into libcore.

Bug: http://b/5619726
Change-Id: Ia952c33f8009ee3c5ed5935ae5f74b6093b1b8e0
avax/net/ssl/DefaultHostnameVerifier.java
avax/net/ssl/DistinguishedNameParser.java
e1a8bc9d68de9c0dde414a3a68a34aab4d8a1a33 27-Dec-2011 Jesse Wilson <jessewilson@google.com> Merge "Don't reuse an SSL socket if the socket factory has changed."
8562bad2be381db05d3e0aed91683a496bc7ee4f 27-Dec-2011 Jesse Wilson <jessewilson@google.com> Merge "Support in-memory HTTPS session caching for wrapped sockets."
5d7e0fc1af3141aa41e9c21d74da3c36b933517f 23-Dec-2011 Jesse Wilson <jessewilson@google.com> Update the response cache on a conditional cache hit

Bug: http://b/4460598
Change-Id: I5f274b2109861b9d2ed59eda8b3e5b4e89fd27b3
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpResponseCache.java
ibcore/net/http/ResponseHeaders.java
99eefb79fa7c150326290c7b8c3d9973be487605 22-Dec-2011 Jesse Wilson <jessewilson@google.com> Give DiskLruCache an API to edit a snapshot.

When an HTTP conditional GET results in a cache hit (ie. 304 Not Modified)
we want to update the cache's HTTP headers with the server's latest.
Unfortunately prior to this change DiskLruCache had no mechanism to
atomically change a snapshot. This change gives us a mechanism to
upgrade from a snapshot (read only) to an editor (read/write).

Bug: http://b/4460598
Change-Id: I1714fe9ce4291d0c5095460173bc4cf6da6ce9ea
ibcore/io/DiskLruCache.java
fa5e8dfe3c7ed144b0fbe69091628dedd6a3b961 21-Dec-2011 Jesse Wilson <jessewilson@google.com> Don't reuse an SSL socket if the socket factory has changed.

Bug: http://b/3042192
Change-Id: Iaa9deb69058afcca4ab79ca6ba745c55d1e9321a
ibcore/net/http/HttpConnection.java
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpsURLConnectionImpl.java
19388c1ccaff3ac404956e2d13a69748c17eee72 20-Dec-2011 Jesse Wilson <jessewilson@google.com> Test enum serialization and deserialization.

We had a tiny bug where we were throwing IllegalArgumentException
instead of InvalidObjectException when an enum constant didn't
match.

Bug: http://b/5364970
Change-Id: I6bff3c63379d74f7a062a4a2096d359d2bc45403
ava/io/ObjectInputStream.java
27c744cc67c7b155bd2d47551205fb1720e7e196 20-Dec-2011 Jesse Wilson <jessewilson@google.com> Support in-memory HTTPS session caching for wrapped sockets.

Previously we couldn't reuse sessions with HttpsURLConnection
because the host was incorrect (getInetAddress returns null
for wrapped sockets) and because the compression method was
different (NULL vs. ZLIB).

This improves HttpsURLConnection request/response time on
localhost from ~275ms to ~145ms (without connection pooling).

Change-Id: I97bc343326658690b00589c0c804c2378b91ae61
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
5757cb35ad2e58d7accb7f5d3db6f2d5e72f097d 16-Dec-2011 Jesse Wilson <jessewilson@google.com> Support multiple challenges for HTTP authentication.

This fixes the problem reported in the bug, but we still need
to give attention to the digest scheme. Currently we can't do
Basic auth if the HTTP response contains both a Digest challenge
and a Basic challenge!

Bug: http://code.google.com/p/android/issues/detail?id=19081
Change-Id: Ifffb307678c2afa0db1d50c1ef5fc49ec7769306
ava/net/Authenticator.java
ibcore/net/http/Challenge.java
ibcore/net/http/HeaderParser.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/ResponseHeaders.java
c74ba3e165f9e2da478bf06580b845382dff89b4 15-Dec-2011 Jesse Wilson <jessewilson@google.com> Merge "Document pre-Froyo bugs in HttpURLConnection"
ab7ae56666faffd5ad7aecfc07500ad5f4983ff2 15-Dec-2011 Jesse Wilson <jessewilson@google.com> Document pre-Froyo bugs in HttpURLConnection

Bug: http://b/5419660
Change-Id: I2742711092593ff70c38eba68f37343bb0eb4aee
ava/net/HttpURLConnection.java
b2b02ac6cd42a69463fd172531aa1f9b9bb887a8 15-Dec-2011 Jesse Wilson <jessewilson@google.com> Change the way we cope with stale pooled connections.

Previously we'd attempt to detect if a connection was stale by
probing it. This was expensive (it relied on catching a 1-millisecond
read timing out with a SocketTimeoutException), and racy. If the
recycled connection was stale, the application would have to catch
the failure and retry.

The new approach is to try the stale connection directly and to recover
if that connection fails. This is simpler and avoids the isStale
heuristics.

This fixes some flakiness in URLConnectionTest tests like
testServerShutdownOutput and testServerClosesOutput.

Bug: http://b/2974888
Change-Id: I1f1711c0a6855f99e6ff9c348790740117c7ffb9
ibcore/net/http/HttpConnection.java
ibcore/net/http/HttpConnectionPool.java
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpURLConnectionImpl.java
49bd35072553aaadfabbc3a09761632897169783 15-Dec-2011 Jesse Wilson <jessewilson@google.com> Document connect attempts by address count, not address family count.

Change-Id: Ie769d0d94909f39501337f516dc44b16c601dc22
ava/net/URLConnection.java
2d9fa917aae6a6da38e9d1eda05841ffdf8855bb 15-Dec-2011 Jesse Wilson <jessewilson@google.com> Document the effect on timeouts of having both IPv4 and IPv6 addresses

Bug: http://b/3441111

Change-Id: Ib4c2e3e0d8d86eb5eb77cf92a0814c7444fd153f
ava/net/HttpURLConnection.java
ava/net/URLConnection.java
ibcore/net/http/HttpsURLConnectionImpl.java
1ce4f4b41b4b52e50bee1f4c4912ccede16877cf 14-Dec-2011 Jesse Wilson <jessewilson@google.com> Improve the text on disabling connection reuse.

Change-Id: I4e91d38e14e293fd2e6ea7fb77a4df72a697da6a
ava/net/HttpURLConnection.java
0613de89655e481fa610bfd4f1bcaeeae3272205 14-Dec-2011 Jesse Wilson <jessewilson@google.com> Document that disconnect() doesn't release sockets.

We could make disconnect() work, but it's a lot of complexity for
little gain. The core problem is that by the time the user calls
disconnect(), the connection has already been pooled. On the RI,
disconnect() will close a socket connection if it hasn't yet been
removed from the pool. Our pooling always-on or always-off behavior
is simpler and more predictable.

Bug: http://b/4148042
Change-Id: I61ef2ccb898f3ffaa08cedc70ee9e728fc1889b9
ava/net/HttpURLConnection.java
a3ddec113793ba6511ad0daade4dabb0a0928857 13-Dec-2011 Jesse Wilson <jessewilson@google.com> Merge "Migrate some reflection tests from frameworks/base/tests/CoreTests"
b73a329097a974c7b3599fba2ed1abb22f02b541 13-Dec-2011 Jesse Wilson <jessewilson@google.com> Merge "Fix serialization of reverse-ordered TreeSets."
a0ee76b0850774edeb0c67204070b89d117573bc 13-Dec-2011 Jesse Wilson <jessewilson@google.com> Migrate some reflection tests from frameworks/base/tests/CoreTests

This found a problem where Method.toString() was returning "[C" for
char arrays rather than "char[]". Sadly the RI doesn't use either
getName() or getCanonicalName(). That problem was introduced with the
fix for http://b/3073292

Bug: http://b/3073226
Change-Id: I7c2b0ebfc1718f7f0e8da55bdefd13a8e4032a45
ava/lang/reflect/AccessibleObject.java
ava/lang/reflect/Constructor.java
ava/lang/reflect/Field.java
ava/lang/reflect/Method.java
94fab96cd4c1bd4363ba1d70b59475132ddd441e 13-Dec-2011 Jesse Wilson <jessewilson@google.com> Fix serialization of reverse-ordered TreeSets.

Bug: http://b/5552608
Change-Id: I949c2ab11fea391987217dfd5f8dad0cd3fe3fbf
ava/util/TreeMap.java
996586703c232bd6afcae5e641c4fb6a9190013b 13-Dec-2011 Jesse Wilson <jessewilson@google.com> Merge "Refer to Android ICS by its version in URL docs."
64785533018893463bbab2e34959879bac446c8d 13-Dec-2011 Jesse Wilson <jessewilson@google.com> Refer to Android ICS by its version in URL docs.

Bug: http://b/3408201
Change-Id: I03940a60af4650181dc6e5ceae712c06f8e61f84
ava/net/URL.java
31a63ef0abc2e23fcf7a3b762c513505f8ceeda9 12-Dec-2011 Jesse Wilson <jessewilson@google.com> Don't wake up the watchdog unless there's something to finalize.

Bug: http://code.google.com/p/android/issues/detail?id=22778
Change-Id: Ib157268dccc32c86af91589a851e90ae67fd74d7
ava/lang/Daemons.java
064280307728e963cd9bf08796c8863127254ff0 29-Nov-2011 JP Abgrall <jpa@google.com> am 4ff58546: libcore: BlockGuard: untag socket on close

* commit '4ff585466887785d48c02d14a15dcde64934442b':
libcore: BlockGuard: untag socket on close
32c000e63448fd4f349f211e04c34fc2b3a98559 29-Nov-2011 Jesse Wilson <jessewilson@google.com> Address code review comments on new SoftReference documentation.

Change-Id: I8802ad2738c90971e2f5e38c5376305597178700
ava/lang/ref/SoftReference.java
8d00cadf307fdc50c6d425caba7cd43820a0d378 26-Nov-2011 Jesse Wilson <jessewilson@google.com> Merge "Document the perils of SoftReferences."
132829c52b75a39c05b5ab06199aeb39b28abc40 25-Nov-2011 Jesse Wilson <jessewilson@google.com> Document the perils of SoftReferences.

Bug: http://code.google.com/p/android/issues/detail?id=20015
Change-Id: I4fada388ff2d1bdeff8f1ffca09024739df4f58e
ava/lang/ref/SoftReference.java
ecd3536488a6b5cbbe30104370c8fbd7d941a8cd 25-Nov-2011 Jesse Wilson <jessewilson@google.com> Don't check available() when testing if a socket is stale.

When the HTTP server is well behaved, available() will always
return 0. Any other result would be necessarily bogus; the server
doesn't know what the client is going to request. So this check
wasn't adding anything.

Removing the check has a pleasant side effect of fixing
URLConnectionTest#testServerShutdownOutput, which is failing due
to a bug in PlainSocketImpl.available().

Bug: http://b/5534202
Change-Id: I1c567e91c2bcbe3884dfbefe77ce4b0201a2c0d6
ibcore/net/http/HttpConnection.java
4ff585466887785d48c02d14a15dcde64934442b 22-Nov-2011 JP Abgrall <jpa@google.com> libcore: BlockGuard: untag socket on close

java.net.Socket creates the socket on connect(). But in case of failure
during the connect() it closes the socket.
During the create, BlockGuard's socket() is the one tagging the socket.
But in case of failure, nobody untags that socket.
So now we untag scokets on close() in BlockGuard

Bug: 5274621
Change-Id: I282665a05e2dc184df77c84ceab49fb55b7695af
ibcore/io/BlockGuardOs.java
03aaa13a6c9eb7912d903ebbd792f6c303b43757 15-Nov-2011 Jesse Wilson <jessewilson@google.com> Merge "Don't fail GeneralName parsing if the DNS name contains a wildcard."
8626012f833cada8b06c3d82860d2dbe4107ce7a 15-Nov-2011 Jesse Wilson <jessewilson@google.com> Don't fail GeneralName parsing if the DNS name contains a wildcard.

This doesn't impact host name validation, which reparses the DNS name
into component parts and uses strict wildcard matching rules against
a particular host name.

Bug: http://b/issue?id=5534658
Bug: http://code.google.com/p/android/issues/detail?id=21311
Change-Id: Iaeaf72a6f8b9ebd9ee2fe68f1bc7830f174f2310
rg/apache/harmony/security/x509/GeneralName.java
d0d626655f1d452070d3116678037e8759f807f4 10-Nov-2011 Jesse Wilson <jessewilson@google.com> Don't NullPointerException when a URL contains a space.

We end up creating a URI of http://and%20roid which has no host
name part because and%20roid is not a valid host name. It's unclear
where the best place to fail is. This is consistent with the RI
which doesn't fail until it attempts to connect.

Bug: http://code.google.com/p/android/issues/detail?id=16895
Change-Id: Ifa4dc3c651f4627e27622ed5cedfa820f9a35358
ibcore/net/http/HttpConnection.java
e3df4987da1cc4af786b54e6a446687ec148d5a9 24-Oct-2011 Brian Carlstrom <bdc@google.com> Move OpenSSLSocketImpl.close resource cleanup into a finally clause

Bug: 5466273

(cherry picked from commit d3433cea484f380ab2c889c10e9d9d3268046a6c)

Change-Id: I8618be21a2227d66ea66352342b530906605160f
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
9e79136b626db72b0d80705a9417f5e81d38b400 29-Oct-2011 Elliott Hughes <enh@google.com> Merge "Improve the documentation of toString methods in the java.net package."
10914811ea02b4acc7ab1dc5a0ada1b54cdf2203 29-Oct-2011 Elliott Hughes <enh@google.com> Improve the documentation of toString methods in the java.net package.

A developer wanted to know why their InterfaceAddress string began with a "/",
which wasn't obvious from our crappy documentation. This kind of thing should
always include examples, so let's include some examples...

Change-Id: Ic0a555c880e7f2dd31e4801926523f1aa96461c8
ava/net/InetAddress.java
ava/net/InetSocketAddress.java
ava/net/InterfaceAddress.java
ava/net/NetworkInterface.java
783631d82682027beaf80540ab08912fd56fea0c 29-Oct-2011 Jesse Wilson <jessewilson@google.com> Add a mode to UriCodec to handle invalid URLs without throwing.

Bug: http://code.google.com/p/android/issues/detail?id=21064
Change-Id: I0c0003bbacc5b9680d9f699134c02648e0d6dbea
ava/net/URLDecoder.java
ibcore/net/UriCodec.java
0bc188affdcfebaa9bc6c16f0c1de98c734d3c2e 27-Oct-2011 Marc Blank <mblank@google.com> Add pfx extension as "application/x-pkcs12"

* This is what MS Exchange uses when it creates user certificates,
and the Email/Exchange application need to know about the
extension -> mime type mapping

Bug: 5524693
Change-Id: Ie17308070e9ec32446cb6071775b5570f4b40c23
ibcore/net/MimeUtils.java
d3433cea484f380ab2c889c10e9d9d3268046a6c 24-Oct-2011 Brian Carlstrom <bdc@google.com> Move OpenSSLSocketImpl.close resource cleanup into a finally clause

Bug: 5466273

Change-Id: I64758dfd3ca1c35d08616c63982223d84fdc2759
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
e8e19f6476b30ccf9f69925c10ce62efdba4e62a 21-Oct-2011 Elliott Hughes <enh@google.com> Cope with fstat(2) failures during close.

Whatever the root cause of the fstat(2) failure, we should still attempt the
requested close(2) --- even if it's just going to fail in the same way the
fstat(2) did.

Bug: 5407056
Change-Id: Ie988d1b1ebdb6b378fb537b2f56245fab568ee7c
ibcore/io/BlockGuardOs.java
45273a0346df3d08c9c7bbf84cc1474192703df1 19-Oct-2011 Brian Carlstrom <bdc@google.com> Merge "Add mime types used by Google Earth"
9abfeacace939c457393b718f146072e83304446 19-Oct-2011 Brian Carlstrom <bdc@google.com> Merge "Fix backwards Engine cache test" into ics-mr0
17b6b6b0535f9ef8cec04e21b818fedd3bf9ff33 19-Oct-2011 Brian Carlstrom <bdc@google.com> Fix backwards Engine cache test

Also fix SignatureTestMD2withRSA to clean up its test provider.
Add context information on failures to CertificateTest.

Bug: 5479141
Change-Id: I9a5ce60cfda63cfc418e72464eb1d3ef81dab0c0
rg/apache/harmony/security/fortress/Engine.java
3e9485649f38c67763d6ffeecb3614c991d8aede 17-Oct-2011 Julien Mercay <jmercay@google.com> Add mime types used by Google Earth

Change-Id: If10cf39515472969a2e57e9a1e00dead818fe771
ibcore/net/MimeUtils.java
09947fcafbd3cccda9ad25e75af173b24f1c10be 14-Oct-2011 Jesse Wilson <jessewilson@google.com> Fix Arrays Javadoc to be consistent with parameter names.

Change-Id: I1b1d9013f99fe32b496696a4e1cbb5afcc73be6c
ava/util/Arrays.java
c8ed4009f3ade95e6cf9ade8cfd1b08f90a8690f 14-Oct-2011 Jesse Wilson <jessewilson@google.com> Clean up exception throwing in Arrays.

Change-Id: Ie002ba1cd1c681b83c7a8d4e8d4f96b7c0350eef
ava/util/Arrays.java
bdd37a76ddfd92d6716127e025ba9cf733e66fc4 30-Sep-2011 Jesse Wilson <jessewilson@google.com> Merge "Fix chunked input stream's available() method to never return -1."
25a753691a80186cd4d7086b12c0e52225d95897 30-Sep-2011 Jesse Wilson <jessewilson@google.com> Fix chunked input stream's available() method to never return -1.

Change-Id: I6ea268e469675ef890010282dbe35ed5838cca73
http://code.google.com/p/android/issues/detail?id=20442
ibcore/net/http/ChunkedInputStream.java
8f0e611282bccb0a96b716c40cda4d1ba31545b2 30-Sep-2011 Elliott Hughes <enh@google.com> Merge "Fix a couple of isReachable bugs."
9b4a8ec37805be3eabf3a4b443bbdb692ffa2608 30-Sep-2011 Elliott Hughes <enh@google.com> Fix a couple of isReachable bugs.

We shouldn't throw NPE if you call isReachable on a deserialized InetAddress.
Fixed by removing the "globals", which also fixes the unreported bug that
calling isReachable on the same InetAddress was not thread-safe.

Bug: http://code.google.com/p/android/issues/detail?id=20203

Also, the arguments to isReachableByTCP in isReachable(NetworkInterface, int, int)
were the wrong way round, which meant we'd always return false (unless you were
asking if localhost was reachable).

Bug: http://code.google.com/p/android/issues/detail?id=20107

Bug: 2497441
Bug: 3213503

Change-Id: Ic808e774c28be6487e30e6acb8bc06f766f5c71d
ava/net/InetAddress.java
75467999615eb61949feecf0bcb205d7dc9e2f35 30-Sep-2011 Elliott Hughes <enh@google.com> Set the ZIP central directory UTF-8 bit.

I still don't see anything in the specification, but I can confirm
that real-world tools like unzip(1) don't like not having this bit
set. (Interestingly, "unzip -l" doesn't complain, but "unzip" does.
I usually test filename stuff with the former, so I never noticed
this gingerbread regression.)

Bug: http://code.google.com/p/android/issues/detail?id=20214
Bug: 4964868
Change-Id: I42d340d8b71a309285cf2bec3e938d07e05e9201
ava/util/zip/ZipOutputStream.java
92cb29d71ca8fadc9b738a33e63ca39807647463 30-Sep-2011 Elliott Hughes <enh@google.com> s/Ipv6/IPv6/

Change-Id: I59cacdbde1fe65b849d542f8faa8c0c2c0f5cddf
ava/net/InetAddress.java
a7428d68453f6a74633221e8714f8d3d9597b2b4 29-Sep-2011 Elliott Hughes <enh@google.com> Fix the InetAddress/Inet4Address/Inet6Address documentation.

Also simplify a few of the implementations, and add a few tests.

Bug: http://code.google.com/p/android/issues/detail?id=19165
Change-Id: If33d5a830068114edf722711333bf0e00098d91a
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ed79eabe3c220b66c07743ba6495c342a4b3eaf7 14-Sep-2011 Jesse Wilson <jessewilson@google.com> Give InputStream/OutputStream decent documentation.

The previous docs made it much too easy to miss the critical 'requirement'
that read(byte[],int,int) should be overridden.
http://code.google.com/p/android/issues/detail?id=7933#c36

Change-Id: I2c4e0e18026a93b8e994d4448be35114bd5f20bc
ava/io/InputStream.java
ava/io/OutputStream.java
36c0b8ec5c0bb78e5cbd4196ef24f3ad2a06e714 13-Sep-2011 Jesse Wilson <jessewilson@google.com> Merge "Discourage developers from catching subclasses of SocketException."
2ca11d6eae460f94bc42bc2e453fac93f4b94eb0 13-Sep-2011 Jesse Wilson <jessewilson@google.com> Discourage developers from catching subclasses of SocketException.

We recently had a bug in Apache HTTP client where catching a
specific exception subclass caused incorrect behavior. Apache HTTP
expects a ConnectException but we're throwing its superclass,
SocketException. Unfortunately I don't think fixing this to throw
ConnectException is any better; the best I can tell from the spec
this should be throwing a NoRouteToHostException which would still
fail on Apache HTTP client. I'm going to fix that code to catch the
appropriate type.

Bug: http://b/5293809
Bug: http://b/4411922
Change-Id: I189408f6e2355475510fb817c97017e7bae1739e
ava/net/BindException.java
ava/net/ConnectException.java
ava/net/NoRouteToHostException.java
ava/net/PortUnreachableException.java
ibcore/io/ErrnoException.java
ibcore/io/IoBridge.java
be0b5bd592bed1edaed2447e7ab1764b93eceaab 13-Sep-2011 Jesse Wilson <jessewilson@google.com> Make socket channel address available after bind().

This regression was found by a harmony test:
org.apache.harmony.nio.tests.java.nio.channels.SocketChannelTest#testSocket_bind

Change-Id: Idb1089fb96b17673cf78903d935cb729722fda33
ava/nio/SocketChannelImpl.java
0cc5d1a7f7cf413f2fa09118c9369fecdae9ab7b 25-Aug-2011 Jeff Sharkey <jsharkey@android.com> Merge "Return real FileDescriptor in Socket wrappers."
3267a46b52d848e1e9e20c226512688f0c50d4c3 25-Aug-2011 Jeff Sharkey <jsharkey@android.com> Return real FileDescriptor in Socket wrappers.

In classes that wrap another Socket, return the real FileDescriptor
from the wrapped Socket.

Bug: 5189186
Change-Id: I157feb6991def9110eaf0ea82365b6f5b95b9372
ava/net/Socket.java
ava/nio/SocketChannelImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketWrapper.java
3f011a30fa4c8d640fc8388099e46acff940516a 24-Aug-2011 Brian Carlstrom <bdc@google.com> CipherSpi.engineUpdate should handle null engineUpdate result

Bug: 5205819
Change-Id: I06af9d59485126579266af062c3a81a8ac36b1f5
avax/crypto/CipherSpi.java
df84cec32f3c1f71ea781e5f851724d84c35e620 18-Aug-2011 Jesse Wilson <jessewilson@google.com> Fix JarInputStream Manifest parsing.

I recently broke JarInputStream by changing Streams.readFully()
to unconditionally close the input stream when it was exhausted.
Although most streams won't return data after read() returns -1,
both JAR and ZIP streams can return data after a call to get the
next entry.

Change-Id: I2fcef44aaeae0ac27c9fa5a7a4996c5b1b794964
ava/util/jar/Manifest.java
ibcore/io/Streams.java
ed211506be4a0985678cf099282ed8fe851868fb 15-Aug-2011 Jesse Wilson <jessewilson@google.com> Make HTTP implementation details public for CTS tests.

Our testing tools cannot normally test package-private APIs
because the tests are loaded in a different class loader than
the production classes. This is an unfortunate workaround.

Change-Id: Ic8d9d3088887bccceaf166959468cd52bfef9aae
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpResponseCache.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/HttpsURLConnectionImpl.java
ibcore/net/http/RawHeaders.java
ibcore/net/http/RequestHeaders.java
ibcore/net/http/ResponseHeaders.java
560d3756e9a8e95ed3aba6043118e89f87966522 14-Aug-2011 Jesse Wilson <jessewilson@google.com> Don't use getClassContext() to get the calling classes.

This weird, surprising behavior used the entire call stack as
context to lookup resources. This is the wrong solution to the
problem; context class loader is the right solution. And the
code is already using context class loader.

This change prevents some tests from failing with an NPE when
iterating the null class context.

Change-Id: Ic2419dc22f66a4fa8cceaee4746ef1a6d7d4680c
ava/util/logging/Logger.java
cf216b0bb538b3e555af205f4fad8064331b9265 12-Aug-2011 Jesse Wilson <jessewilson@google.com> Use the application's class loader for URL stream handlers.

We had a test URLStreamHandlerFactoryTest.testInstallCustomProtocolHandler
that was failing when run in an APK without this fix. The new behavior
is definitely what Android applications will want!

Change-Id: I2266a8aea6da833022b538c1f424a3099684d992
ava/net/URL.java
9c8130231a0e1c2a5ded68e99f782427bb5326fa 11-Aug-2011 Elliott Hughes <enh@google.com> Use Libcore.os.fstat to recognize socket FileDescriptors in BlockGuard.

Exception throwing is pretty slow, and BlockGuard's isLingerSocket
causes us to throw whenever we close a non-socket fd. Avoid that
by adding a cheap test for socket fds and only calling isLingerSocket
on socket fds.

Bug: 4972558
Change-Id: Ib18d6c0c091cb366f953d7467e83fad570bb3457
ibcore/io/BlockGuardOs.java
41a123f449a44e4e1aff15770165731332a7d1dc 10-Aug-2011 Elliott Hughes <enh@google.com> Fix Character's javadoc table of Unicode categories.

The Format, Private Use, and Surrogate categories were all claimed to be
Cf. The error was only in the summary table. The javadoc for the individual
categories was correct.

Bug: http://code.google.com/p/android/issues/detail?id=18942
Change-Id: Ifde47a85fbc84dbec05408f6581331ab4a8d275a
ava/lang/Character.java
892c36b1c1eee25ad46bac6fffdf129219a5e98d 29-Jun-2011 Philip Milne <pmilne@google.com> Remove the contentEquals() method that was added to java.lang.String.

The public (though hidden) method contentEquals(char[], int, int)
was added to java.lang.String to avoid creating large numbers
of Strings during XML parsing.

That objective is preserved with this change, which uses a private
static method with a similar implementation that goes through the
regular String API.

Change-Id: I808e1ebc4ef6812dd651682628167b4c078af334
ava/lang/String.java
ibcore/internal/StringPool.java
1886a753937276e626acc42b44d878a5e0a50284 29-Jul-2011 Jesse Wilson <jessewilson@google.com> Restore the 'final' bit on DataInputStream.read() (libcore)

This was lost in a recent refactoring.

Change-Id: I6f625060192350636de7998a980a5c0f6cdc16c3
ava/io/DataInputStream.java
0631922690f57fc2d7ae14f26fc6d721a08ae6b4 29-Jul-2011 Jesse Wilson <jessewilson@google.com> Merge "Only permit square brackets on IPv6 addresses."
e578a6d662dc9b0166941cce6b26e17a47848c1e 29-Jul-2011 Jesse Wilson <jessewilson@google.com> Merge "Update both SSLSessions to not use AccessControlContext."
98c564c72480313ae2954a7f0b666ff94345a2f1 25-Jul-2011 Jesse Wilson <jessewilson@google.com> Only permit square brackets on IPv6 addresses.

We were failing two tests in URLTest because we were accepting
IPv4 addresses and host names.

Note that in the RI, URL is extremely lenient on validating the
characters in the parts of a URL. It permits any character in any
part except for the delimiter characters like '/' or ':'. The
lax IPv6 check 'does it contain a colon?' is consistent with the
RI.

Change-Id: I957f2ee610b72cf68a7773b4c02a4b6d5fcbb9de
ava/net/URLStreamHandler.java
29b3bd4475263c4a16c6850d45aca045ed4a926a 24-Jul-2011 Jesse Wilson <jessewilson@google.com> Update both SSLSessions to not use AccessControlContext.

When we fully removed the security manager security theatre
we broke 'equals' on some AccessControlContexts that were used
in map keys. Now we don't include the AccessControlContexts in
the map keys.

This fixes this test:
tests.api.javax.net.ssl.SSLSessionBindingListenerTest#test_valueUnbound

Change-Id: I685416c65056c9c540bf75c4aab5e884b66a4394
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
250e0d89cc3f5d2fc03ed23961c774c02f825ffd 20-Jul-2011 Jesse Wilson <jessewilson@google.com> Use nanoTime rather than currentTimeMillis in ReferenceQueue.remove()

Some other side effects of this change:
- we no longer make a time lookup when we don't need to
- we time out after 'n' milliseconds, not 'n+1' milliseconds
- we duplicate code from Thread.join(). I opened http://b/5053948 to dedup this.

Bug: http://b/5050245
Change-Id: I20375119cfa06be559b6aa5c209375b3d3a541f9
ava/lang/ref/ReferenceQueue.java
b1f55cb6f95928be969a8fe5c7447e13f14d0a68 19-Jul-2011 Elliott Hughes <enh@google.com> Fix FileInputStream/FileOutputStream on unowned FileDescriptors.

We were relying on the fd being invalid to prevent us from performing
activity on a closed stream. Unfortunately, this didn't work with our
clever scheme to avoid having to treat the two cases separately.

Go back to a simple scheme with one FileDescriptor and a boolean that
tells us whether or not we should close it. If we don't close it, we
switch it out for an invalid FileDescriptor so we won't continue to
act on the unowned FileDescriptor.

Bug: 4361076
Change-Id: I1851926fd2847ea63d91a8e0680a7430ecb16453
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
487c58a9ff0cb4c6e074b2f5d99a0c3efa54fa37 16-Jul-2011 Brian Carlstrom <bdc@google.com> Replace NativeCrypto.verifySignature with OpenSSLSignature

Bug: http://code.google.com/p/android/issues/detail?id=18458
Bug: 5037994
Change-Id: Ie9521df80b3b50e69b5cf9e6f8eb861845b4d30e
rg/apache/harmony/security/provider/cert/X509CertImpl.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
fa28df0d3ecd45625ae816f07303eca0821bea46 13-Jul-2011 Elliott Hughes <enh@google.com> Fix BigInteger.hashCode.

Only the first 'numberLength' ints in 'digits' should be considered part
of the BigInteger. All other 'digits' accessors appear to be correct.

Bug: http://code.google.com/p/android/issues/detail?id=18452
Change-Id: Icb0ffeedc92b15a2ef9dacedf79ec6a1584f60f3
ava/math/BigInteger.java
6611bab7cb4ace7320a0584c4777f86a0da17e72 07-Jul-2011 Brian Carlstrom <bdc@google.com> Merge "Avoid NullPointerException with IoUtils.closeQuietly"
eda571883445b108e7f9e7337e2d80f1d8329fc8 07-Jul-2011 Brian Carlstrom <bdc@google.com> Avoid NullPointerException with IoUtils.closeQuietly

Change-Id: Ibe9ab00205701ad5eaeb3b4299f1fe4508625d1b
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateStore.java
0409667e1f87d26710bd8d42dcf81002fee57523 07-Jul-2011 Jesse Wilson <jessewilson@google.com> Merge "Fix a performance regression in XML documents with entities."
5e60d541ae2a4085f4c6f3739c6cff84469bc052 07-Jul-2011 Jesse Wilson <jessewilson@google.com> Fix a performance regression in XML documents with entities.

In Honeycomb we regressed so that documents containing many
HTML entities (like &amp;) were exponentially slow in the number
of entities.

This is the time to parse a 2000-character text containing
either 50% or 100% entities. Note that 100% entities was more
than 2x as slow as 50% entities.

run % ms
before 0.5 140.4
after 0.5 21.2
before 1.0 401.9
after 1.0 41.6

Bug: http://code.google.com/p/android/issues/detail?id=18102
Change-Id: I1aee43a0111e1e2b7e439b70d9ba5961ec69dced
rg/apache/harmony/xml/parsers/DocumentBuilderImpl.java
79341fd989340e04df255ffbe71d80f5f38cb3e2 06-Jul-2011 Brian Carlstrom <bdc@google.com> Adding IntegralToString.appendByteAsHex

Change-Id: I84cf9043edb7b11c31987abac35c20c5c8f7b842
ava/lang/IntegralToString.java
9bb229396a11df479dbc0688de0b925d23a82869 02-Jul-2011 Brian Carlstrom <bdc@google.com> Merge "Small code cleanup in TrustedCertificateStore.findIssuer"
bd7005d38883b9917b6452bbbadbda14fd141dad 01-Jul-2011 Brian Carlstrom <bdc@google.com> Small code cleanup in TrustedCertificateStore.findIssuer

Change-Id: Ia51868df6856e14b5b82d78745c2390ce11bf6e0
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateStore.java
d8e6e701b29c32484b062933fa905601ce638513 01-Jul-2011 Brian Carlstrom <bdc@google.com> Updating comment to reflect move from keychain uid to system uid

Bug: 4970237
Change-Id: I9d207a3d226019d8f9e584b7be7f586176a133cc
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateStore.java
87201ff38d682b55f456c50da3e742459a56d258 30-Jun-2011 Brian Carlstrom <bdc@google.com> Have Arrays.asList.get() use ArrayList.throwIndexOutOfBoundsException for better error reporting

Change-Id: I649cf22d2782f3cecd02b3a4a0c3df0bd2b08ffb
ava/util/ArrayList.java
ava/util/Arrays.java
5112325117859c7c6cd042c17f519f967c551b20 29-Jun-2011 Jesse Wilson <jessewilson@google.com> Move socket tagging to frameworks/base.

Change-Id: I6f6f840d5d5eee6ca2170fc127fd525155dd40b8
ibcore/io/BlockGuardOs.java
ibcore/net/http/HttpConnectionPool.java
638000042da777f6d628d88dadde957c52597710 29-Jun-2011 Brian Carlstrom <bdc@google.com> Add ExceptionCheck after all places we setCallbackState

Also remove byte versions of SSL_read and SSL_write matching rest of
libcore to avoid making the change in even more places.

Note that testing this change required improving SSL_renegotiate which
is only used for testing.

Change-Id: If425764da3a36508a6c65d90eb3d36c5a018fd18
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
344461e2fa9fad6db14c6fd9a5b9b724deeb7111 28-Jun-2011 Jesse Wilson <jessewilson@google.com> Merge "Make the Timer docs consistent with the implementation."
723f75d03dd4a6c51e9e1ff67847b10fe0cb16e6 28-Jun-2011 Jesse Wilson <jessewilson@google.com> Make the Timer docs consistent with the implementation.

Change-Id: I6fb5979a65b5232f75425d50f9163b0a38355654
http://code.google.com/p/android/issues/detail?id=18031
ava/util/Timer.java
5f7beb162c46a281b272d11fec6fe23b8e0796c3 27-Jun-2011 Brian Carlstrom <bdc@google.com> TrustedCertificateStore additions for TrustedCredentials Fragment
Avoid StrictMode violation by not touching file system in constructor

Change-Id: Ic22387752617a5d8142c16c415b6996e62414442
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateStore.java
a3d688b665cfd721973f84582b41c43ed0fb3815 26-Jun-2011 Jesse Wilson <jessewilson@google.com> Merge "Fix getPackage so it may be used by bootclasspath classes."
0432d7db07f16409d05ba4095a0c3a442a9c77b9 25-Jun-2011 Jesse Wilson <jessewilson@google.com> Fix getPackage so it may be used by bootclasspath classes.

The test doesn't really exercise what I want it to exercise
unless it's run on the bootclasspath itself. It's a sizeable
amount of work to permit certain tests to run on the boot
class path, so I'm punting on the full regression test. I did
test this manually.

Bug: 4676726
Change-Id: I8f82041b93a59c7747655e5685a390c10004ff84
ava/lang/Package.java
0c58d22d44cfb56f0c80f0fa1c69297ba45f3afc 23-Jun-2011 Jesse Wilson <jessewilson@google.com> Don't trigger a reverse DNS lookup from a log statement.

Also nuke a bunch of redundant Javadoc and promote the
shutdownInput/shutdownOutput methods that always throw
to SSLSocket.

Change-Id: I077f7413bb6cba66be6204c68f7911b51a191643
http://code.google.com/p/android/issues/detail?id=13117
http://b/3478027
avax/net/ssl/SSLSocket.java
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/FileClientSessionCache.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java
a5e416020f1202079c60345b159c2921014d3117 21-Jun-2011 Jesse Wilson <jessewilson@google.com> am 9429d06c: Fix System.runFinalization() to avoid running indefinitely.

* commit '9429d06c5427a6cac499ba90f138afac006135a2':
Fix System.runFinalization() to avoid running indefinitely.
9429d06c5427a6cac499ba90f138afac006135a2 21-Jun-2011 Jesse Wilson <jessewilson@google.com> Fix System.runFinalization() to avoid running indefinitely.

This also avoids problems where System.runFinalization() calls
Thread.interrupt() and interrupts a finalizer that is doing
some I/O.

Change-Id: I8de88d7382f684798737ecd19b90d306d9590f1c
http://b/4193517
ava/lang/Daemons.java
ava/lang/Runtime.java
ava/lang/ref/FinalizerReference.java
6230d5d28024440d42adc57c25fb018f2519a51d 21-Jun-2011 Jesse Wilson <jessewilson@google.com> am 64c6c367: Implement the finalizer watchdog.

* commit '64c6c367497c7fcf88e7527022234043e4460758':
Implement the finalizer watchdog.
64c6c367497c7fcf88e7527022234043e4460758 21-Jun-2011 Jesse Wilson <jessewilson@google.com> Implement the finalizer watchdog.

Change-Id: Ia4aaf5f0ef5a2f5f7e6ec3e8b4c4e300c9e1b2ee
http://b/4144865
ava/lang/Daemons.java
ava/lang/FinalizerThread.java
ava/lang/Runtime.java
ava/lang/Thread.java
ava/lang/ref/FinalizerReference.java
ava/lang/ref/Reference.java
ava/lang/ref/ReferenceQueue.java
ava/lang/ref/ReferenceQueueThread.java
ibcore/util/EmptyArray.java
25e769d476ae139ed576f20fe27fd7e38ab034bb 17-Jun-2011 Jesse Wilson <jessewilson@google.com> Add tests for Calendar/SimpleDateFormat bugs

Change-Id: Ib9142a6926c9eb30b021977db9eec7b4f47dae38
http://b/4723412
ava/text/SimpleDateFormat.java
d2dd676be7b9fc0ac49c90a9d0acc437d0010a6e 16-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> am 4c94a612: Add ICU.getScript()

* commit '4c94a6128d1fcfaa75539b36c9f50d0c75df6144':
Add ICU.getScript()
4c94a6128d1fcfaa75539b36c9f50d0c75df6144 16-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Add ICU.getScript()

- needed for RTL support

Change-Id: I03796c25b965403432b79f21ef8ce2f3a4f5566a
ibcore/icu/ICU.java
9a6483c7b662de1e02b0788214c13f87fc86a2ea 15-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> am 0452e9ad: Add addLikelySubtags() to ICU

* commit '0452e9adf6fb133b6d3e59ebae2135aa90ad0d5e':
Add addLikelySubtags() to ICU
c5ffd171c861ea2ecae026fe228c8ca8c96c9394 15-Jun-2011 Elliott Hughes <enh@google.com> Merge "Remove the LocaleData.digit field." into dalvik-dev
e2377cdd707b830d07a5708216834f7ac76ee3e1 15-Jun-2011 Elliott Hughes <enh@google.com> Remove the LocaleData.digit field.

ICU 4.6 no longer supports this, which always had the constant value '#'.

Also ensure that we cache all the locale data (not just the zone strings)
for the root locale, en_US, and the user's locale when the Zygote starts
up.

Also improve the ICU JNI code's local reference usage somewhat.

Change-Id: I28692d9484aecc29820c201b08b8bedd3f26df83
ava/text/DecimalFormatSymbols.java
ibcore/icu/LocaleData.java
ibcore/icu/NativeDecimalFormat.java
ibcore/icu/TimeZones.java
49ba8401a597940d8d192f6788c28dd0b9e1608e 15-Jun-2011 Jesse Wilson <jessewilson@google.com> Merge "Kill another use of TimeZone.useDaylightTime()." into dalvik-dev
d8d3329347af700beed67172c77046b5c2ecece2 15-Jun-2011 Jesse Wilson <jessewilson@google.com> Kill another use of TimeZone.useDaylightTime().

I wrote another test to prove the use was incorrect.

Change-Id: I86c5e53c735e7948b96c0d2a87abe21eb9aed876
http://b/2435103
ava/text/DateFormatSymbols.java
ava/text/SimpleDateFormat.java
ava/util/TimeZone.java
ibcore/icu/TimeZones.java
5cd66f07b3e6c6029a2b72369ab556520b9676e1 15-Jun-2011 Elliott Hughes <enh@google.com> Update the Locale documentation to mention ICU 4.6.

Change-Id: I9a90a930bb4bc8e45a8a38c1eacba708eb087e40
ava/util/Locale.java
0452e9adf6fb133b6d3e59ebae2135aa90ad0d5e 08-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Add addLikelySubtags() to ICU

Change-Id: Ied6149b68452db879c902b544b5b69802e35ff8e
ibcore/icu/ICU.java
b434689d9f54081c903aab94fe8f2ab11973de23 15-Jun-2011 Jesse Wilson <jessewilson@google.com> Don't interpret useDaylightTime as 'ever used daylight time'.

Change-Id: If0935b3725b3c91a74291b8f51d2263a5e33f1d4
http://code.google.com/p/android/issues/detail?id=15629
http://b/2435103
ava/util/GregorianCalendar.java
71ad1ba183f0cad222cb80a11b2f8afc03362416 14-Jun-2011 Elliott Hughes <enh@google.com> Simplify & optimize DatagramSocket's implementation.

In particular, recv on a connected socket now costs no more than it should.

Bug: 1974286
Change-Id: I72c16ec82d1537753a9da146c2672515b2ed6990
ava/net/DatagramSocket.java
ava/net/MulticastSocket.java
1c6a607c2bdbde97c1bbb152517f2cd082828818 11-Jun-2011 Jeff Brown <jeffbrown@google.com> am bf046972: Merge "Fix ReferenceQueue linked list manipulations."

* commit 'bf04697200be0048459238026e93970139ede268':
Fix ReferenceQueue linked list manipulations.
7796ec1e199a9d4f791ae206a60e35fd82d2b462 11-Jun-2011 Jeff Brown <jeffbrown@google.com> Fix ReferenceQueue linked list manipulations.

This change fixes a bug where the linked list would be truncated
whenever the head element was removed.

Change-Id: I81dbc963794feb40215ae287449c97acf3fe7050
ava/lang/ref/FinalizerReference.java
031e60e821dea3ae92e70cf6f9df5e97f477ef90 10-Jun-2011 Elliott Hughes <enh@google.com> Merge "Tidy transferFrom a little." into dalvik-dev
e3d7539b3cb1e763f1ed5832120684468e635d94 10-Jun-2011 Elliott Hughes <enh@google.com> Tidy transferFrom a little.

Other than documentation, the only real change here is to stop using direct
buffers, which doesn't gain us anything (and does have a cost).

Bug: 4109660
Change-Id: Iebf3eb9cee6038af68443cd061718d584040010e
ava/nio/FileChannelImpl.java
996083c82dd18f09ac014d8ad2d40eeec85f6b24 10-Jun-2011 Jesse Wilson <jessewilson@google.com> Fix GregorianCalendar DST adjustment bug.

We were always adjusting from DST. In some situations this
lead to us adjusting the delta too much, and we'd double
compensate.

Change-Id: I777eef5b545010dfd18f5b771d37bcd728a69885
http://code.google.com/p/android/issues/detail?id=17502
ava/util/GregorianCalendar.java
e3b6fa2bf357f2712ab2ee9e8487f157595ea0c7 10-Jun-2011 Elliott Hughes <enh@google.com> Expose pread and pwrite.

And fix FileChannel to use them.

Bug: 4183719
Bug: 3107501
Change-Id: I51114a16522b93bf959b5953bec658e6889054c6
ava/nio/Buffer.java
ava/nio/DatagramChannelImpl.java
ava/nio/FileChannelImpl.java
ava/nio/IoVec.java
ava/nio/SocketChannelImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
fa65e4a9364363eff71335dfa3520f0c1d788b0d 09-Jun-2011 Elliott Hughes <enh@google.com> Fix the ServiceLoader callers to use the appropriate ClassLoader.

Bug: http://code.google.com/p/android/issues/detail?id=17450
Change-Id: I6939a3a1b47d9c98d3778b84a0d16e67303bbd19
ava/nio/channels/spi/SelectorProvider.java
ava/nio/charset/Charset.java
ava/util/prefs/Preferences.java
555c25e506a6a07e546e88ed2d2059a47549c432 09-Jun-2011 Elliott Hughes <enh@google.com> Remove more dead code and tests.

Change-Id: Ie129e5487e4f5bfc9c9ff62854c89e4a6a662555
ava/security/AuthProvider.java
5a44da29ca3580076b8940de04c546730732f672 08-Jun-2011 Elliott Hughes <enh@google.com> Merge "Kill more dead code and tests." into dalvik-dev
eb1d33cde8b3ebdaf32daaa83eac684ea901d57f 08-Jun-2011 Elliott Hughes <enh@google.com> Kill more dead code and tests.

Change-Id: I2de9c90823a369b9fcef595219fa68c4c61fd5b6
avax/security/auth/SubjectDomainCombiner.java
avax/security/auth/package.html
32bc0f26d980651e5ee4f5dfcf562da86a76120b 08-Jun-2011 Brian Carlstrom <bdc@google.com> am f45c08ac: Merge "Test fixes validated on RI and device"

* commit 'f45c08ac9e7ef520fe6ec8080e136b0b4bee7084':
Test fixes validated on RI and device
2708f771574cabf703557439843b02d3c5138c86 08-Jun-2011 Brian Carlstrom <bdc@google.com> Test fixes validated on RI and device

Change-Id: I14290efc322406920b2de65924155ef18ee56bab
avax/net/ssl/TrustManagerFactory.java
90b140190f219fd63ede200a63da40bf9e6ca98d 06-Jun-2011 Elliott Hughes <enh@google.com> Remove some unnecessary cruft.

Change-Id: I8d83954d42f3511a24a44a33c3b28f04af6d3b82
avax/xml/namespace/QName.java
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/DelegatedTask.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
4f54203252733229489e6d09c7d3e0aaa82754d6 06-Jun-2011 Elliott Hughes <enh@google.com> Merge "Remove more dead "security theater" cruft." into dalvik-dev
e26b27faf689c17b7894c78caee32432176349ec 04-Jun-2011 Elliott Hughes <enh@google.com> Remove more dead "security theater" cruft.

There's probably still more stuff lying around that isn't useful,
but this was all I had time for on this particular Friday afternoon...

Change-Id: I69593f6c9ab5534d581c703cc85a9766ba8e40e5
ava/io/FilePermission.java
ava/io/FilePermissionCollection.java
ava/io/SerializablePermission.java
ava/lang/RuntimePermission.java
ava/lang/SecurityManager.java
ava/lang/reflect/ReflectPermission.java
ava/net/NetPermission.java
ava/net/SocketPermission.java
ava/net/SocketPermissionCollection.java
ava/security/AccessControlContext.java
ava/security/AccessController.java
ava/security/AllPermission.java
ava/security/AllPermissionCollection.java
ava/security/BasicPermission.java
ava/security/BasicPermissionCollection.java
ava/security/CodeSource.java
ava/security/DomainCombiner.java
ava/security/Permission.java
ava/security/PermissionCollection.java
ava/security/Permissions.java
ava/security/Policy.java
ava/security/PrivilegedAction.java
ava/security/PrivilegedActionException.java
ava/security/PrivilegedExceptionAction.java
ava/security/ProtectionDomain.java
ava/security/SecurityPermission.java
ava/security/UnresolvedPermission.java
ava/security/UnresolvedPermissionCollection.java
ava/security/acl/Permission.java
ava/security/security.properties
ava/sql/SQLPermission.java
ava/util/PropertyPermission.java
ava/util/PropertyPermissionCollection.java
ava/util/logging/LoggingPermission.java
avax/net/ssl/SSLPermission.java
avax/security/auth/AuthPermission.java
avax/security/auth/PrivateCredentialPermission.java
rg/apache/harmony/security/DefaultPolicyScanner.java
rg/apache/harmony/security/PolicyEntry.java
rg/apache/harmony/security/UnresolvedPrincipal.java
rg/apache/harmony/security/fortress/DefaultPolicy.java
rg/apache/harmony/security/fortress/DefaultPolicyParser.java
rg/apache/harmony/security/fortress/PolicyUtils.java
rg/apache/harmony/security/fortress/SecurityUtils.java
fc041ff241f9a7556e72236f130de0215ecd17db 03-Jun-2011 Elliott Hughes <enh@google.com> Remove support for deprecated IPv4 address formats.

Bug: 4539262
Change-Id: Ic42173b7b06e8536e8c4331087720d7df1e1681a
ava/net/InetAddress.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
8f1bbe0b6549136be386d75edf70ed4daf8a25b0 01-Jun-2011 Brian Carlstrom <bdc@google.com> am cbec51f5: SHA1_MessageDigestImpl should work for inputs of 256 Megabytes

* commit 'cbec51f5f2b9c425ce551405518e48d4046adb35':
SHA1_MessageDigestImpl should work for inputs of 256 Megabytes
cbec51f5f2b9c425ce551405518e48d4046adb35 31-May-2011 Brian Carlstrom <bdc@google.com> SHA1_MessageDigestImpl should work for inputs of 256 Megabytes

Bug: 4501620
Change-Id: I57dc9b1308994bac96e3db8ccb2db4b368dd0552
rg/apache/harmony/security/provider/crypto/SHA1_MessageDigestImpl.java
4596cf129099ade7ec2ec17543d68db03d2f45bd 28-May-2011 Elliott Hughes <enh@google.com> am ee100f24: Merge "Make ErrnoException a checked exception."

* commit 'ee100f24d3b9d538dfc0ec9c9e74b6670e0a2a1f':
Make ErrnoException a checked exception.
ee100f24d3b9d538dfc0ec9c9e74b6670e0a2a1f 28-May-2011 Elliott Hughes <enh@google.com> Merge "Make ErrnoException a checked exception."
83b734febd08784905d257d533df1b201937ecfd 28-May-2011 Elliott Hughes <enh@google.com> am 5722fb8a: Fix the FileOutputStream documentation.

* commit '5722fb8a3c56310ad3e9394e7bd9bb0fd17917a9':
Fix the FileOutputStream documentation.
9b510df35b57946d843ffc34cf23fdcfc84c5220 28-May-2011 Elliott Hughes <enh@google.com> Make ErrnoException a checked exception.

Bug: 4486011
Change-Id: I1877ce593d441653f75ab14884aa2d85f52652ad
ava/lang/ProcessManager.java
ava/net/InetAddress.java
ava/net/PlainDatagramSocketImpl.java
ava/nio/FileChannelImpl.java
ava/nio/SelectorImpl.java
ava/nio/SocketChannelImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/DiskLruCache.java
ibcore/io/ErrnoException.java
ibcore/io/ForwardingOs.java
ibcore/io/IoBridge.java
ibcore/io/IoUtils.java
ibcore/io/MemoryMappedFile.java
ibcore/io/Os.java
ibcore/io/Posix.java
ibcore/util/ZoneInfoDB.java
5722fb8a3c56310ad3e9394e7bd9bb0fd17917a9 28-May-2011 Elliott Hughes <enh@google.com> Fix the FileOutputStream documentation.

The O_CREAT|O_TRUNC behavior was not fully documented.

Change-Id: I0ea16ec3ea032c4f0572e8900316469f448edb75
ava/io/FileOutputStream.java
ecf950e56b55f95a960f151268286576159c6530 27-May-2011 Jesse Wilson <jessewilson@google.com> Relative/absolute and opaque/hierarchical docs for java.net.URI.

Change-Id: I5ec2e1dd10a3c676441caf56838433fffa316a59
http://b/2753295
ava/net/URI.java
c68609e723a5daa20888abdb640799d4353fd590 27-May-2011 Jesse Wilson <jessewilson@google.com> Document java.net.URI.

Change-Id: I941ba9cb4a2d48b052c25b7799ac466549df8d53
http://b/2753295
ava/net/URI.java
ava/net/URL.java
73d0c8232b23ad74af5cc198143603ff6ee5236b 27-May-2011 Jesse Wilson <jessewilson@google.com> Merge "Clean Up URI's parsing code." into dalvik-dev
ce257b03a1e5ff6075967e6a84cdb439cb2b01c8 27-May-2011 Jesse Wilson <jessewilson@google.com> Clean Up URI's parsing code.

http://b/2753295

Change-Id: I190ee12c14d1b3b17e2c8cb5ef3868618f1ee124
ava/net/URI.java
ava/net/URLStreamHandler.java
ibcore/net/UriCodec.java
ibcore/net/url/UrlUtils.java
fefa79414d785f556bd887e4e035f49b2be5e38f 27-May-2011 Elliott Hughes <enh@google.com> Merge "Match the RI's exact exception type." into dalvik-dev
c61ad82613eb264cbf93e91519b0c061d11b3c2d 27-May-2011 Elliott Hughes <enh@google.com> Match the RI's exact exception type.

Change-Id: Id64b8ff87198e31a93a92d19d542948bcbb74db0
ava/net/Socket.java
2d99ef561304174b8ae01a0a68d5b96d5edb9f10 26-May-2011 Jesse Wilson <jessewilson@google.com> Fix URI to behave more like the spec and browsers and less like the RI.

When computing relative paths from URLs like foo.com/a to foo.com/a/b,
this now uses "a/b" as the relative path and not just "b". That was an
RI bug that we were foolishly compatible with.

Change-Id: I6e3f10d84602c08bbf6bd7c7e43c2ba3387e4c3b
http://b/2753295
ava/net/URI.java
ava/net/URLStreamHandler.java
ibcore/net/url/UrlUtils.java
c5727263001f1eae068f7821063d7bfb2da8e24c 26-May-2011 Jesse Wilson <jessewilson@google.com> Use canonicalizePath in URI.

This needs to add another mode to canonicalizePath to not
discard ".." prefixes from relative paths.

Change-Id: I9e0b86bd1e7ab8e5e71c46f1efcf4aeb218e66b2
http://b/2753295
ava/net/URI.java
ava/net/URLStreamHandler.java
ibcore/net/url/JarHandler.java
ibcore/net/url/UrlUtils.java
98879fb0ca920d752fce6177b6832293323e0944 26-May-2011 Jesse Wilson <jessewilson@google.com> Merge "Parity between URI and URL tests." into dalvik-dev
10527ac8763cc50fa9eca0d4ce495909899f0b9a 25-May-2011 Jesse Wilson <jessewilson@google.com> Parity between URI and URL tests.

Duplication here is unfortunate. It would be a lot of work
to share tests here, since the two classes have necessarily
different behaviors in certain situations. I continue to work
on making the two classes consistent with browsers, which
means they'll be more consistent with each other.

Change-Id: Ic33c414abe1344cdfd1a9b539d9918dcd074f2c6
http://b/2753295
ibcore/net/UriCodec.java
159dd6646fc204b3accbb598f190b3f8e0fbfce0 25-May-2011 Elliott Hughes <enh@google.com> Merge "Make it possible to test java.io.Console." into dalvik-dev
5292410e4ebf7fb5149eefd2f52fcb94c46690a6 24-May-2011 Jesse Wilson <jessewilson@google.com> Rewrite parsing for java.net.URL.

This fixes many broken cases on handling relative URLs.

We normalize all URLs by default. This will result
in more URL equality than before. Previously the URLs
http://android.com/a/../ and http://android.com/ were not
equal; now they are equal.

Change-Id: I8cf7be2e42eeb1386520be2698d8f14e0a55decb
http://b/4361656
ava/net/URL.java
ava/net/URLStreamHandler.java
ibcore/net/http/HttpEngine.java
ibcore/net/url/FileHandler.java
ibcore/net/url/JarHandler.java
ibcore/net/url/UrlUtils.java
rg/apache/harmony/luni/util/URLUtil.java
dd3297417120e11cfafd502f008b4719f6974bd8 25-May-2011 Elliott Hughes <enh@google.com> Make it possible to test java.io.Console.

Change-Id: I9389c6625ba0837dbe1cc62c785fc2091ecbf24e
ava/io/Console.java
23c3b7f76a8ec59d5329417d53d83b14242441de 25-May-2011 Elliott Hughes <enh@google.com> Merge "Fix a bug in FileChannel.map." into dalvik-dev
54709bdf6b22d02efed7d2fd967cbd4d11b3942d 25-May-2011 Brian Carlstrom <bdc@google.com> am e2fdfbde: Merge "OpenSSLSocketImpl should tolerate X509KeyManager returning null values"

* commit 'e2fdfbde569a4cc284590c92bc57dc15dcc29a9c':
OpenSSLSocketImpl should tolerate X509KeyManager returning null values
c03e4ba8cd93513aabda061b00d516b54717c5fb 25-May-2011 Elliott Hughes <enh@google.com> Fix a bug in FileChannel.map.

Found by a Harmony test.

Change-Id: I1f2ba191242dd6236549e6ed4ef77021ad7ae628
ava/nio/FileChannelImpl.java
aba5e8c281fb9c6be23229246473fa0b433dd997 25-May-2011 Brian Carlstrom <bdc@google.com> OpenSSLSocketImpl should tolerate X509KeyManager returning null values

While this started out as the small fix in
OpenSSLSocketImpl.setCertificate and the corresponding test
test_SSLSocket_clientAuth_bogusAlias, the need to test the behavior of
the X509KeyManager returning null on the RI led to test maintenance to
get libcore.javax.net.ssl tests working on RI 7 thanks to a test
dependency that was added on the new InetAddress.getLoopbackAddress().

Change-Id: I3d8ed1ce453cc3a0b53e23e39c02e6a71413649c
avax/net/ssl/KeyStoreBuilderParameters.java
avax/net/ssl/SSLHandshakeException.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
f1a10948c7e4caf5a6d9d53b4b3ad99580fc1cea 25-May-2011 Elliott Hughes <enh@google.com> Fix a couple of FileChannel bugs.

FileChannel.read's non-readv(2) overload shares java.io's weird
non-Unix "-1 at EOF" behavior. The readv(2) overloads already had
that, but they had a bug where they'd claim to have copied more
into a buffer than they actually had.

No new tests because these were found by existing Harmony unit tests.

Change-Id: Ia267e5834fd360d71becdd7d1bdd838d03ea6532
ava/nio/FileChannelImpl.java
ava/nio/IoVec.java
548d2e6ef6d2f4334a488cac591d11e60675111a 24-May-2011 Elliott Hughes <enh@google.com> Remove two tests that are duplicated in the Harmony suite.

(And a spurious blank line from ThreadGroup.)

Change-Id: I3cb1ccb94a8352937d221a141a598ffe4696b06e
ava/lang/ThreadGroup.java
8bc9296d071a77994b6418df2edb120d6a9f70ac 24-May-2011 Elliott Hughes <enh@google.com> Fix the deprected overload of String.getBytes.

Previously, this would unconditionally throw ;-)

Change-Id: Ia62eb6febcfca2a1a9f546935b092141e698d0b2
ava/lang/String.java
78b020b8412d212fa052b7ddf630ca6058c846be 24-May-2011 Elliott Hughes <enh@google.com> Fix a minor serialization bug found by a Harmony test.

Change-Id: I1f7b149deddb167ff5c644513c48e6439679f108
ava/io/ObjectStreamClass.java
99c5c63d6b8261991ac3b3af09a5cb96761e1173 24-May-2011 Elliott Hughes <enh@google.com> Update a useless system property.

Change-Id: I30424eba04a9c1eef976eac02a7d139e7c6c5af1
ava/lang/System.java
ae45780f53dfb4b501b1b23e15d2a4e81fa88b22 23-May-2011 Elliott Hughes <enh@google.com> Merge "Fix read/write bugs in DatagramChannel and SocketChannel." into dalvik-dev
4280237a545e7482b6ea954fd862878867b8f896 22-May-2011 Brian Carlstrom <bdc@google.com> Ensure signature verification fast path is used with alternatively formatted signature algorithm names

Change-Id: Icebe7794babfc93592674cc14dd83c2556642fad
rg/apache/harmony/security/provider/cert/X509CertImpl.java
a28bc96d63595a77fa918da8ccdda50e9eaae95e 21-May-2011 Elliott Hughes <enh@google.com> Fix read/write bugs in DatagramChannel and SocketChannel.

Also improve some exception detail messages for ease of debugging.

These bugs were found by external/apache-harmony tests.

Change-Id: I37a58c1d1f1c2150eb9171967f47ef9644e8ae15
ava/nio/Buffer.java
ava/nio/DatagramChannelImpl.java
ava/nio/InvalidMarkException.java
ava/nio/SocketChannelImpl.java
2cff86c0c10588a35036fe5bbca83b07f53e1b1d 21-May-2011 Elliott Hughes <enh@google.com> Add a missing parameter check to FileChannel.

If we were rewriting this from scratch, we might want to leave these kinds of
checks to the kernel and just rethrow an appropriate exception when the kernel
complains. But for now, let's at least be consistent.

Change-Id: I31c4d13d033c8f46a632622f1a2ce3f44a6c5701
ava/nio/FileChannelImpl.java
5c3bf9578b9f6c49da8b72e2e7fb9e33a27c124f 21-May-2011 Elliott Hughes <enh@google.com> Merge "Suppress some FindBugs warnings." into dalvik-dev
8f99aa098c6a06b8be788abbca1c1d1060342709 21-May-2011 Jesse Wilson <jessewilson@google.com> Cosmetic cleanup of java.net.URL.

Update the documentation to be closer to reality.

Change-Id: Ic187efde5d83c6bfcdc80428429a2d0f186d9d0a
http://b/2753295
ava/net/URL.java
ava/net/URLStreamHandler.java
0d4daefcf389b6433a0af481ef44a84a2546541a 21-May-2011 Elliott Hughes <enh@google.com> Suppress some FindBugs warnings.

Also globally replace "for(" with "for (".

Change-Id: I27fe17460e6745b9ca823f42e57c86fe8af31979
ava/lang/Boolean.java
ava/lang/Byte.java
ava/lang/Character.java
ava/lang/ClassLoader.java
ava/lang/Double.java
ava/lang/FinalizerThread.java
ava/lang/Float.java
ava/lang/Integer.java
ava/lang/Long.java
ava/lang/Object.java
ava/lang/ProcessManager.java
ava/lang/Short.java
ava/lang/String.java
ava/lang/UnsafeByteSequence.java
ava/lang/reflect/Constructor.java
ava/lang/reflect/Method.java
ava/math/BitLevel.java
ava/math/Conversion.java
ava/math/Logical.java
ava/net/InetAddress.java
ava/net/NetworkInterface.java
ava/net/URLClassLoader.java
ava/security/KeyStore.java
ava/sql/Date.java
ava/util/TreeSet.java
ava/util/prefs/XMLParser.java
rg/apache/harmony/lang/annotation/AnnotationFactory.java
c3d80a43de12b7b012d44dc2bea82f0b624e408e 20-May-2011 Brian Carlstrom <bdc@google.com> am c77290ea: Remove IndexedPKIXParameters

* commit 'c77290eaef032e5e8952d65e0456b091b6b50804':
Remove IndexedPKIXParameters
dc915c69ba2495dd2cf965d16058d0b13762142c 20-May-2011 Elliott Hughes <enh@google.com> Move the floating-point parsing code, and tidy up some documentation.

Change-Id: Ibdc1716847f4c6a85a7c24766feffc8768819cef
ava/lang/Double.java
ava/lang/Float.java
ava/lang/HexStringParser.java
ava/lang/StringToReal.java
ava/math/MathContext.java
rg/apache/harmony/luni/util/FloatingPointParser.java
rg/apache/harmony/luni/util/HexStringParser.java
c77290eaef032e5e8952d65e0456b091b6b50804 20-May-2011 Brian Carlstrom <bdc@google.com> Remove IndexedPKIXParameters

Change-Id: Idaaa1952d1b6148c51b3da5d1771105e8bde8a03
ava/security/cert/PKIXParameters.java
rg/apache/harmony/xnet/provider/jsse/IndexedPKIXParameters.java
rg/apache/harmony/xnet/provider/jsse/JSSEProvider.java
rg/apache/harmony/xnet/provider/jsse/RootKeyStoreSpi.java
rg/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateIndex.java
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateKeyStoreSpi.java
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateStore.java
dbde5bd893290c02bb289460fc61e48eda63daa2 20-May-2011 Elliott Hughes <enh@google.com> FileChannelImpl doesn't need to special-case O_APPEND.

...we have an OS kernel for such things.

Bug: 4455730
Change-Id: I23efc0ceaa534bffdc0da9a5ff1426ff9d56547f
ava/nio/FileChannelImpl.java
2e0aed04f6bef27f2a9e4c46c3310e0b88790396 20-May-2011 Elliott Hughes <enh@google.com> Merge "Move the stuff to bridge between io/net/nio semantics and POSIX semantics." into dalvik-dev
0b736ebc4efef64f2db1999aea90297ad8196146 20-May-2011 Elliott Hughes <enh@google.com> Move the stuff to bridge between io/net/nio semantics and POSIX semantics.

IoUtils should be more generally useful.

Change-Id: I5665f2a94d226ada3077a30045549a53cc741cf0
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
ava/net/DatagramSocketImpl.java
ava/net/InetAddress.java
ava/net/PlainDatagramSocketImpl.java
ava/net/PlainSocketImpl.java
ava/net/Socket.java
ava/nio/DatagramChannelImpl.java
ava/nio/SelectorImpl.java
ava/nio/SocketChannelImpl.java
ibcore/io/IoBridge.java
ibcore/io/IoUtils.java
ibcore/net/RawSocket.java
c8e161cd543d2a327a7db23b8ce8f127b2e2ebae 20-May-2011 Jesse Wilson <jessewilson@google.com> Merge "Support HTTP cookies and header combining." into dalvik-dev
cd8c1dd724036dcd1b7c27542cc4d745391b8d04 20-May-2011 Jesse Wilson <jessewilson@google.com> Support HTTP cookies and header combining.

Change-Id: Ifdf15dc2f551e58bdd6a1aae847f7dec254ac7e8
http://b/3180373
ibcore/net/http/HttpEngine.java
ibcore/net/http/ResponseHeaders.java
9e67ca71d3d4a489a157abadc5ba519ced7a0b50 20-May-2011 Elliott Hughes <enh@google.com> Expose waitpid(2).

This lets us move the process reaper up into Java. I've rearranged the code a
bit for the benefit of those looking at stack traces: it's now much clearer
when we're idle because there are no children to wait on, which previously
looked like we were blocked trying trying to report the exit of a child.

Bug: 3107501
Change-Id: I8c5c2952cbdbf9b5a6d8954b4964011d052a90a3
ava/lang/ProcessManager.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
254198c64b687ca088d9d2631e12560e029b7f7b 19-May-2011 Elliott Hughes <enh@google.com> Merge "Expose accept(2)." into dalvik-dev
553d98af897f7202de5e5a776287de0b5ca8fe39 19-May-2011 Elliott Hughes <enh@google.com> Expose accept(2).

The implementation of PlainSocketImpl.accept is made ugly by the fact that the
SocketImpl we mutate may share its FileDescriptor with a SocketChannel, so we
need to mutate the FileDescriptor itself, and can't simply swap in a new one.
I've raised http://b/4452981 to see if we can integrate the nio and io socket
classes more closely, to avoid this kind of mess.

Bug: 3107501
Change-Id: I4964b64c25e936a44d1e4c22504ca29bba247ab6
ava/net/PlainSocketImpl.java
ava/net/SocketTimeoutException.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/platform/Platform.java
80f4d25b880b83abfd79474bb0e6fdc4d898f94c 19-May-2011 Jesse Wilson <jessewilson@google.com> Address FindBugs warnings in libcore.net.http

Change-Id: Ia0c4f95e62825a4ed4debac2578d353491a7ff2c
ibcore/net/http/RawHeaders.java
ibcore/net/http/RequestHeaders.java
ibcore/net/http/ResponseHeaders.java
ae01ebf69d7d2e38eb66c40e0ebacd3b118acfc7 19-May-2011 Elliott Hughes <enh@google.com> Merge "More IPv6 sin6_scope_id fixes." into dalvik-dev
4728a015bcd3f432e000d1547c668e804015dc04 19-May-2011 Elliott Hughes <enh@google.com> More IPv6 sin6_scope_id fixes.

My earlier patch fixed the Java-to-native direction. This fixes the
native-to-Java direction, which didn't occur to us at the time.

I've also fixed the documentation so that public methods don't
define themselves in terms of a private method (that ought to
exist in the public API, but doesn't).

Change-Id: Ib16a5952bb69b0b96a66775304947f2a120a1dcf
ava/net/InetAddress.java
c7655ddf0ea272d7992805f451b350dfb7b01c4a 19-May-2011 Jesse Wilson <jessewilson@google.com> Merge "Suppress our first FindBugs warning." into dalvik-dev
bad51d783a94c137c3775bbbb95e2eefa87bd0b3 19-May-2011 Jesse Wilson <jessewilson@google.com> Suppress our first FindBugs warning.

Change-Id: Ic95d9699e3ea58b2536786c432aa166aa4507030
http://b/3467076
ava/lang/FindBugsSuppressWarnings.java
ava/util/EventObject.java
ava/util/ResourceBundle.java
ava/util/TreeMap.java
c297a0013b6a926d3e47efe6a73a6ab0f2f6eb89 19-May-2011 Elliott Hughes <enh@google.com> Merge "Implement recvfrom(2)." into dalvik-dev
23ec09188303a874b3b391f96ae0a29af002bff9 19-May-2011 Elliott Hughes <enh@google.com> Implement recvfrom(2).

This one's a little bit hairy because of multiple return values.

Bug: 3107501
Change-Id: I3bd35647d94bb6bc2192d6f31a39ecca07a3926e
ava/net/InetAddress.java
ava/net/InetSocketAddress.java
ava/net/PlainDatagramSocketImpl.java
ava/net/PlainSocketImpl.java
ava/nio/DatagramChannelImpl.java
ava/nio/ServerSocketChannelImpl.java
ava/nio/SocketChannelImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/Posix.java
ibcore/net/RawSocket.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
e5eb80e6adaab18ff7372adcd09f9e1af3a76871 19-May-2011 Jesse Wilson <jessewilson@google.com> Make the HttpResponseCache robust to file I/O errors.

If the filesystem fails, cache performance degrades. Ongoing
writes should not see any filesystem errors: don't punish the
writer who isn't benefitting from the cache. Ongoing reads may
see IOExceptions while streaming files. In practice this will
only happen if the directory disappears during use, as is the
case when a removable partition is removed.

Change-Id: Ibf4d51998d9beaba9f8c86c449fd5c97ca869cee
http://b/3180373
ibcore/io/DiskLruCache.java
ibcore/net/http/HttpResponseCache.java
09f1b0cc860e039dff39e9429c1eaddcb6af598e 18-May-2011 Jesse Wilson <jessewilson@google.com> Parse HTTP request headers only once.

Change-Id: Ib3df045c546b424651eb1164c2dc610d366b5b39
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpResponseCache.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/HttpsURLConnectionImpl.java
ibcore/net/http/RawHeaders.java
ibcore/net/http/RequestHeaders.java
ibcore/net/http/ResponseHeaders.java
7a891b5c83357dbeea2bbe4a5335ae685501e21c 18-May-2011 Jesse Wilson <jessewilson@google.com> Don't read through HTTP response headers more than necessary.

This refactoring changes HttpEngine to prefer the parsed
response headers over the raw response headers. I'll do likewise
for the request headers in a follow-up change.

Change-Id: Iab8329a836d14b3ac7bb0abe190e0a8fa7cc0694
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpResponseCache.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/HttpsURLConnectionImpl.java
ibcore/net/http/ResponseHeaders.java
6f778cc173cc60ec184e8ca54a16ad10cf55f2cf 18-May-2011 Jesse Wilson <jessewilson@google.com> Cache HTTP responses with a Vary header.

This requires a backdoor for the cache to read the request headers
at put time. This is implemented by getting the HttpEngine, which
will allow us to eventually share the response header parsing.

Change-Id: I177467244e5af0a3dda07883cd58d641bf75362f
http://b/3180373
ibcore/net/http/HttpResponseCache.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/HttpsURLConnectionImpl.java
ibcore/net/http/RawHeaders.java
ibcore/net/http/ResponseHeaders.java
20024ef4bbd35a0450b9f21bd2ccfef04ce13787 18-May-2011 Brian Carlstrom <bdc@google.com> am 0162c72d: Merge "Simplify KeyChain API by removing now unneeded CA certificate lookup (2 of 3)"

* commit '0162c72d58f1683cf0be369709de2450daab375c':
Simplify KeyChain API by removing now unneeded CA certificate lookup (2 of 3)
59e5a4761c267d31ba5d6e0573a0473647c3b56e 18-May-2011 Elliott Hughes <enh@google.com> Merge "Fix Inet6Address (de)serialization." into dalvik-dev
f02f9397fd5984f476e056ddb8c04db9af9a15a0 18-May-2011 Elliott Hughes <enh@google.com> Fix Inet6Address (de)serialization.

Looks like it's valid to have scope_ifname_set == true, but ifname == null.

Change-Id: Ic37cf40ae91ff0edaf1e66ccd09819fee9c41d99
ava/net/Inet6Address.java
42bc73a06b73f35e20fd175e864928ad33a57bee 17-May-2011 Elliott Hughes <enh@google.com> Merge "Fix InetAddress.isReachable." into dalvik-dev
ad5d31103472d57f5744ff5a03c3bc38dcb34740 17-May-2011 Elliott Hughes <enh@google.com> Fix InetAddress.isReachable.

Change-Id: I4b90b711642515a3abda54d176337738bdda1312
ava/net/BindException.java
ava/net/ConnectException.java
ava/net/InetAddress.java
17da3dfaf359de021b753570e25a033ae8927432 17-May-2011 Brian Carlstrom <bdc@google.com> am 3041d84e: Merge "Make CertInstaller installed CA certs trusted by applications via default TrustManager (2 of 6)"

* commit '3041d84e3c0ac7711868bdd7556047a3422e3052':
Make CertInstaller installed CA certs trusted by applications via default TrustManager (2 of 6)
dfe69fa450bb1c92c589e703c6dc72aa0e364bb3 17-May-2011 Brian Carlstrom <bdc@google.com> Simplify KeyChain API by removing now unneeded CA certificate lookup (2 of 3)

frameworks/base

Remove getCaCertificates and findIssuer from IKeyChainService,
these are now done via libcore's TrustedCertificateStore (as part
of the default TrustManager implementation)

keystore/java/android/security/IKeyChainService.aidl

Simplify KeyChain API. Now that the CA certificates are visible
through the default TrustManager, the KeyChain is solely focused on
retrieving PrivateKeys and their associated certificates. The
calling API for KeyChain to simply a single KeyChain.get() call
that returns a KeyChainResult, removing the need for a KeyChain
instance that needs to be closed.

keystore/java/android/security/KeyChain.java
keystore/java/android/security/KeyChainResult.java

master/libcore

Remove getDefaultIndexedPKIXParameters and
getIndexedPKIXParameters which was used as part of the prototype
of looking up CAs via the KeyChain but is obsoleted by the new
default TrustManager implementation.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java

packages/apps/KeyChain

Tracking simplified IKeyChainService, removing now unneeded
implementation, updating tests.

src/com/android/keychain/KeyChainService.java
tests/src/com/android/keychain/tests/KeyChainServiceTest.java
tests/src/com/android/keychain/tests/KeyChainTestActivity.java

Change-Id: I5c0df3b67248bb8014c85a5997098d5e70fbc505
rg/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
6fe7b33322a6a7d1e5cc0061335e120aa15c4e40 17-May-2011 Elliott Hughes <enh@google.com> Fix a comment typo.

Change-Id: I3d401b7e943897847b1abd4029458e4537bd3533
ava/nio/IoVec.java
159b07372841916767251fc5416f3bb6963fe1cb 17-May-2011 Jesse Wilson <jessewilson@google.com> Merge "Test DiskLruCache with fault injection." into dalvik-dev
0eca2939f501873bd86f176540d2c072a1a83780 17-May-2011 Elliott Hughes <enh@google.com> Merge "Add sendto(2) and reimplement all network writes in terms of it." into dalvik-dev
1b3c5388d0fffde4392007eb1b0be011a5dfae82 12-May-2011 Brian Carlstrom <bdc@google.com> Make CertInstaller installed CA certs trusted by applications via default TrustManager (2 of 6)

frameworks/base

Adding IKeyChainService APIs for CertInstaller and Settings use
keystore/java/android/security/IKeyChainService.aidl

libcore

Improve exceptions to include more information
luni/src/main/java/javax/security/auth/x500/X500Principal.java

Move guts of RootKeyStoreSpi to TrustedCertificateStore, leaving only KeyStoreSpi methods.
Added support for adding user CAs in a separate directory for system.
Added support for removing system CAs by placing a copy in a sytem directory
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/RootKeyStoreSpi.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/TrustedCertificateStore.java

Formerly static methods on RootKeyStoreSpi are now instance methods on TrustedCertificateStore
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java

Added test for NativeCrypto.X509_NAME_hash_old and X509_NAME_hash
to make sure the implementing algorithms doe not change since
TrustedCertificateStore depend on X509_NAME_hash_old (OpenSSL
changed the algorithm from MD5 to SHA1 when moving from 0.9.8 to
1.0.0)

luni/src/test/java/org/apache/harmony/xnet/provider/jsse/NativeCryptoTest.java

Extensive test of new TrustedCertificateStore behavior
luni/src/test/java/org/apache/harmony/xnet/provider/jsse/TrustedCertificateStoreTest.java

TestKeyStore improvements
- Refactored TestKeyStore to provide simpler createCA method (and
internal createCertificate)
- Cleaned up to remove use of BouncyCastle specific X509Principal
in the TestKeyStore API when the public X500Principal would do.
- Cleaned up TestKeyStore support methods to not throw Exception
to remove need for static blocks for catch clauses in tests.

support/src/test/java/libcore/java/security/TestKeyStore.java
luni/src/test/java/libcore/java/security/KeyStoreTest.java
luni/src/test/java/org/apache/harmony/xnet/provider/jsse/NativeCryptoTest.java

Added private PKIXParameters contructor for use by
IndexedPKIXParameters to avoid wart of having to lookup and pass
a TrustAnchor to satisfy the super-class sanity check.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/IndexedPKIXParameters.java
luni/src/main/java/java/security/cert/PKIXParameters.java

packages/apps/CertInstaller

Change CertInstaller to call IKeyChainService.installCertificate
for CA certs to pass them to the KeyChainServiceTest which will
make them available to all apps through the
TrustedCertificateStore. Change PKCS12 extraction to use AsyncTask.

src/com/android/certinstaller/CertInstaller.java

Added installCaCertsToKeyChain and hasCaCerts accessor for use by
CertInstaller. Use hasUserCertificate() internally. Cleanup coding
style.

src/com/android/certinstaller/CredentialHelper.java

packages/apps/KeyChain

Added MANAGE_ACCOUNTS so that IKeyChainService.reset
implementation can remove KeyChain accounts.

AndroidManifest.xml

Implement new IKeyChainService methods:
- Added IKeyChainService.installCaCertificate to install certs
provided by CertInstaller using the TrustedCertificateStore.
- Added IKeyChainService.reset to allow Settings to remove the
KeyChain accounts so that any app granted access to keystore
credentials are revoked when the keystore is reset.

src/com/android/keychain/KeyChainService.java

packages/apps/Settings

Changed com.android.credentials.RESET credential reset action to
also call IKeyChainService.reset to remove any installed user CAs
and remove KeyChain accounts to have AccountManager revoke
credential granted to private keys removed during the RESET.

src/com/android/settings/CredentialStorage.java

Added toast text value for failure case

res/values/strings.xml

system/core

Have init create world readable /data/misc/keychain to allow apps
to access user added CA certificates installed by the CertInstaller.

rootdir/init.rc

Change-Id: Ief57672eea38b3eece23b14c94dedb9ea4713744
ava/security/cert/PKIXParameters.java
avax/security/auth/x500/X500Principal.java
rg/apache/harmony/xnet/provider/jsse/IndexedPKIXParameters.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/RootKeyStoreSpi.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustedCertificateStore.java
e342455abc6b650f847d931728223411e58831ce 17-May-2011 Jesse Wilson <jessewilson@google.com> Test DiskLruCache with fault injection.

This tests what happens when the filesystem fails while reading or
writing the cached files. I still need to test what happens when
there are failures reading or writing the journal.

Change-Id: I48018514ef5b8cc206efc905b1823eb49589c8e8
http://b/3180373
ibcore/io/DiskLruCache.java
ibcore/net/http/HttpResponseCache.java
90d96a4f168b7e56cff54dc94dca2f3cde60ebcd 17-May-2011 Elliott Hughes <enh@google.com> Add sendto(2) and reimplement all network writes in terms of it.

Note that this doesn't fix http://b/4182806.

Bug: 3107501
Change-Id: I9b56eae226389a63a12b4c0499d40d5a54a462e2
ava/net/PlainDatagramSocketImpl.java
ava/net/PlainSocketImpl.java
ava/nio/DatagramChannelImpl.java
ava/nio/SocketChannelImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
ae3dad3194393a6800590284e3632f44fac1ddfb 16-May-2011 Jesse Wilson <jessewilson@google.com> Merge "Move APIs from internal HttpResponseCache to external one." into dalvik-dev
e27d02044ec399884bfd4343d513bf270b9b9b11 16-May-2011 Elliott Hughes <enh@google.com> Remove OSNetworkSystem.close.

For now I'm keeping AsynchronousCloseMonitor as a special case in native code.
We can see about doing something more general-purpose in a later pass.

Bug: 3107501
Change-Id: Ib79b9fc0bebfafc2d14896d957bd8591ae8e6e97
ava/net/InetAddress.java
ava/net/PlainDatagramSocketImpl.java
ava/net/PlainSocketImpl.java
ava/nio/DatagramChannelImpl.java
ava/nio/SocketChannelImpl.java
ibcore/io/AsynchronousCloseMonitor.java
ibcore/io/BlockGuardOs.java
ibcore/io/IoUtils.java
ibcore/net/RawSocket.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
fb4a6392a04b1f3a1124b3db6bae51d8cbfa53f8 14-May-2011 Jesse Wilson <jessewilson@google.com> Move APIs from internal HttpResponseCache to external one.

Change-Id: Ia6c88f292088bfd3ed546c067376fcb36b435b48
http://b/3180373
ava/lang/IntegralToString.java
ibcore/io/DiskLruCache.java
ibcore/net/http/HttpResponseCache.java
5637884f8217dbf28de0913c06aceaf09c898510 14-May-2011 Jeff Sharkey <jsharkey@android.com> resolved conflicts for merge of 1e8d508f to dalvik-dev

Change-Id: Id0739d4e567b112cbea48f5ecb7dd46425da1a36
aaa0003924a16a06eb871456c33364461c25a834 14-May-2011 Elliott Hughes <enh@google.com> am c10e07c3: Add @hide accessors for FileDescriptor\'s int.

* commit 'c10e07c3af6485825d9c18de56c6c06f9a26f985':
Add @hide accessors for FileDescriptor's int.
1e8d508f2d97e19f2fc8a709330ea97e1e9f203a 04-May-2011 Jeff Sharkey <jsharkey@android.com> Add Socket tagging for granular data accounting.

Changes BlockGuard to maintain a set of "tags" for the current thread,
which it communicates to kernel before each Socket use. Also changes
HttpConnectionPool to tag/untag sockets as they are recycled.

Change-Id: I33e614f1f570466bdffbf07cc5c718f18b8f3773
ibcore/io/BlockGuardOs.java
ibcore/net/http/HttpConnection.java
ibcore/net/http/HttpConnectionPool.java
c10e07c3af6485825d9c18de56c6c06f9a26f985 14-May-2011 Elliott Hughes <enh@google.com> Add @hide accessors for FileDescriptor's int.

Change-Id: I947c4898f37a294f255d098ef48078b613c56501
ava/io/FileDescriptor.java
03e4ca2be54b0997575311ddc2ebaf3b3d8252c6 14-May-2011 Elliott Hughes <enh@google.com> Merge "Add getpwnam(3) and getpwuid(3)." into dalvik-dev
d4419fce71d11ec8494525eca65e54d1aab51de6 13-May-2011 Elliott Hughes <enh@google.com> Add getpwnam(3) and getpwuid(3).

Bug: 3107501
Change-Id: I727029758fd495471a9103f6ba259f0a5410b0ab
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
ibcore/io/StructPasswd.java
29965ad146fe99ef4bbe70701f3d4413750506e4 13-May-2011 Chia-chi Yeh <chiachi@android.com> am c1c180ba: Add a method to get FileDescriptor from DatagramSocket for internal use.

* commit 'c1c180bace58e44b4e555fdb994deedc011ad882':
Add a method to get FileDescriptor from DatagramSocket for internal use.
c1c180bace58e44b4e555fdb994deedc011ad882 13-May-2011 Chia-chi Yeh <chiachi@android.com> Add a method to get FileDescriptor from DatagramSocket for internal use.

Change-Id: I437530d8c8cc840310dea38bcc9973c4973806c8
ava/net/DatagramSocket.java
396a9c666da353b910b515d12eb1c43adfddb0c8 13-May-2011 Elliott Hughes <enh@google.com> Expose getpid(2) and a bunch of its friends.

Bug: 3107501
Change-Id: I71127752373abab67eea339b9afbea03148bece0
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
900fb3dbe24f67439bb6861ea4e961c497c61562 12-May-2011 Jesse Wilson <jessewilson@google.com> Rebuild the DiskLruCache journal periodically.

Change-Id: I8a9303387b550a307cfb49c037879164fe6898e8
http://b/3180373
ibcore/io/DiskLruCache.java
841b04a2545f17bd782df1e072d4ac4f1b03373f 12-May-2011 Elliott Hughes <enh@google.com> Merge "Reimplement OSNetworkSystem.isConnected in Java." into dalvik-dev
2bad9bff258de6275bd3847e5e9f3169b0a93c61 12-May-2011 Elliott Hughes <enh@google.com> Reimplement OSNetworkSystem.isConnected in Java.

We can do this in Java now we've exposed poll(2).

Change-Id: I9f2700d09134198c1cd2681e3814fb482e8e271c
ava/io/InterruptedIOException.java
ava/net/MalformedURLException.java
ava/net/NoRouteToHostException.java
ava/net/PortUnreachableException.java
ava/net/ProtocolException.java
ava/net/SocketException.java
ava/net/SocketTimeoutException.java
ava/net/UnknownServiceException.java
ava/nio/SocketChannelImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/IoUtils.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
396af46f45fd302e6309fc48ac1fd68cbb739edb 12-May-2011 Jesse Wilson <jessewilson@google.com> Add the application version to the DiskLruCache journal.

This makes it easy for us to change how we store HTTP cache
data without fear of compatibility problems.

Change-Id: I26cd6645d26f359ab76e2f87b6ab73bbf24ab715
http://b/3180373
ibcore/io/DiskLruCache.java
ibcore/net/http/DiskResponseCache.java
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpResponseCache.java
ca8ae42fd6a787757897a680108bdcf7b0d37f13 12-May-2011 Jesse Wilson <jessewilson@google.com> Provide more user-friendly HTTP cache stats.

Rather than strictly trackign what's convenient for implementation,
we now provide stats based on what we anticipate the user will want
to know:
- how many requests were made?
- how many requests required network use?
- how many requests were served by the cache?

This doesn't provide individual stats on how many conditional gets
were made, but those can be computed.

Change-Id: Ieeebaf8b98664e78f828971052404dd7da28ad78
http://b/3180373
ibcore/net/http/DiskResponseCache.java
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpResponseCache.java
757afaa7afe96791a3cc612c9e3c4597a7321c7e 12-May-2011 Jesse Wilson <jessewilson@google.com> Provide hit and miss stats on the HTTP response cache.

Also capture FDs rather than InputStreams when a cache
entry is read. This permits the cache to return as many
streams as the caller requires.

Also fix bugs where we weren't properly releasing the
input streams from the responses.

Change-Id: I04807eab648864229f1e8734ad1fbb6a2d6bb51d
http://b/3180373
ibcore/io/DiskLruCache.java
ibcore/net/http/AbstractHttpInputStream.java
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpResponseCache.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/HttpsURLConnectionImpl.java
75aa19a024587f0ae91bd4c2d6e48645497ac44d 12-May-2011 Elliott Hughes <enh@google.com> Merge "Expose poll(2) and reimplement java.nio.channels.Selector." into dalvik-dev
70c820401677ca251ad09ac64cc23c760764e75d 12-May-2011 Elliott Hughes <enh@google.com> Expose poll(2) and reimplement java.nio.channels.Selector.

This also adds UnsafeArrayList<T>, which is like ArrayList but lets you access
the underlying array (as opposed to ArrayList.toArray which creates a copy).

Bug: 3107501
Change-Id: I8dc570a9fd7951b1435047017ea7aa19f8f8fc53
ava/nio/SelectorImpl.java
ava/util/AbstractList.java
ava/util/UnsafeArrayList.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/OsConstants.java
ibcore/io/Posix.java
ibcore/io/StructPollfd.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
1724d9cddbf0e0f4e35f5c5d83bc335994f0286e 11-May-2011 Jesse Wilson <jessewilson@google.com> Support Eviction in DiskLruCache.

Change-Id: I84f536e597efb4c2b8dd519261b327dcd3e9eefa
http://b/3180373
ibcore/io/DiskLruCache.java
6716a68492cbad8cf71e4941beb1fece7858a3cd 11-May-2011 Jesse Wilson <jessewilson@google.com> Merge "Address code review comments to Adopt DiskLruCache change." into dalvik-dev
0038bf3674d6fedd4c1e884c7903f2fdcecb9127 11-May-2011 Elliott Hughes <enh@google.com> Merge "Clean up the select(2) implementation." into dalvik-dev
f589846f86761ffea3c06ab9d105d3f19328d121 11-May-2011 Jesse Wilson <jessewilson@google.com> Address code review comments to Adopt DiskLruCache change.

That change was submitted too early. This is the missing
follow-up.

Change-Id: I521455a7d249f8841c989561775c91d4368a8966
http://b/3180373
ava/net/URLClassLoader.java
ava/util/jar/JarFile.java
ibcore/io/DiskLruCache.java
ibcore/io/IoUtils.java
ibcore/io/Streams.java
ibcore/net/http/ChunkedInputStream.java
ibcore/net/http/HttpEngine.java
2005fa732c2f13cb3405d31f3d45ea10afdff46f 11-May-2011 Jesse Wilson <jessewilson@google.com> Merge "Adopt DiskLruCache in HttpResponseCache." into dalvik-dev
a7bb29434692e01aed843b88cd042628bab74a23 11-May-2011 Elliott Hughes <enh@google.com> Clean up the select(2) implementation.

I wasn't planning on touching this code (since I want to replace it), but the
purported "fix" for http://code.google.com/p/android/issues/detail?id=6309 was
actually a regression. The supplied test fails on the RI. This patch replaces
the bogus test with new tests, and reverts the old "fix".

This was found while trying to work out what "true" and "false" return values
from OSNetworkSystem.select are supposed to mean. This patch also switches to
a more traditional int return value.

Bug: 3107501
Change-Id: Iddce55e081d440b7eb3ddcf94db7d0739dc89c70
ava/nio/SelectorImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
433e3fac172d0c4449051b0c61c0c63b298a0903 11-May-2011 Jesse Wilson <jessewilson@google.com> Adopt DiskLruCache in HttpResponseCache.

http://b/3180373

Change-Id: I55ed45c5d0b8fc72cf50e8912416367ac802dc7a
ava/lang/IntegralToString.java
ibcore/io/DiskLruCache.java
ibcore/io/IoUtils.java
ibcore/net/http/ChunkedInputStream.java
ibcore/net/http/HttpEngine.java
ibcore/net/http/RawHeaders.java
32b0fa4d1a31ef07bc4297c615f0fe50e9aa7c21 11-May-2011 Elliott Hughes <enh@google.com> DatagramSocket.disconnect is really a connect(2) of an AF_UNSPEC sockaddr.

Bug: 3107501
Change-Id: Ib04369b9ca63ff3fe7eb87dcbf2926fe704813e3
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/PlainDatagramSocketImpl.java
ava/nio/DatagramChannelImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
8e0bdcf8bb815078e28679b8111d590d2da83328 11-May-2011 Jesse Wilson <jessewilson@google.com> Merge "Dont line wrap Base64." into dalvik-dev
32b2c95c350002f67c8b3e65777161feda766b72 10-May-2011 Jesse Wilson <jessewilson@google.com> Dont line wrap Base64.

Change-Id: I9a16a09dad9ff170921591455b17a3b738e70655
ava/util/jar/JarVerifier.java
ava/util/prefs/AbstractPreferences.java
ibcore/io/Base64.java
ibcore/net/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/util/Base64.java
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
10ae8253e9d976588de538d76cb30dd5dc32a0be 10-May-2011 Elliott Hughes <enh@google.com> Merge "Expose connect(2)." into dalvik-dev
b4edeb4bd130b1a1d0ba33f374d411cf48590f8e 10-May-2011 Jesse Wilson <jessewilson@google.com> DiskLruCache, backing store for the HttpResponseCache.

This is a work in progress. This cache doesn't yet have support
for eviction or journal compaction. This isn't intended to ever
be public API but it should still have some user documentation.

Change-Id: I62800661a8170ee117622b799836f17226abb7e4
http://b/3180373

Conflicts:

luni/src/main/java/libcore/io/IoUtils.java
ibcore/io/DiskLruCache.java
ibcore/io/IoUtils.java
996bf79565ac88402920bd826d6f85952c83be20 10-May-2011 Elliott Hughes <enh@google.com> Expose connect(2).

The new NET_FAILURE_RETRY in Posix.cpp is intended to replace the legacy one
in NetFd.h, but during the transition we need both. The new one also takes care
of the asynchronous Socket.close semantics, and changes the behavior when the
FileDescriptor is invalid on entry: that is now reported as EBADF; it's only
reported as "Socket closed" when we've been round the loop at least once,
giving us reason to believe the socket was ever open. Having had to debug this
distinction, I think the new semantics are less confusing.

Bug: 3107501
Change-Id: I243dc4fa2eddde7ba40e9b66ec8fc555bc4e80f9
ava/net/ConnectException.java
ava/net/PlainSocketImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
da15009528cc8300a6251f1d0931ac8657c9fc31 09-May-2011 Elliott Hughes <enh@google.com> Expose bind(2).

I've renamed the java.net.InetAddress to struct sockaddr conversion functions
too, after initially screwing up this patch by copy & pasting a usage of the
one that only one caller actually wants. Now the name's so ugly no-one will
be likely to use it by accident.

Bug: 3107501
Change-Id: I869a8d27fc40e462505e02bf25a67e771a403e92
ava/net/BindException.java
ava/net/InetAddress.java
ava/net/PlainDatagramSocketImpl.java
ava/net/PlainSocketImpl.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
49ff8b8582bca20a1adbda1d957220526332a8ca 06-May-2011 Elliott Hughes <enh@google.com> More networking cleanup.

Move a bit more work into Java.

Change-Id: I656ec6e3c792ce9baed32662d65c45d75af1d371
ava/net/PlainSocketImpl.java
ava/nio/SocketChannelImpl.java
42d75577588240e7d79fe52e635f0c1df070672e 06-May-2011 Elliott Hughes <enh@google.com> Add a test for a publicly-reported bug I already fixed.

Another casualty of the honeycomb asXBuffer byte order bug.

Bug: http://code.google.com/p/android/issues/detail?id=16598
Change-Id: I885d9f1651238a5d2aadf3fef7d119775f742fdf
ava/nio/CharBuffer.java
9ce0b45b039aa49ce19d7375c7f95b35b0f1392a 06-May-2011 Jesse Wilson <jessewilson@google.com> Merge "Test that headers aren't accidentally transferred across requests." into dalvik-dev
9531eea15052eccc004b5f853ab4452becf7a8ab 06-May-2011 Jesse Wilson <jessewilson@google.com> Test that headers aren't accidentally transferred across requests.

We used to have a bug where we'd only ever add headers. So if
a request was redirected from a.com to b.com to c.com, then
c.com would be able to see cookies from the other two hosts.

This was fixed by the HttpEngine refactor, but tests haven't
been added until now.

Change-Id: I01588fe9662aae7404fef4d4b2c4f0468e7c670d
http://b/3180373
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpURLConnectionImpl.java
fc74884d523506f4bf0508d27a7ffeb4e051bd8f 06-May-2011 Elliott Hughes <enh@google.com> Merge "Fix non-blocking DatagramChannel.receive and ServerSocketChannel.accept." into dalvik-dev
a3b57e9cb41fb00ac607cd330fa73270b564b66c 06-May-2011 Elliott Hughes <enh@google.com> Fix non-blocking DatagramChannel.receive and ServerSocketChannel.accept.

The former problem was the reported bug, but the latter was another instance of
the same mistake, and much harder to fix.

The interesting change here is that we now create the SocketImpl (and thus the
underlying OS socket) for a ServerSocket much sooner than we used to: if the
constructor doesn't throw, you've got yourself a usable socket.

Bug: http://code.google.com/p/android/issues/detail?id=16579
Change-Id: Iac8b707e74cd1367ee0fdc22fc3969677cfa566c
ava/net/DatagramSocket.java
ava/net/PlainServerSocketImpl.java
ava/net/ServerSocket.java
ava/net/SocketImpl.java
ava/nio/DatagramChannelImpl.java
ava/nio/ServerSocketChannelImpl.java
ava/nio/SocketChannelImpl.java
ava/nio/channels/spi/AbstractSelectableChannel.java
2f16d502415452f808b5f077ad07b941645d14e4 06-May-2011 Jesse Wilson <jessewilson@google.com> Support Cache-Control 'must-revalidate' directive.

Change-Id: I98094e90307e7a39e40de6a09f34f038ad143ea4
http://b/3180373
ibcore/net/http/ResponseHeaders.java
c996149b500fc4825156106554457fe2394ae087 06-May-2011 Jesse Wilson <jessewilson@google.com> Fix proxy+HTTPS to handle authentication requests from the proxy.

Previously I'd introduced a bug by assuming that CONNECT
responses would always be successful.

Change-Id: Iaf0caf67f52154f6951a20284c75db0090843b99
http://b/4188137
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/HttpsURLConnectionImpl.java
19c77c6a6da8cea7327ccbb741963ac76d3fae53 05-May-2011 Jesse Wilson <jessewilson@google.com> Address some test failures in the HTTP client.

Change-Id: I44783aa7cadd51ed6b9e7aabc94144c60252c095
http://b/3180373
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/HttpsURLConnectionImpl.java
9310e27663450b818968ef2cb4cdeb8fca1c1af0 05-May-2011 Elliott Hughes <enh@google.com> Merge "Set the sin6_scope_id field when translating an Inet6Address to a sockaddr." into dalvik-dev
d742d7fc7f0593eb8c6e4ac9dd4c0f6a80374e46 05-May-2011 Jesse Wilson <jessewilson@google.com> Use GET after a POST is redirected.

Also dropping support for response code 305 Use Proxy, which
is seldom used, and whose behavior is quite different from
Chrome and Firefox. This is an intentional delta from the RI.

Also testing disconnect().

Change-Id: I80433f4776a2cfc5e228179421a787a44a4ded69
http://b/3180373
ava/net/HttpURLConnection.java
ava/net/URLConnection.java
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpURLConnectionImpl.java
c06e5e270b958aeb8060cd7f2576c0f1e6ac415e 05-May-2011 Elliott Hughes <enh@google.com> Set the sin6_scope_id field when translating an Inet6Address to a sockaddr.

This basically means link-local IPv6 addresses have never worked on Android.

Change-Id: I343493cbbde1e4441385487f054c4bdad5dcef52
rg/apache/harmony/luni/platform/OSNetworkSystem.java
a4193d7e636802a2705ffb52cb69c69ff59bfbb2 05-May-2011 Jesse Wilson <jessewilson@google.com> Clean up HTTP engine connection reuse.

Also fixing cached responses to set warnings on the
response header and not the request header.

Change-Id: I4def2abf00e43aedc4baa63d1624bfa2f4d9bc16
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/ResponseHeaders.java
ce1150d9897bd5baf66de4a8db132afce18be15a 05-May-2011 Jesse Wilson <jessewilson@google.com> Merge "Refactor HttpURLConnection implementation." into dalvik-dev
953df613522e12a418cb7cb73248594d6c9f53d4 03-May-2011 Jesse Wilson <jessewilson@google.com> Refactor HttpURLConnection implementation.

Break HttpURLConnectionImpl into two parts: the part that
implements the Java API (that follows redirects etc.) and
the part that speaks HTTP. The HTTP part is called HttpEngine,
and it can only be used for a single HTTP request. This makes
it easier to set request properties that only apply to a
single socket request.

Tests for 'Vary', 'Content-Location' and warnings.

For simplicity of implementation I've chosen not to support
'Vary' at this time.

The 'Content-Location' header doesn't require any work from
the cache.

Warnings are ugly but allow the caller to identify when the
cache results may be problematic.

Also breaking HttpResponseCache's dependency on HttpURLConnectionImpl
so it can be tested on the RI.

Change-Id: Idbabb51251f479c2cdea4e0fceb029bfd07182be
http://b/3180373
ava/net/HttpURLConnection.java
ava/net/URLConnection.java
ibcore/net/http/AbstractHttpInputStream.java
ibcore/net/http/ChunkedInputStream.java
ibcore/net/http/FixedLengthInputStream.java
ibcore/net/http/HttpConnection.java
ibcore/net/http/HttpEngine.java
ibcore/net/http/HttpHeaders.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/HttpsURLConnectionImpl.java
ibcore/net/http/RawHeaders.java
ibcore/net/http/RequestHeaders.java
ibcore/net/http/ResponseHeaders.java
ibcore/net/http/UnknownLengthHttpInputStream.java
1c039d71d3879f39e3a75b8788e656f7b4f88f08 05-May-2011 Elliott Hughes <enh@google.com> Add getaddrinfo(2).

This only supports the "node" side of getaddrinfo(2), not the "service" side.
There's also no support for AI_CANONNAME, so we currently return InetAddress[]
rather than anything equivalent to C's linked list of struct addrinfo.

Bug: 3107501
Change-Id: I8cf6baa3027a0fa05ac6e2f8fcc1dd8b576ff8c4
ava/net/InetAddress.java
ava/net/URI.java
ibcore/io/ForwardingOs.java
ibcore/io/GaiException.java
ibcore/io/Os.java
ibcore/io/OsConstants.java
ibcore/io/Posix.java
ibcore/io/StructAddrinfo.java
ibcore/io/StructFlock.java
ibcore/io/StructStat.java
ibcore/io/StructStatFs.java
ibcore/io/StructUtsname.java
d6ecf9222ec65a08e99f15fcc4ec024f0fffd13a 04-May-2011 Elliott Hughes <enh@google.com> Fix non-blocking connects.

The key change here is reintroducing the boolean return value, which we need
as long as the native code treats EINPROGRESS as a special case which doesn't
throw.

The rest is just drive-by incremental cleanup of the code.

Change-Id: I761b052adbb14e912c3853a35327f8a589cd4023
ava/nio/SocketChannelImpl.java
ibcore/io/IoUtils.java
0406097759dafaee2390e3ff8dbabd5a1d098122 03-May-2011 Jesse Wilson <jessewilson@google.com> Split CacheHeader into RequestHeader and ResponseHeader.

Fix suspicious use of the word 'header' in the HttpURLConnectionImpl.
Use 'header field' and 'headers' as necessary.

Change-Id: I502808005a727772091e5770a517d3170e102549
http://b/3180373
ibcore/net/http/CacheHeader.java
ibcore/net/http/HeaderParser.java
ibcore/net/http/HttpConnection.java
ibcore/net/http/HttpConnectionPool.java
ibcore/net/http/HttpHandler.java
ibcore/net/http/HttpHeaders.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/HttpsHandler.java
ibcore/net/http/HttpsURLConnectionImpl.java
ibcore/net/http/RequestHeaders.java
ibcore/net/http/ResponseHeaders.java
21dddca4064527116af7a1553de502c6d11138da 03-May-2011 Jesse Wilson <jessewilson@google.com> Cache authorization headers and default expiration date.

Neither of these are particularly pretty. Authorization is a
silly special case in the spec that makes caching opt-in rather
than opt-out. Default expiration dates are reasonable but require
a hack to not cache get queries like http://foo.com/?q=bar.

http://b/3180373

Change-Id: Ica76ccfde30fe1e7a0d64895ef5370b43bd980ec
ibcore/net/http/CacheHeader.java
ibcore/net/http/HttpURLConnectionImpl.java
a204b444b07de3d7d5917ce8b450c804e52e8bf5 02-May-2011 Jesse Wilson <jessewilson@google.com> Merge "Honor client conditions in HTTP response caching." into dalvik-dev
84f1fd18b9db6fc6f2bb65694bee99d42f88bb79 02-May-2011 Jesse Wilson <jessewilson@google.com> Honor client conditions in HTTP response caching.

Also whitelist acceptable response codes and use the same
logic in both the write-to and read-from cache code paths.

Change-Id: I9500c6c2c0f9bb35e05e2a3443542a86de76cb66
http://b/3180373
ibcore/net/http/CacheHeader.java
ibcore/net/http/HttpURLConnectionImpl.java
4bccd48c4bab2c92a34caf3401d379895d2947b6 02-May-2011 Elliott Hughes <enh@google.com> Merge "Rewrite blocking connects in terms of the non-blocking primitives." into dalvik-dev
220c0af1763283b75617226efe3919c3e3b044c8 30-Apr-2011 Elliott Hughes <enh@google.com> Rewrite blocking connects in terms of the non-blocking primitives.

This simplifies OSNetworkSystem, getting us closer to replacing the
connect(2)-related bits with our new POSIX interface. It also lets
us remove cruft on the Java side that was resetting the socket's
blocking/non-blocking state (which should never have been touched),
which in turn fixes bug 4193212.

Detail messages for socket timeouts get better too, now we're throwing
on the Java side.

The only thing that's worse is that we used to get away with throwing
a checked exception from native code, which simplified our "throws"
clauses. Now we actually have to jump through a few hoops to make javac
happy. (Especially awkward because SocketTimeoutException isn't a
SocketException.) Stupid checked exceptions.

Bug: 4193212
Bug: 3107501
Change-Id: I00695d22094e6d785458dfbb7050fbaecf2db89f
ava/net/InetAddress.java
ava/net/PlainDatagramSocketImpl.java
ava/net/PlainSocketImpl.java
ava/net/SocketException.java
ava/nio/DatagramChannelImpl.java
ava/nio/SocketChannelImpl.java
ava/nio/channels/spi/AbstractSelectableChannel.java
ibcore/io/IoUtils.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
c9e12f729cb962eb60754e4500312421c46e71dd 30-Apr-2011 Jesse Wilson <jessewilson@google.com> Adding support for only-if-cached request header.

This is somewhat ugly because it means we need to fake a 502 bad gateway
status when the response would otherwise be a cached or conditionally
cached result.

Also adding support for max-stale. This completes the set of three
client cache timing headers, max-age, min-fresh and max-stale.

Change-Id: I923a3e5a4685989cb49fb57d6a1359e10026b94b
http://b/3180373
ibcore/net/http/CacheHeader.java
ibcore/net/http/HttpURLConnectionImpl.java
d02c73b1db5e11d4d0b03da536e4d99a857b0c23 30-Apr-2011 Jesse Wilson <jessewilson@google.com> Merge "Honor max-age and min-fresh request headers." into dalvik-dev
d7a21ec11a89594497f35f731b42d98af72e1235 30-Apr-2011 Brian Carlstrom <bdc@google.com> resolved conflicts for merge of 7195b3b9 to dalvik-dev

Change-Id: Ie1f2d796466f1799929b010d67585fd551b6f840
0c814baa7aff1b0845b2ad36c62dc791700732e1 30-Apr-2011 Brian Carlstrom <bdc@google.com> am 347b2a60: Avoid loading all CA certs into Zygote memory, lazily load instead (2 of 3)

* commit '347b2a604114602da9bc4ae040278f74d11c2f51':
Avoid loading all CA certs into Zygote memory, lazily load instead (2 of 3)
7195b3b965df5c3288435d94e8d13bd256e33890 30-Apr-2011 Brian Carlstrom <bdc@google.com> Merge "Fix X509CertImpl.verify(PublicKey, String) to respect provider argument"
adb64fbba2b781467e055706c3de0873dfc01166 30-Apr-2011 Jesse Wilson <jessewilson@google.com> Honor max-age and min-fresh request headers.

We now honor headers from both the server's response (which
we have cached) and the client's request.

Change-Id: Ib46e4fc0c5dd5b3e74cff8f45eea2dda51d20b94
http://b/3180373
ibcore/net/http/CacheHeader.java
ibcore/net/http/HttpURLConnectionImpl.java
fe2dea5d0747cbe711fcf64f89845735f4da10c2 30-Apr-2011 Jesse Wilson <jessewilson@google.com> Hack to fix URLConnectionTest.

We weren't preparing the request headers early enough
for some requests. This code needs some hefty refactoring,
but I'm putting this quick hack in to get tests working
until that's done.

http://b/3180373

Change-Id: I03dbd306070bd21b4c7e86052b0b41339cbab628
ibcore/net/http/HttpURLConnectionImpl.java
91922d920e0020bde20ef5ae21b66cab847dd58b 30-Apr-2011 Brian Carlstrom <bdc@google.com> Fix X509CertImpl.verify(PublicKey, String) to respect provider argument

Mostly a cleanup of CertificateTest, but it found one small bug in X509CertImpl
- X509CertImpl.verify with a specific provider should use that provider,
not ignore it and use the NativeCrypto fast path
- Fix the bad testGetEncoded logic that was expected PEM bytes to
equal a DER encodi
- Remove libcore and harmony dependencies that were preventing these
from running on the RI
- Note testSerializationCompatibility is still failing, but is fixed
by the unmerged 46c6fad9fad8f3dbbc82516232a225f37d332ca7

Bug: 1635707
Change-Id: Ib86d21d6458cf1438c6ddd715ccb5a4f8a9af9e6
rg/apache/harmony/security/provider/cert/X509CertImpl.java
9b35d1ad04cdaf0905aee3cb04064ba977e846ac 29-Apr-2011 Jesse Wilson <jessewilson@google.com> Improve parsing of HTTP caching headers.

Change-Id: Ie2b4c76ac97cc7a4783bd6a695cfb28f7ea2296f
http://b/3180373
ibcore/net/http/CacheHeader.java
ibcore/net/http/HttpHeaders.java
ibcore/net/http/HttpURLConnectionImpl.java
347b2a604114602da9bc4ae040278f74d11c2f51 26-Apr-2011 Brian Carlstrom <bdc@google.com> Avoid loading all CA certs into Zygote memory, lazily load instead (2 of 3)

Previously the CA certs stored in the BKS KeyStore at
/system/etc/security/cacerts.bks was loaded in the Zygote. As the the
number of CAs are started to increase, this is causing more and more
memory to be used for rarely used CAs. The new AndroidCAStore KeyStore
implementation reads the CAs as needed out of individual PEM
certificate files. The files can be efficiently found because they are
named based on a hash CA's subject name, similar to OpenSSL.

Bug: 1109242

Details:

build

Removing old cacerts.bks from GRANDFATHERED_ALL_PREBUILT and
adding new cacerts directory to core PRODUCT_PACKAGES

core/legacy_prebuilts.mk
target/product/core.mk

libcore

cacerts build changes. Move cacerts prebuilt logic to new
CaCerts.mk from NativeCode.mk where it didn't make sense. Updated
Android.mk's dalvik-host target to install new cacerts files.

Android.mk
CaCerts.mk
NativeCode.mk

Remove old cacerts.bks and add remove certimport.sh script used to
generate it. Preserved the useful comments from certimport.sh in
the new README.cacerts

luni/src/main/files/cacerts.bks
luni/src/main/files/certimport.sh
luni/src/main/files/README.cacerts

Recanonicalize cacerts files using updated vendor/google/tools/cacerts/certimport.py
(See below discussion of certimport.py changes for details)

luni/src/main/files/cacerts/00673b5b.0
luni/src/main/files/cacerts/03e16f6c.0
luni/src/main/files/cacerts/08aef7bb.0
luni/src/main/files/cacerts/0d188d89.0
luni/src/main/files/cacerts/10531352.0
luni/src/main/files/cacerts/111e6273.0
luni/src/main/files/cacerts/1155c94b.0
luni/src/main/files/cacerts/119afc2e.0
luni/src/main/files/cacerts/11a09b38.0
luni/src/main/files/cacerts/12d55845.0
luni/src/main/files/cacerts/17b51fe6.0
luni/src/main/files/cacerts/1920cacb.0
luni/src/main/files/cacerts/1dac3003.0
luni/src/main/files/cacerts/1dbdda5b.0
luni/src/main/files/cacerts/1dcd6f4c.0
luni/src/main/files/cacerts/1df5ec47.0
luni/src/main/files/cacerts/1e8e7201.0
luni/src/main/files/cacerts/1eb37bdf.0
luni/src/main/files/cacerts/219d9499.0
luni/src/main/files/cacerts/23f4c490.0
luni/src/main/files/cacerts/27af790d.0
luni/src/main/files/cacerts/2afc57aa.0
luni/src/main/files/cacerts/2e8714cb.0
luni/src/main/files/cacerts/2fa87019.0
luni/src/main/files/cacerts/2fb1850a.0
luni/src/main/files/cacerts/33815e15.0
luni/src/main/files/cacerts/343eb6cb.0
luni/src/main/files/cacerts/399e7759.0
luni/src/main/files/cacerts/3a3b02ce.0
luni/src/main/files/cacerts/3ad48a91.0
luni/src/main/files/cacerts/3c58f906.0
luni/src/main/files/cacerts/3c860d51.0
luni/src/main/files/cacerts/3d441de8.0
luni/src/main/files/cacerts/3e7271e8.0
luni/src/main/files/cacerts/418595b9.0
luni/src/main/files/cacerts/455f1b52.0
luni/src/main/files/cacerts/46b2fd3b.0
luni/src/main/files/cacerts/48478734.0
luni/src/main/files/cacerts/4d654d1d.0
luni/src/main/files/cacerts/4e18c148.0
luni/src/main/files/cacerts/4fbd6bfa.0
luni/src/main/files/cacerts/5021a0a2.0
luni/src/main/files/cacerts/5046c355.0
luni/src/main/files/cacerts/524d9b43.0
luni/src/main/files/cacerts/56b8a0b6.0
luni/src/main/files/cacerts/57692373.0
luni/src/main/files/cacerts/58a44af1.0
luni/src/main/files/cacerts/594f1775.0
luni/src/main/files/cacerts/5a3f0ff8.0
luni/src/main/files/cacerts/5a5372fc.0
luni/src/main/files/cacerts/5cf9d536.0
luni/src/main/files/cacerts/5e4e69e7.0
luni/src/main/files/cacerts/60afe812.0
luni/src/main/files/cacerts/635ccfd5.0
luni/src/main/files/cacerts/67495436.0
luni/src/main/files/cacerts/69105f4f.0
luni/src/main/files/cacerts/6adf0799.0
luni/src/main/files/cacerts/6e8bf996.0
luni/src/main/files/cacerts/6fcc125d.0
luni/src/main/files/cacerts/72f369af.0
luni/src/main/files/cacerts/72fa7371.0
luni/src/main/files/cacerts/74c26bd0.0
luni/src/main/files/cacerts/75680d2e.0
luni/src/main/files/cacerts/7651b327.0
luni/src/main/files/cacerts/76579174.0
luni/src/main/files/cacerts/7999be0d.0
luni/src/main/files/cacerts/7a481e66.0
luni/src/main/files/cacerts/7a819ef2.0
luni/src/main/files/cacerts/7d3cd826.0
luni/src/main/files/cacerts/7d453d8f.0
luni/src/main/files/cacerts/81b9768f.0
luni/src/main/files/cacerts/8470719d.0
luni/src/main/files/cacerts/84cba82f.0
luni/src/main/files/cacerts/85cde254.0
luni/src/main/files/cacerts/86212b19.0
luni/src/main/files/cacerts/87753b0d.0
luni/src/main/files/cacerts/882de061.0
luni/src/main/files/cacerts/895cad1a.0
luni/src/main/files/cacerts/89c02a45.0
luni/src/main/files/cacerts/8f7b96c4.0
luni/src/main/files/cacerts/9339512a.0
luni/src/main/files/cacerts/9685a493.0
luni/src/main/files/cacerts/9772ca32.0
luni/src/main/files/cacerts/9d6523ce.0
luni/src/main/files/cacerts/9dbefe7b.0
luni/src/main/files/cacerts/9f533518.0
luni/src/main/files/cacerts/a0bc6fbb.0
luni/src/main/files/cacerts/a15b3b6b.0
luni/src/main/files/cacerts/a3896b44.0
luni/src/main/files/cacerts/a7605362.0
luni/src/main/files/cacerts/a7d2cf64.0
luni/src/main/files/cacerts/ab5346f4.0
luni/src/main/files/cacerts/add67345.0
luni/src/main/files/cacerts/b0f3e76e.0
luni/src/main/files/cacerts/bc3f2570.0
luni/src/main/files/cacerts/bcdd5959.0
luni/src/main/files/cacerts/bda4cc84.0
luni/src/main/files/cacerts/bdacca6f.0
luni/src/main/files/cacerts/bf64f35b.0
luni/src/main/files/cacerts/c0cafbd2.0
luni/src/main/files/cacerts/c215bc69.0
luni/src/main/files/cacerts/c33a80d4.0
luni/src/main/files/cacerts/c527e4ab.0
luni/src/main/files/cacerts/c7e2a638.0
luni/src/main/files/cacerts/c8763593.0
luni/src/main/files/cacerts/ccc52f49.0
luni/src/main/files/cacerts/cdaebb72.0
luni/src/main/files/cacerts/cf701eeb.0
luni/src/main/files/cacerts/d16a5865.0
luni/src/main/files/cacerts/d537fba6.0
luni/src/main/files/cacerts/d64f06f3.0
luni/src/main/files/cacerts/d777342d.0
luni/src/main/files/cacerts/d8274e24.0
luni/src/main/files/cacerts/dbc54cab.0
luni/src/main/files/cacerts/ddc328ff.0
luni/src/main/files/cacerts/e48193cf.0
luni/src/main/files/cacerts/e60bf0c0.0
luni/src/main/files/cacerts/e775ed2d.0
luni/src/main/files/cacerts/e7b8d656.0
luni/src/main/files/cacerts/e8651083.0
luni/src/main/files/cacerts/ea169617.0
luni/src/main/files/cacerts/eb375c3e.0
luni/src/main/files/cacerts/ed049835.0
luni/src/main/files/cacerts/ed524cf5.0
luni/src/main/files/cacerts/ee7cd6fb.0
luni/src/main/files/cacerts/f4996e82.0
luni/src/main/files/cacerts/f58a60fe.0
luni/src/main/files/cacerts/f61bff45.0
luni/src/main/files/cacerts/f80cc7f6.0
luni/src/main/files/cacerts/fac084d7.0
luni/src/main/files/cacerts/facacbc6.0
luni/src/main/files/cacerts/fde84897.0
luni/src/main/files/cacerts/ff783690.0

Change IntegralToString.intToHexString to take width argument to
allow for leading zero padding. Updated existing callers to
specify 0 padding desired. Add testing of new padding
functionality.

luni/src/main/java/java/lang/Character.java
luni/src/main/java/java/lang/Integer.java
luni/src/main/java/java/lang/IntegralToString.java
luni/src/test/java/libcore/java/lang/IntegralToStringTest.java

Improved to throw Exceptions with proper causes

luni/src/main/java/java/security/KeyStore.java
luni/src/main/java/java/security/Policy.java
luni/src/main/java/java/security/cert/CertificateFactory.java
luni/src/main/java/javax/crypto/Cipher.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java

Indentation fixes

luni/src/main/java/java/security/SecureRandom.java

Fix X509CRLSelector.getIssuerNames to clone result and added test to cover this.

luni/src/main/java/java/security/cert/X509CRLSelector.java
luni/src/test/java/libcore/java/security/cert/X509CRLSelectorTest.java

Fixed bug where we created an X500Principal via a String
representation instead of from its original encoded bytes. This
led to a difficult to track down bug where CA 418595b9.0 where the
NativeCode.X509_NAME_hash of a Harmony (but not BouncyCastle)
X509Certificate would not hash to the expected value because the
encoded form used an ASN.1 PrintableString instead of the
UTF8String form found in the original certificate.

luni/src/main/java/org/apache/harmony/security/x501/Name.java

Add a new RootKeyStoreSpi and register it as the
AndroidCAStore. This new read-only KeyStore implementation that
looks for certificates in $ANDROID_ROOT/etc/security/cacerts/
directory, which is /system/etc/security/cacerts/ on devices. The
files are stored in the directory based on the older md5 based
OpenSSL X509_NAME_hash function (now referred to as
X509_NAME_hash_old in OpenSSL 1.0)

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/RootKeyStoreSpi.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/JSSEProvider.java

Added OpenSSL compatible X509_NAME_hash and X509_NAME_hash_old
functions for producting an int hash value from an X500Principal.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java

Changed TrustManagerFactoryImpl to use AndroidCAStore for its default KeyStore

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/TrustManagerFactoryImpl.java

Changed TrustManagerImpl to be AndroidCAStore aware. If it detects
an AndroidCAStore, it avoids generating the acceptedIssuers array
at constructions, since doing so would force us to parse all
certificates in the store and the value is only typically used by
SSLServerSockets when requesting a client certifcate. Because we
don't load all the trusted CAs into the IndexedPKIXParameters at
startup in the case of AndroidCAStore, we now check for new CAs
when examining the cert chain for unnecessary TrustAnchors and for
a newly discovered issuer at the end of the chain before
validation.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java

Updated KeyStoreTest to cope with read only KeyStore. Update
test_cacerts_bks (now renamed test_cacerts) to use the
AndroidCAStore for validating system CA certificate
validity. Register AndroidCAStore as an expected KeyStore type
with StandardNames.

luni/src/test/java/libcore/java/security/KeyStoreTest.java
support/src/test/java/libcore/java/security/StandardNames.java

Added test of X500Principal serialization while investigating Name
encoding issue. However, the actual Name bug was found and
verified by the new test_cacerts test.

luni/src/test/java/libcore/javax/security/auth/x500/X500PrincipalTest.java

vendor/google

Change canonical format for checked in cacerts to have PEM
certificate at the top, as required by Harmony's X.509
CertificateFactory.

tools/cacerts/certimport.py

Change-Id: If0c9de430f13babb07f96a1177897c536f3db08d
ava/lang/Character.java
ava/lang/Integer.java
ava/lang/IntegralToString.java
ava/security/KeyStore.java
ava/security/Policy.java
ava/security/SecureRandom.java
ava/security/cert/CertificateFactory.java
ava/security/cert/X509CRLSelector.java
avax/crypto/Cipher.java
rg/apache/harmony/security/x501/Name.java
rg/apache/harmony/xnet/provider/jsse/JSSEProvider.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
rg/apache/harmony/xnet/provider/jsse/RootKeyStoreSpi.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
92e33d7e684469ef294d5517e65a631b369c8e28 29-Apr-2011 Elliott Hughes <enh@google.com> Better regular expression exception detail messages.

Before:
Caused by: java.util.regex.PatternSyntaxException: Syntax error U_REGEX_MISSING_CLOSE_BRACKET near index 6:
hello[
^
at java.util.regex.Pattern.compileImpl(Native Method)
at java.util.regex.Pattern.compile(Pattern.java:400)
at java.util.regex.Pattern.<init>(Pattern.java:383)
at java.util.regex.Pattern.compile(Pattern.java:374)

After:
Caused by: java.util.regex.PatternSyntaxException: Missing closing bracket in character class near index 6:
hello[
^
at java.util.regex.Pattern.compileImpl(Native Method)
at java.util.regex.Pattern.compile(Pattern.java:400)
at java.util.regex.Pattern.<init>(Pattern.java:383)
at java.util.regex.Pattern.compile(Pattern.java:374)

Some of the messages might still want some tuning, but we can improve them
over time.

Bug: 2974820
Change-Id: I4f41582030168847d22c5323125fde6928d0fc40
ava/util/regex/PatternSyntaxException.java
00bb52d949cf48eb46658ec48e2c52790b8a1bba 29-Apr-2011 Jesse Wilson <jessewilson@google.com> Merge "Support conditional gets in HttpURLConnection." into dalvik-dev
0c59055dd24e1659f85d9ff7e2148883f663bd62 27-Apr-2011 Jesse Wilson <jessewilson@google.com> Support conditional gets in HttpURLConnection.

This is the first step towards adding an HTTP response cache.
There's still much to do; details are listed on the bug.

Change-Id: Ie693fe424d1d90e90576fc959595e4d96a31f767
http://b/3180373
ava/net/HttpCookie.java
ava/net/URLConnection.java
ibcore/net/http/CacheHeader.java
ibcore/net/http/ChunkedInputStream.java
ibcore/net/http/HttpDate.java
ibcore/net/http/HttpHeaders.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/HttpsURLConnectionImpl.java
ibcore/net/http/ResponseSource.java
87c354d8d6faa77dee1820df2f0ad2666b9f0331 29-Apr-2011 Elliott Hughes <enh@google.com> Fix the byte order of non-ByteBuffer duplicate and slice results.

ByteBuffer.duplicate and ByteBuffer.slice always return big-endian buffers.
Any other kind of buffer returns a buffer with the same endian as itself.

We didn't have tests for the latter, and broke this in Honeycomb.

Bug: http://code.google.com/p/android/issues/detail?id=16434
Change-Id: I08e98c4817f6340a0c396de060431185240d3ca3
ava/nio/CharToByteBufferAdapter.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/ShortToByteBufferAdapter.java
a5fb706fe4a6dbeaaf4cb1f8bbc2c68b0a2a3f3c 29-Apr-2011 Elliott Hughes <enh@google.com> Add kill(2) to Libcore.os.

Also kick the tires of ProcessManager, since we'll probably have to do some
unrelated work in here soon.

Bug: 3107501
Change-Id: I132c1e09d21ffcf0d5ea4aab93f04a36c1b30eaf
ava/lang/ProcessManager.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/OsConstants.java
ibcore/io/Posix.java
be8ca33555781ab14b4e7f0f9c2716646f2249b0 28-Apr-2011 Elliott Hughes <enh@google.com> Log uncaught exceptions thrown by finalizers.

Bug: 4353365
Change-Id: I2de1aaa0ed4beb4c31ac6f990ce418a1e0512c59
ava/lang/FinalizerThread.java
0568a63ba1086a78ffb4cff68dd2eac4f9908e13 26-Apr-2011 Elliott Hughes <enh@google.com> Fix ByteBuffer.put(ByteBuffer).

To do this tastefully required some cunning in the native code. The new
ScopedBytesRO/ScopedBytesRW classes let us paper over the differences
between byte[] and DirectByteBuffer, which in turn lets us paper over the
differences between the various kinds of ByteBuffer.

I've also rewritten Posix.read/Posix.readDirectBuffer and
Posix.write/Posix.writeDirectBuffer to use the same idea. I haven't rewritten
readv and writev, but can do and probably should.

Bug: http://code.google.com/p/android/issues/detail?id=16184
Change-Id: Ia30d2f2fe1b1716a8f068187df2218b407a55aae
ava/nio/ByteBuffer.java
ava/nio/HeapByteBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
ibcore/io/Memory.java
ibcore/io/Posix.java
464e162688553b8b6c71499ba28a7967f81092ad 25-Apr-2011 Jesse Wilson <jessewilson@google.com> Add 'implements AutoCloseable'.

Change-Id: Iadb7d4c30f93efcbc7dc3f512d2b908edf16a9e3
http://b/3484927
ava/io/ObjectInput.java
ava/io/ObjectOutput.java
ava/sql/Connection.java
ava/sql/ResultSet.java
ava/sql/Statement.java
a6a4b2128841da32c9b380ac649c5bef9495772c 25-Apr-2011 Jesse Wilson <jessewilson@google.com> Merge "AutoCloseable." into dalvik-dev
8033ba2bd4b8eab11e67738ba4d1390e1fb72111 23-Apr-2011 Jesse Wilson <jessewilson@google.com> AutoCloseable.

Change-Id: I5604ad7f96c824e4df78a5ebd78845d012aedc13
http://b/3484927
ava/io/Closeable.java
ava/lang/AutoCloseable.java
ava/lang/Throwable.java
ibcore/util/EmptyArray.java
52dfb928ffdae183b91805bb6983f6e6aa87c9af 23-Apr-2011 Elliott Hughes <enh@google.com> DO NOT MERGE Fix java.text.BreakIterator.

BreakIterator was making invalid assumptions about pointer validity. ICU4C's
API is broken, so we have to work around that by pinning for now.

Bug: 4330159

git cherry-pick of aa96cbdcf3a0e303a16bad785c71e2efe417eea0.

Change-Id: I9e5f9827d434dc7940c8d41e5c1e6946ac1fec97
ibcore/icu/NativeBreakIterator.java
aa96cbdcf3a0e303a16bad785c71e2efe417eea0 23-Apr-2011 Elliott Hughes <enh@google.com> Fix java.text.BreakIterator.

BreakIterator was making invalid assumptions about pointer validity. ICU4C's
API is broken, so we have to work around that by pinning for now.

Bug: 4330159
Change-Id: Ie7454d54240c10096f94462027d07ea258b483b6
ibcore/icu/NativeBreakIterator.java
fe711d61cafbb878d1d6a5e223fcd2201f2e829a 23-Apr-2011 Elliott Hughes <enh@google.com> Don't use ScopedJavaUnicodeString where ScopedStringChars will do.

Plus a few other random bits of tidying. (This is the detritus from a more
significant change that will need to be cherry-picked. I'm keeping this
separate from the active ingredients of the change.)

Change-Id: I0ae90e8835cba888596efd33b540eb31c784682f
ava/lang/System.java
ava/text/BreakIterator.java
ava/text/StringCharacterIterator.java
6ab70f360e76509de958d6e7ea26b6ca3150c071 22-Apr-2011 Elliott Hughes <enh@google.com> Remove a work-around for a problem we don't think can occur.

We should always have a fully-qualified name at this point, so this
shouldn't be possible.

Change-Id: Icc7d6c16f51080c36ef4687744d7a42206a140a0
ava/net/InetAddress.java
a37e971343883bb582a93ffbd9f0ba84f10e55ba 21-Apr-2011 Elliott Hughes <enh@google.com> Rewrite NetworkInterface.

This is part of the POSIX work, but also fixes a bug that asked for down
interfaces to be returned. Additionally, I found a few bugs while rewriting
this code. Most notably, we used to return a bogus broadcast address for
the loopback interface. The only difference I notice between us and the RI
when running on the host is that the RI claims that 127.0.0.1 has a prefix
length of 0 rather than 8. I believe that we are correct on this issue.

Bug: 4082343, 3107501
Change-Id: I677e0698e3a86676b4332b5d56fe514a99c3ddc0
ava/net/BindException.java
ava/net/Inet6Address.java
ava/net/InterfaceAddress.java
ava/net/MalformedURLException.java
ava/net/MulticastSocket.java
ava/net/NetworkInterface.java
ava/net/NoRouteToHostException.java
ava/net/PortUnreachableException.java
ava/net/ProtocolException.java
ava/net/SocketException.java
ava/net/SocketTimeoutException.java
ava/net/UnknownServiceException.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/OsConstants.java
ibcore/io/Posix.java
ae394a866dd86df8819b652dfe00b3d2c7ee204c 20-Apr-2011 Elliott Hughes <enh@google.com> Remove "java.net.preferIPv6Addresses", which has been true since Eclair.

Also ensure all javadoc references to RFCs are links.

Change-Id: I58b08a8ead08d6eab018e19ec2cff7d60f2b06e6
ava/lang/System.java
ava/net/CookieManager.java
ava/net/CookiePolicy.java
ava/net/HttpCookie.java
ava/net/IDN.java
ava/net/Inet4Address.java
ava/net/InetAddress.java
ava/net/MulticastSocket.java
ava/net/Socket.java
ava/net/URI.java
ava/net/URL.java
ava/net/URLConnection.java
ibcore/io/IoUtils.java
775095bf6a763e6a9b4e858011a812425d949af5 20-Apr-2011 Elliott Hughes <enh@google.com> Remove an unnecessary special case in InetAddress.getAllByName.

(And add a test to ensure it remains unnecessary.)

Change-Id: Ia1b4f0721308a36d972da36c06869ce4740b1cda
ava/net/InetAddress.java
4f11ebea266eada830d507b8f011e811a8e5d7bc 20-Apr-2011 Elliott Hughes <enh@google.com> Add getnameinfo(3) (and gai_strerror(3)).

There's quite a large corresponding change to InetAddress, plus I've changed
the documentation for all the Permission classes to match the handful that
we'd already documented as legacy cruft.

Bug: http://b/3107501
Change-Id: Ia67aba79f0ab13e64085bd4a2df20ad0776bcc5b
ava/io/FilePermission.java
ava/io/SerializablePermission.java
ava/lang/reflect/ReflectPermission.java
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/MulticastSocket.java
ava/net/NetPermission.java
ava/net/SocketPermission.java
ava/net/SocketPermissionCollection.java
ava/security/AllPermission.java
ava/security/SecurityPermission.java
ava/security/UnresolvedPermission.java
ava/security/acl/Permission.java
ava/sql/SQLPermission.java
ava/util/PropertyPermission.java
avax/net/ssl/SSLPermission.java
avax/security/auth/AuthPermission.java
avax/security/auth/PrivateCredentialPermission.java
ibcore/io/ForwardingOs.java
ibcore/io/GaiException.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/OsConstants.java
ibcore/io/Posix.java
172232d3d82076fbee6f04a5f4b7b4672029e2ed 14-Apr-2011 Elliott Hughes <enh@google.com> Don't crash in Package.getAnnotations.

We never implemented the native method.

W(32205) No implementation found for native Ljava/lang/Package;.getDeclaredAnnotations (Ljava/lang/Package;Z)[Ljava/lang/annotation/Annotation; (dalvikvm)

Bug: http://code.google.com/p/android/issues/detail?id=16135
Change-Id: I75452271051dd6009495405baa1b420d1bdeaf7a
ava/lang/Package.java
8bccf8cdf7a3b8a6e90bb1b411a957b6368e4a1a 12-Apr-2011 Brian Carlstrom <bdc@google.com> Improve HttpsURLConnection documentation with examples

http://code.google.com/p/android/issues/detail?id=16041

Change-Id: I2e596ef36306b70cdb071b91d8707f015d9b251b
ava/net/HttpURLConnection.java
avax/net/ssl/HttpsURLConnection.java
54e9c590e67f0a01a3e146648c3247654049c1a4 08-Apr-2011 Gilles Debunne <debunne@google.com> am c3f29820: Merge "BreakIterator offset check modified."

* commit 'c3f29820dd998dbc8a3283163e3dde2a0d657a78':
BreakIterator offset check modified.
c3f29820dd998dbc8a3283163e3dde2a0d657a78 08-Apr-2011 Gilles Debunne <debunne@google.com> Merge "BreakIterator offset check modified."
b78750f753a3496a694753127c3cc3d2cd80566f 07-Apr-2011 Gilles Debunne <debunne@google.com> BreakIterator offset check modified.

This may be related to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4177479

An offset equal to the length of the text (cursor located AFTER the last character)
is a valid CharIterator index per the specifications.

Renamed OldBreakIterator and added tests to exercise the changes.
Same behavior as the Reference Implementation.

Change-Id: I7e339bcff0049bde7d04b750c72d45e3f4393186
ava/text/RuleBasedBreakIterator.java
900556c6db04ff7f7ca6c31587368d73588c972a 07-Apr-2011 Elliott Hughes <enh@google.com> am 73298fc8: Fix a typo in FileOutputStream.

* commit '73298fc8f21a2440b4848912e95a072713b93a1a':
Fix a typo in FileOutputStream.
73298fc8f21a2440b4848912e95a072713b93a1a 07-Apr-2011 Elliott Hughes <enh@google.com> Fix a typo in FileOutputStream.

The matching code in FileInputStream was correct, but I've added tests for
both. Note that the RI does not pass these tests; this was always an Android
extension, one which we'd apparently never written a test for.

Change-Id: I04d0f63839f07e8ff4ad7b3d54a31b0c0955f8d1
ava/io/FileOutputStream.java
b05f5c7ec0eb1f7471f20bb8493c5397c55fb3a0 07-Apr-2011 Brian Carlstrom <bdc@google.com> am 3258b524: libcore key chain support

* commit '3258b52429c7768ea91bda93c5a15257cdd390e5':
libcore key chain support
54298028777ffe4d5ec02e7908b333400d4f23a6 07-Apr-2011 Elliott Hughes <enh@google.com> Fix asReadOnlyBuffer to conserve the byte order (on everything except ByteBuffer).

And add tests to exercise another wart of non-uniformity on this heinous API.

Bug: http://code.google.com/p/android/issues/detail?id=15994
Change-Id: I49d2488a68a626e798f9bb39b47e710445b23fab
ava/nio/CharToByteBufferAdapter.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/ReadOnlyHeapByteBuffer.java
ava/nio/ShortToByteBufferAdapter.java
3258b52429c7768ea91bda93c5a15257cdd390e5 18-Mar-2011 Brian Carlstrom <bdc@google.com> libcore key chain support

Allow access to default IndexedPKIXParameters, similar to access to
default TrustManager. Needed to allow framework to add/remove trusted
CAs at runtime.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java

Add test support for looking up a cert by an issuer for use in key chain tests.

support/src/test/java/libcore/java/security/TestKeyStore.java

Add test support SSLSocketFactory that sets desired client auth on
each created socket. For use with MockWebServer for key chain testing.

support/src/test/java/libcore/javax/net/ssl/TestSSLContext.java

Change-Id: Iecdbd40c67f1673bda25a52b4e229156c805d564
rg/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
b974666d79ebc392b37ec1ae83aae57ae6331c08 06-Apr-2011 Elliott Hughes <enh@google.com> Finish setsockopt(2).

Bug: 3107501
Change-Id: I8f026dcba78acb555834bdcc594e114238f3cc52
ava/net/DatagramSocket.java
ava/net/SocketOptions.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/OsConstants.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
1208f030332b3e1eae3d55d416f1af1d68f7e33d 05-Apr-2011 Elliott Hughes <enh@google.com> More MulticastSocket cleanup.

Only getInterface still has any hackery left.

Change-Id: Ica1a3263db6d073e0ec42896591ff4c2e17452ff
ava/net/HttpURLConnection.java
ava/net/MulticastSocket.java
ava/net/SocketOptions.java
5d3f5200f3511c9a7107bcc0a996c7afa1b39aaf 01-Apr-2011 Elliott Hughes <enh@google.com> Don't cache the underlying Socket's underlying SocketImpl's underlying FileDescriptor in OpenSSLSocketImpl.

(OpenSSLSocketImpl, of course, being a Socket, not a SocketImpl.)

Bug: 4192414

git cherry-pick dc33f53f38600943c84146320c748e3c46fd2e7b

Change-Id: I8f481e0fe217aac782ad9d9e9053681ad69e62ef
ava/net/Socket.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
c3d19477189eafcdfec5735f9e5e13ffdeaf963d 05-Apr-2011 Elliott Hughes <enh@google.com> Slightly simplify MulticastSocket.

Part of the code is actually a new public method in Java 7, and another part
is just compatibility cruft for IPv4-only stacks.

(I think there's plenty more to clean up in here, but I'm being cautious and
breaking it into separate changes, each of which have no effect on the tests.
My hope is to remove the use of SocketOptions.IP_MULTICAST_IF entirely, but
I'll settle for being able to justify why we still need it, if we do.)

Bug: 3107501
Bug: 3484927
Change-Id: Icb4b3c1180dcd8b5666a4a969353a881ca97888e
ava/net/MulticastSocket.java
ava/net/NetworkInterface.java
438cb9e440d250c8aa5daf4fae0c400dce8b1499 02-Apr-2011 Elliott Hughes <enh@google.com> Add MCAST_JOIN_GROUP/MCAST_LEAVE_GROUP setsockopt(2).

Bug: 3107501
Change-Id: I576f45f8c67b6172888bc0541e3d3a462bfa311a
ava/net/MulticastGroupRequest.java
ava/net/PlainDatagramSocketImpl.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/Posix.java
ibcore/io/StructGroupReq.java
c63f0d4e80a9fd3bdf99cd438d108b750226736a 02-Apr-2011 Elliott Hughes <enh@google.com> Add more of setsockopt(2).

This covers all the easy cases. I'll do the awkward ones separately.

Bug: 3107501
Change-Id: Ie424290e0bef76516d0c57e9c077cb1c202381ad
ava/net/DatagramSocket.java
ava/net/PlainDatagramSocketImpl.java
ava/net/PlainSocketImpl.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/Posix.java
c84000159bb1770972c308da924e9c90db4024a0 01-Apr-2011 Elliott Hughes <enh@google.com> Remove hacks for non-dual-stack situations.

There's also a behavioral change here in code that previously said TODO.
Our current intention is that we always set both IPv4 and IPv6 options (when
coming via the java.net interfaces, which don't allow you to differentiate),
always return the IPv6 options (since it can't matter). If you need greater
control (which was never possible before), you'll be able to use the new
APIs soon.

The SocketOptions.IP_MULTICAST_IF (IPv4) and SocketOptions.IP_MULTICAST_IF2
(IPv6) distinction remains, because that's exposed java.net API.

CompatibleSocketAddress gets a lot simpler, but it looks like the kernel
still doesn't like an IN_ANY bind(2) on a dual-stack AF_INET6 socket. This
is unfortunate because it means callers have a decision to make, preventing
us from moving that code into inetAddressToSocketAddress.

Bug: 3107501
Change-Id: Ifa694d936a81af143a40f404b12470045e644fa8
ibcore/io/IoUtils.java
dc33f53f38600943c84146320c748e3c46fd2e7b 01-Apr-2011 Elliott Hughes <enh@google.com> Don't cache the underlying Socket's underlying SocketImpl's underlying FileDescriptor in OpenSSLSocketImpl.

(OpenSSLSocketImpl, of course, being a Socket, not a SocketImpl.)

Bug: 4192414

Change-Id: I3c7d0fed70b1b98dc8fcc73f35b3feb0e1eeb2f9
ava/net/Socket.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
8aab98366191126ed1ba36bb4937e41beeb05606 31-Mar-2011 Carl Shapiro <cshapiro@google.com> Merge "Implement reference queuing in managed code." into dalvik-dev
64ce5d1c72204de8e58da45ddf1a57ba8b70cec6 31-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Reduce chance of naming collision for Thread @hide methods." into dalvik-dev
d72e8da94591fe5b7aa5a79b906c5cc9abb56b99 31-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Fix a performance regression in Enum.valueOf()" into dalvik-dev
9fa7c4cd4a619236db70aefab8da3abafb065bca 31-Mar-2011 Jesse Wilson <jessewilson@google.com> am 866b399e: am 9d28a32d: am bc4c79c6: Don\'t read from the delegate stream after we close it.

* commit '866b399e1d5cab4cc8d196f8008ba8ad8376765d':
Don't read from the delegate stream after we close it.
bc4c79c6a2059003f695f7ad204de36700e8d701 31-Mar-2011 Jesse Wilson <jessewilson@google.com> Don't read from the delegate stream after we close it.

Change-Id: Ib724b170f7ec10ea0025c0e2e7978119fd070eb6
http://b/4188137
rg/apache/harmony/luni/internal/net/www/protocol/http/UnknownLengthHttpInputStream.java
50ddd34d1e1228c37ac45b43934cc114376f3667 31-Mar-2011 Jesse Wilson <jessewilson@google.com> Reduce chance of naming collision for Thread @hide methods.

Change-Id: I80bdf4ede72b112eb1cae89c6e53f6fcf65b2acb
http://code.google.com/p/android/issues/detail?id=15388
ava/lang/Thread.java
ava/nio/channels/spi/AbstractInterruptibleChannel.java
ava/nio/channels/spi/AbstractSelector.java
482e8943b4b81534b545260e6da25bb35b93dc5a 31-Mar-2011 Jesse Wilson <jessewilson@google.com> Fix a performance regression in Enum.valueOf()

Change-Id: If10e30d1f528dfaaeca9ce0eb2932f4ca22a6ec8
http://b/4087759
ava/lang/Class.java
ava/lang/Enum.java
ava/util/EnumMap.java
ava/util/EnumSet.java
55d86d85b3cd11461ba793cdc8ed74c87311a447 31-Mar-2011 Carl Shapiro <cshapiro@google.com> Implement reference queuing in managed code.

This change adds a thread to the core library which receives a list of
references after a garbage collection and enqueues each element. This
list is constructed by linking together the pendingNext field of cleared
references into a circular queue.

To support this change, the pendingNext field has been replaced by the
new zombie field for the purposes of providing a strongly reachable
location within a FinalizerReference class instance.

Change-Id: Id09133e44c850797e7f14c5471123a036d027c80
ava/lang/FinalizerThread.java
ava/lang/ref/FinalizerReference.java
ava/lang/ref/Reference.java
ava/lang/ref/ReferenceQueue.java
ava/lang/ref/ReferenceQueueThread.java
9acbfdd446646c2dcb30a77c94642aec7357deec 31-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Fix race conditions in finalizers." into dalvik-dev
6a22fa91a64739523c1344023f6dfde57e53110e 31-Mar-2011 Jesse Wilson <jessewilson@google.com> Fix race conditions in finalizers.

We had several small races:
- runFinalization() could return before all objects had been
finalized
- stopFinalizer() could return before the thread was stopped

We still have one scenario where runFinalization returns
prematurely, this is due to a timing issue with the native
heap worker thread.

Change-Id: I304e4f2d744ed714a5c2069f2749df2ec1f40cc8
http://b/4192343
ava/lang/FinalizerThread.java
ava/lang/Runtime.java
ava/lang/ref/FinalizerReference.java
0a9d1ee45a9884a9616624d747172e18734e8fe0 31-Mar-2011 Elliott Hughes <enh@google.com> Add getsockname(2) and getsockopt(2).

Bug: 3107501
Change-Id: Ibb0d5a576ecb46e51dbda6051776145eec9e7fe1
ava/net/DatagramSocketImpl.java
ava/net/PlainDatagramSocketImpl.java
ava/net/PlainSocketImpl.java
ava/net/Socket.java
ava/nio/DatagramChannelImpl.java
ava/nio/SocketChannelImpl.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/OsConstants.java
ibcore/io/Posix.java
ibcore/io/StructLinger.java
ibcore/io/StructTimeval.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
e8fad0e2a8787fd46654d1cc9e477b353a958451 30-Mar-2011 Elliott Hughes <enh@google.com> Fix build.

Change-Id: I29628c87ac3bd1feb0169af84f0cbc3ddf4e430d
ibcore/io/IoUtils.java
462bdac45c10f43d88d8f07f6994e272a27c14a2 30-Mar-2011 Elliott Hughes <enh@google.com> Add close(2).

This is sufficient for non-socket fds, but may need to change to support the
asynchronous socket close monitor. (Hopefully not; I'd rather lift that into
Java.)

I've also changed the semantics of IoUtils.close to match those desired by
all callers: ignore null/invalid FileDescriptors.

Bug: 3107501
Change-Id: Iad5c31c8f0f34d2a5ab1ed4581509b46af28bd1f
ava/io/File.java
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
ava/lang/ProcessManager.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/MemoryMappedFile.java
ibcore/io/Os.java
ibcore/io/Posix.java
6338bf7367ad6656e02f2c68887218d6ce2b168a 30-Mar-2011 Elliott Hughes <enh@google.com> FileDescriptor.descriptor can now be private.

Bug: 3107501
Change-Id: Ibd2261c82cfc85b9c169576a3716bdcf6e7572b1
ava/io/FileDescriptor.java
d320e321d5567a4ac94b6e5874eda4b1f1189e13 30-Mar-2011 Elliott Hughes <enh@google.com> Move and rename an implementation detail.

Change-Id: I563c2fd6689dd7249049671c3c01c6434d9b5fa5
ava/nio/DatagramChannelImpl.java
ava/nio/FileDescriptorChannel.java
ava/nio/PipeImpl.java
ava/nio/SelectorImpl.java
ava/nio/ServerSocketChannelImpl.java
ava/nio/SocketChannelImpl.java
rg/apache/harmony/luni/platform/FileDescriptorHandler.java
454a95f6a28855aa3c88d168b15a45bf315efc99 30-Mar-2011 Elliott Hughes <enh@google.com> Add socket(2) and start adding setsockopt(2).

I've added just enough setsockopt to keep the hack from our old socket
creation code. More later (but not necessarily right away).

Bug: 3107501
Change-Id: Id57bdd3c760bc58ed79d675b268c55493cbc24c8
ava/net/InetAddress.java
ava/net/PlainDatagramSocketImpl.java
ava/net/PlainSocketImpl.java
ava/nio/DatagramChannelImpl.java
ava/nio/SocketChannelImpl.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/OsConstants.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
8b15dcc5890963edad4dfcf558cc16027c7985e5 29-Mar-2011 Elliott Hughes <enh@google.com> Add sendfile(2).

This patch marks the end of OSFileSystem.

Having to support a Java "long*" for sendfile(2) gave me an opportunity to go
back and improve my ioctl(2) to use a corresponding "int*" equivalent, instead
of its previous special-case hack.

Bug: 3107501
Change-Id: I9fde4777700552263fab4fe9aeb556174163e3dc
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
ava/net/SocketImpl.java
ava/nio/FileChannelImpl.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/Posix.java
ibcore/util/MutableBoolean.java
ibcore/util/MutableByte.java
ibcore/util/MutableChar.java
ibcore/util/MutableDouble.java
ibcore/util/MutableFloat.java
ibcore/util/MutableInt.java
ibcore/util/MutableLong.java
ibcore/util/MutableShort.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/platform/Platform.java
94aa98c94b79f5c99a0e1d905c03c5423d1ce0fa 29-Mar-2011 Elliott Hughes <enh@google.com> Merge "Add readv(2)/writev(2)." into dalvik-dev
bbac92e691de7d570928ddfba639067978e55b06 29-Mar-2011 Elliott Hughes <enh@google.com> Add readv(2)/writev(2).

The old implementation would cheat if it was given non-direct buffers, copying
them into newly-allocated direct buffers. (The network Channel implementations
are worse: they copy all the data into a single buffer, and then read/write
that. I'll get to them eventually.)

Bug: 3107501
Change-Id: I1655bacb042e7ebcde7e5bc5cf2c71e7ce5e30af
ava/nio/FileChannelImpl.java
ava/nio/IoVec.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
f16edfe125c261e7f4e5cff52c0b9c923d9f7fe6 29-Mar-2011 Jesse Wilson <jessewilson@google.com> Follow up on enh's comments for CollectionUtils.uniqueCopy()

Change-Id: I0ceb442801160827909ff9ab3e52771754072bda
http://b/4087759
ava/lang/Class.java
ibcore/util/CollectionUtils.java
0843c022f443b5c4a8ea4d298c8b12147989ec92 29-Mar-2011 Jesse Wilson <jessewilson@google.com> Move ClassMembers' members into Class; remove ClassMembers.

Change-Id: I74e056120b65578104ca4596401d0de0b9747114
http://b/4087759
ava/lang/Class.java
ava/lang/ClassMembers.java
ava/lang/reflect/Field.java
ibcore/util/CollectionUtils.java
9babc0429286668ed6ae5d8f2427d5853fc00e46 29-Mar-2011 Jesse Wilson <jessewilson@google.com> Don't include duplicates when an interface is implemented through two paths.

Change-Id: I13beab7f83877d8eaaf90ca9195e5b379507720a
ava/lang/ClassMembers.java
ava/lang/reflect/Method.java
b4fc2e502dcb4ee8dca4b2eadaae03975fd470a0 29-Mar-2011 Jesse Wilson <jessewilson@google.com> Fix getMethods to include superclass' interface methods.

We were failing the newly-added test testGetMethodsViaExtendsThenImplements().
This went unseen until today because it only occurs when you
call getMethods() on an abstract class.

Change-Id: I289a70df7de6f54e94b72295a40dfcfe236ec74b
ava/lang/ClassMembers.java
ee1d5475eca8a8d42e73bbd00386f50e10250ec6 29-Mar-2011 Jesse Wilson <jessewilson@google.com> Remove the caching from ClassMembers.

Callers who call getFields() will no longer benefit from a cache
if they call that method multiple times in a row. Similarly for
getMethods(). These caches optimized those calls, but only as a
side-effect of our intended optimization: to make looking up a
single member fast. Now that we do that directly, these caches
are less useful.

Change-Id: Ibc560710165f6f1ea081c357b8b375ae48289631
http://b/4087759
ava/lang/Class.java
ava/lang/ClassMembers.java
ava/lang/Enum.java
ava/lang/reflect/AccessibleObject.java
ava/lang/reflect/ReflectionAccessImpl.java
ava/util/EnumSet.java
rg/apache/harmony/kernel/vm/ReflectionAccess.java
ad7d39dd82f65d51611e55eaf3b2591d2239df0f 29-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Don't lookup all fields to get a single field." into dalvik-dev
461d0d860814c68154d8dd06d24f94118f33d28a 29-Mar-2011 Elliott Hughes <enh@google.com> Add ioctl(2) for int*.

I'm not adding the "struct ifreq" stuff yet because that's really hairy and I
plan on rewriting the NetworkInterface implementation anyway, so it'll mainly
be based on /proc. With any luck, we won't even need those other ioctls then.

I'm not sure _this_ ioctl is a good idea, but it does seem like a slight
improvement on the old code, and we can always move it back out if/when these
APIs become more public.

Bug: 3107501
Change-Id: Iceac15e4a107c33bfc8795976a747c2ffa59a183
ava/io/FileInputStream.java
ava/net/PlainSocketImpl.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/OsConstants.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
efaf3894f349e52a2d28353856fe6cef43eb5b18 28-Mar-2011 Jesse Wilson <jessewilson@google.com> Don't lookup all fields to get a single field.

Change-Id: Ia12c09b2deaa78c15edb8b5ce3638efb4a8c5246
http://b/4087759
ava/lang/Class.java
ava/lang/ClassMembers.java
4af0d8c99d68bcacff182699527d983a1d34fdbe 28-Mar-2011 Elliott Hughes <enh@google.com> Support read-only ByteBuffers.

Buffer.array() and Buffer.arrayOffset() throw for read-only buffers. We need
to work round this. We know that this is safe because we trust ourselves not
to write to read-only buffers and because all non-direct buffers have a
backing array.

Bug: 3107501
Change-Id: I501a5f7ddba2c66d22864bf4a41b927263493293
ava/nio/HeapByteBuffer.java
ava/nio/NioUtils.java
ibcore/io/Posix.java
6789e65622548dd7d2842ec77c19004afc9d4426 28-Mar-2011 Jesse Wilson <jessewilson@google.com> Permit general and parameter entity features to be disabled for Expat SAX.

http://code.google.com/p/android/issues/detail?id=9493

(We'll keep supporting the native Expat parser until the the Java Kxml
parser is as fast).

Change-Id: I6492634a777a591f5da4ea7a4cdeca81c1f6cc65
rg/apache/harmony/xml/ExpatReader.java
78c7cc547101002b9f9043cf3845970719d1bda8 26-Mar-2011 Elliott Hughes <enh@google.com> Add write(2).

Note that this is a functional change, because the old code was wrong: it
assumed that short writes don't happen. I thought we'd (I'd) cleaned this
up just recently, but it looks like I must have only gone through the network
code. Embarrassing.

This also cleans up the previous read change a bit, factoring out a bit more
duplication, and taking advantage of the fact that we now get decent
exceptions thrown from invalid FileDescriptors (meaning we can remove explicit
checks).

Bug: 3107501
Change-Id: I8bd5324836c9d151dceaef5b84ec523a67391b64
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
ava/nio/FileChannelImpl.java
ava/nio/SelectorImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
da5f38a51f56f38070e6efc1bdf9176004dd828d 26-Mar-2011 Elliott Hughes <enh@google.com> Fix build (javadoc).

Change-Id: I7b109098bb367a2583d11bf41f5b9993e5009e42
ava/io/RandomAccessFile.java
26c7025a7a919044771fb89031161bd26fe03032 26-Mar-2011 Elliott Hughes <enh@google.com> Add read(2).

For both byte[]s and ByteBuffers.

Bug: 3107501
Change-Id: I93b781069ade4507371c8fe8c5fda0163fbb2dbb
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
ava/nio/FileChannelImpl.java
ava/nio/SelectorImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
d19897a2fa950f6c0dc3dcd1e2374d8a44072295 25-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Fast-path annotations for methods and constructors." into dalvik-dev
e62cb8ba7337b0ec19545e119246e0fc5f2c973f 25-Mar-2011 Jesse Wilson <jessewilson@google.com> Fast-path annotations for methods and constructors.

Change-Id: I4c884b7b9141ce449eb6cd5adba4e024a1807163
http://code.google.com/p/android/issues/detail?id=7811
ava/lang/Class.java
ava/lang/reflect/AccessibleObject.java
ava/lang/reflect/Constructor.java
ava/lang/reflect/Field.java
ava/lang/reflect/Method.java
0519c0de2e55eeb3566c5ee913a500eb45886f7f 25-Mar-2011 Elliott Hughes <enh@google.com> Better detail message when HttpURLConnection.setRequestMethod fails.

To wit:

java.net.ProtocolException: Unknown method 'post'; must be one of [OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE]
at java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:639)

Bug: http://code.google.com/p/android/issues/detail?id=15721
Change-Id: Ib4c185247985628a4df7e591f87e1c2c8e58ebdb
ava/net/HttpURLConnection.java
bfc28f55d2acf5f539862fc0d808560977058b85 25-Mar-2011 Elliott Hughes <enh@google.com> Merge "Remove dead cruft." into dalvik-dev
ac0bbf7cc5f183addacd31351d9b876e2bbf0334 25-Mar-2011 Elliott Hughes <enh@google.com> Remove dead cruft.

And warn about the inadvisability of changing built-in system properties.

Bug: 4174340
Change-Id: Ibd6258f56c608fa884cbd243223b50b12eb505ec
ava/lang/SecurityManager.java
ava/lang/System.java
ava/util/Locale.java
4b928b95fe25f70e430f9bb73d7f0f7705a828e9 25-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Fix inconsistencies in HttpURLConnection docs." into dalvik-dev
151a354918ba4b62c0c761a857d4fcdee26164ce 25-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Optimize annotation lookups on types." into dalvik-dev
cdd3452fd52e507995afc0395b77e5b4b835374a 25-Mar-2011 Elliott Hughes <enh@google.com> Merge "Add fcntl(2)." into dalvik-dev
0e40a5cdf59a11d5f8da318c08bcba891e39d33e 25-Mar-2011 Jesse Wilson <jessewilson@google.com> Fix a doc typo in TimSort.

Change-Id: I47da49b65634bad2e12be4fedb31b0f21d16a3a9
ava/util/TimSort.java
fc549a0b0388987b26dea524894d75a63d14783b 25-Mar-2011 Elliott Hughes <enh@google.com> Add fcntl(2).

I initially used overloading, but that actually decreases safety in practice
because which overload you need is (uniquely) determined by the specific
command you're issuing. Forcing callers to explicitly state what they're
doing works around this. As it was, I had to use strace(1) to find my bug.

Bug: 3107501
Change-Id: Ia54b72dd6453372922f01b22f382eb93ac91aaa7
ava/nio/FileChannelImpl.java
ava/nio/channels/FileLock.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/OsConstants.java
ibcore/io/Posix.java
ibcore/io/StructFlock.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
a0b862a095232703e25accfb143be800fff1cd8d 25-Mar-2011 Jesse Wilson <jessewilson@google.com> Optimize annotation lookups on types.

I benchmarked this. Before & after results, in microseconds:
before after
GetAnnotation 716.6 122.65
IsAnnotationPresent 712.1 1.19

Benchmark source is here:
http://code.google.com/p/dalvik/source/browse/trunk/benchmarks/regression/AnnotatedElementBenchmark.java?spec=svn90&r=90

This is the first part of the change; I intend to follow up by
optimizing the corresponding methods on Field and Method.

Change-Id: I5912b526dfa87a61a95fbe7b7efc48d0dca3ad38
ava/lang/Class.java
7341b9ed7157a1e37a3e69a0974676da358b735a 24-Mar-2011 Elliott Hughes <enh@google.com> Add uname(2).

This replaces InetAddress's use of gethostname(2), and System's hard-coded use
of uname(2) itself.

Bug: 3107501
Change-Id: I7e808177eece1e38428fea18a96c65628d51d93e
ava/lang/System.java
ava/net/InetAddress.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
ibcore/io/StructUtsname.java
e1502d64e937001636fca3d62b2552ef2a34d05f 24-Mar-2011 Elliott Hughes <enh@google.com> Add listen(2).

Bug: 3107501
Change-Id: I3677bb4ddb3f3d0e58a6833165504f47bb309630
ava/net/DatagramSocket.java
ava/net/PlainSocketImpl.java
ava/net/SocketImpl.java
ibcore/io/ErrnoException.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
59e4744d27231f260271dbbca406e0cc39768116 24-Mar-2011 Elliott Hughes <enh@google.com> Add shutdown(2).

Bug: 3107501
Change-Id: I30354c4cc6e86a4e7b0e3f84e95719539db1d297
ava/net/PlainSocketImpl.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java
41f0605d2c809bd9bc1c0fb68d86b49a0f59b6c5 24-Mar-2011 Elliott Hughes <enh@google.com> Add pipe(2).

This lets us kill quite a bit of IoUtils.

Bug: 3107501
Change-Id: Ic8a297b29cc53a17841cc77e266cd8dc3910c521
ava/nio/PipeImpl.java
ava/nio/SelectorImpl.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/Os.java
ibcore/io/Posix.java
6c937923e20679d0752cea1ee5e2e969a094acdb 24-Mar-2011 Elliott Hughes <enh@google.com> Clean up File's absolute path handling.

Judging by my new test, the RI evaluates an absolute path relative
to "user.dir" at the time you call File.getAbsolutePath, and doesn't cache.

Change-Id: Ied1b47a1daa9c10249f11b6f2847073b9e37ea12
ava/io/File.java
c7fa20701d5e9398c38f4615ed293acfce1c0cf6 24-Mar-2011 Elliott Hughes <enh@google.com> Add mkdir(2) and remove(2).

Bug: 3107501
Change-Id: Ia4ca50b957d6015fa49076806273054563d25b63
ava/io/File.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
b7190190e0ef8de883c952efb319ce7748831faa 24-Mar-2011 Elliott Hughes <enh@google.com> Add chmod(2).

Bug: 3107501
Change-Id: If3a0639634a90f607b8c6035f25b03d23e7261e0
ava/io/File.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
59fa7163774d6930a174bc038414a4b780581957 23-Mar-2011 Elliott Hughes <enh@google.com> Add statfs(2).

Bionic doesn't support statvfs(2), so we'll have to use statfs(2) in the
meantime. We should fix this before making this API public, though.

Bug: 3107501
Change-Id: I1af8a473261586321543dd1554e1f6079a84f384
ava/io/File.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
ibcore/io/StructStatFs.java
a20cc6fca30d18e05db67ceeb0403b7b58ffd364 23-Mar-2011 Elliott Hughes <enh@google.com> Add rename(2) and symlink(2).

And use them too.

Bug: 3107501
Change-Id: I83b512a2553bfc2501d02c251a4649f8e670774e
ava/io/File.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
2ffce92141c0b2a5f0543229f3ded34b0ee79ba1 23-Mar-2011 Elliott Hughes <enh@google.com> Move File.createNewFile into Java.

Also add improved tests.

Bug: 3107501
Change-Id: Ibea9bd71adf1e1230c14072fb4597ad5bd9c214b
ava/io/File.java
ibcore/io/MemoryMappedFile.java
0ac77ac8e915bff1a863e371f9b363033f9cf759 23-Mar-2011 Elliott Hughes <enh@google.com> Add open(2).

Bug: 3107501
Change-Id: I404030b4c678862465d04f723a6a324663e0af25
ava/io/FileDescriptor.java
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
ava/nio/channels/SocketChannel.java
ibcore/io/BlockGuardOs.java
ibcore/io/ForwardingOs.java
ibcore/io/IoUtils.java
ibcore/io/MemoryMappedFile.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
0f746ff511162add42eeabaf14ba70ace874c6f4 23-Mar-2011 Elliott Hughes <enh@google.com> Add mincore(2).

Bug: 3107501
Change-Id: Ibb288b0889ff47612f77870239f51928b35754a9
ava/nio/MappedByteBuffer.java
ibcore/io/ForwardingOs.java
ibcore/io/Memory.java
ibcore/io/Os.java
ibcore/io/Posix.java
e6ce85b954b9dd1e3bf672aa81ae845a6533e17a 22-Mar-2011 Elliott Hughes <enh@google.com> Merge "Remove more dead SecurityManager cruft." into dalvik-dev
8647680e6a884b504a9f502e0f6a24218fdf675c 22-Mar-2011 Elliott Hughes <enh@google.com> Remove more dead SecurityManager cruft.

(Requires corresponding dalvik change.)

Change-Id: I65cd76ae056d4a1ff5f1a3e168b118a47cf09ff5
ava/lang/Class.java
ava/lang/ClassLoader.java
ava/lang/VMClassLoader.java
ava/security/AccessController.java
8294b84a58c649ec6f7f498a6b55c8d6553f0725 21-Mar-2011 Carl Shapiro <cshapiro@google.com> Merge "Move finalization into the core library." into dalvik-dev
bbfadc8ae01454abba5335fccceaa1c80123ae49 21-Mar-2011 Carl Shapiro <cshapiro@google.com> Move finalization into the core library.

Change-Id: I969ecc25f2a7e655e1093855514102662846dfe1
ava/lang/FinalizerThread.java
ava/lang/Runtime.java
ava/lang/ref/FinalizerReference.java
ava/lang/ref/Reference.java
7e13c0f05ac9e7c55682d10e953dd4cbd5e6107c 19-Mar-2011 Elliott Hughes <enh@google.com> Add mlock(2) and munlock(2).

Bug: 3107501
Change-Id: I7e4cad36370196d990c709bfa33f89d7568aa453
ava/nio/MappedByteBuffer.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
e3ed211a4a56f5c7fb51500418035ede01ca5690 19-Mar-2011 Elliott Hughes <enh@google.com> Merge "Add mmap(2), msync(2), and munmap(2)." into dalvik-dev
c49f6347f8bdb88956ce05d531b6eb719b33f726 19-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Prefer the user's stream handlers to the built-in ones." into dalvik-dev
7e25eff38a191d9c19e45093f4fde5102fb09d78 19-Mar-2011 Elliott Hughes <enh@google.com> Add mmap(2), msync(2), and munmap(2).

Bug: 3107501
Change-Id: I6a7c4147ec27bab9ded280476bad1157ce03fab8
ava/nio/FileChannelImpl.java
ava/nio/MappedByteBuffer.java
ava/nio/MemoryBlock.java
ibcore/io/ForwardingOs.java
ibcore/io/Memory.java
ibcore/io/MemoryMappedFile.java
ibcore/io/Os.java
ibcore/io/Posix.java
ibcore/util/ZoneInfoDB.java
c2ebff3511f9df4d8cca2b82630c2d760af9d204 19-Mar-2011 Jesse Wilson <jessewilson@google.com> Prefer the user's stream handlers to the built-in ones.

Apps may use this to install their own protocol handlers instead
of the default ones. This is used for HTTP NTLM authentication
in some libraries.

Change-Id: Icd5882e8ddd0545f897bee916150765e02929fc9
ava/net/URL.java
029da69e13f3985215271d41e15a0d9fe23fea07 19-Mar-2011 Jesse Wilson <jessewilson@google.com> Add a missing @hide to a non-public API.

Change-Id: I8847da1960907c0b7ca232ded0d418971a1e1f80
ava/lang/Thread.java
eb09bc383703f0b2d6c99daf83479d5ce573a2f9 19-Mar-2011 Jesse Wilson <jessewilson@google.com> Fix inconsistencies in HttpURLConnection docs.

Change-Id: I999b2cf7b904659923e02111aa62946d488e159e
http://code.google.com/p/android/issues/detail?id=14933
ava/net/HttpURLConnection.java
10959ae7eb41e8ceecb16378c25395eb2f29106c 18-Mar-2011 Jesse Wilson <jessewilson@google.com> Don't block a selector if the current thread has been interrupted.

This changes setInterruptAction to be push/pop rather than set/unset.
During testing I found that different classes were conflicting with
the interrupt action: Channels and Selectors were setting it
simultaneously.

Change-Id: Ie1f96c2a1db9412863f4a181cfa29a239ffa5996
http://code.google.com/p/android/issues/detail?id=15388
ava/lang/Thread.java
ava/nio/SelectorImpl.java
ava/nio/channels/Channel.java
ava/nio/channels/spi/AbstractInterruptibleChannel.java
ava/nio/channels/spi/AbstractSelector.java
450d9307bf6a3c6ee90ee8754e1eb6c3e0245f7a 19-Mar-2011 Elliott Hughes <enh@google.com> Merge "Add isatty(2)." into dalvik-dev
9a3f363523000704205df288f8b6f2f48c0d8563 19-Mar-2011 Elliott Hughes <enh@google.com> Add isatty(2).

Bug: 3107501
Change-Id: I67e4a4ceeba945095419d176e7de5edb7da8a440
ava/io/Console.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
5aafac4db69e6d087c512cdfa5c7c0e2f1611681 19-Mar-2011 Jesse Wilson <jessewilson@google.com> Move URLConnection classes to libcore.net.

Change-Id: I14bf8373dfce50dda94e1a64419b9a8a9cf3c82e
ava/net/HttpURLConnection.java
ava/net/URL.java
ibcore/net/MimeUtils.java
ibcore/net/http/AbstractHttpInputStream.java
ibcore/net/http/AbstractHttpOutputStream.java
ibcore/net/http/ChunkedInputStream.java
ibcore/net/http/ChunkedOutputStream.java
ibcore/net/http/FixedLengthInputStream.java
ibcore/net/http/FixedLengthOutputStream.java
ibcore/net/http/HttpConnection.java
ibcore/net/http/HttpConnectionPool.java
ibcore/net/http/HttpHandler.java
ibcore/net/http/HttpHeaders.java
ibcore/net/http/HttpURLConnectionImpl.java
ibcore/net/http/HttpsHandler.java
ibcore/net/http/HttpsURLConnectionImpl.java
ibcore/net/http/RetryableOutputStream.java
ibcore/net/http/UnknownLengthHttpInputStream.java
ibcore/net/url/FileHandler.java
ibcore/net/url/FileURLConnection.java
ibcore/net/url/FtpHandler.java
ibcore/net/url/FtpURLConnection.java
ibcore/net/url/FtpURLInputStream.java
ibcore/net/url/JarHandler.java
ibcore/net/url/JarURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/file/FileURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/file/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/ChunkedInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/ChunkedOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/FixedLengthInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/FixedLengthOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnectionPool.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpHeaders.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/http/RetryableOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/UnknownLengthHttpInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/https/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnectionImpl.java
dedaccdfa07c370a58cba08b096133ad9eec0ec3 18-Mar-2011 Elliott Hughes <enh@google.com> Add lseek(2).

Bug: 3107501
Change-Id: Ie27e2ae1c7d37de5f02b1d81ee2005182339f881
ava/io/FileInputStream.java
ava/io/RandomAccessFile.java
ava/nio/FileChannelImpl.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
f5333fd2094bdac4d6506177b1964b79afa64d77 18-Mar-2011 Elliott Hughes <enh@google.com> Add ftruncate(2).

The claim that "the port library" modifies the file offset appears to only ever
have been true of Harmony's Win32 implementation. Certainly, this is not the
behavior of ftruncate(2), so we can lose the cruft.

Bug: 3107501
Change-Id: I35092fd986296b78c4847c7215765f9997339f37
ava/io/FileDescriptor.java
ava/io/RandomAccessFile.java
ava/nio/FileChannelImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/ErrnoException.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
492cd0c33d104a27599d945ec8d54b0624784e43 18-Mar-2011 Elliott Hughes <enh@google.com> Minor cleanup: remove useless "return"s and dead package-private methods.

Change-Id: I8bb1531e2c0d45a7ec9c0bd4b6195cee15e29ac0
ava/io/PushbackInputStream.java
ava/lang/Class.java
ava/lang/ClassLoader.java
ava/lang/Runtime.java
ava/sql/DriverManager.java
ava/util/logging/MemoryHandler.java
e1ee5a2321507cbfbd4a4381b4c340b06782c58a 18-Mar-2011 Elliott Hughes <enh@google.com> Reimplement Runtime.availableProcessors.

Bug: 3107501
Change-Id: I38dd8d916f9a69da5019c9359774ac28250a78f2
ava/lang/Runtime.java
6fc1a0e1e68dc2e0d12341548e58fa7f1c5dafc4 18-Mar-2011 Elliott Hughes <enh@google.com> Add sysconf(3).

This gives us a getpagesize(3) replacement right now, and will let us implement
Runtime.availableProcessors here rather than in the VM in a later change.

Bug: 3107501
Change-Id: I6fc1f83d36b026fbe8d37eca525550479677f2de
ava/nio/FileChannelImpl.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/OsConstants.java
ibcore/io/Posix.java
ibcore/io/StructStat.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
2f75ad8e64570c7adfb3e95de91ef64d3e4b1806 18-Mar-2011 Elliott Hughes <enh@google.com> Merge "Add fstat(2), lstat(2), and stat(2)." into dalvik-dev
a879e74388e30203ad94719723b455f1367303cf 18-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Use the '@hide' tag rather than reflection and initialization order tricks." into dalvik-dev
b74b0c7dabd2b9d562a1b77388052a191d1bb400 18-Mar-2011 Jesse Wilson <jessewilson@google.com> Use the '@hide' tag rather than reflection and initialization order tricks.

Change-Id: I6e72ff327673103306e788558c449927e9049883
http://code.google.com/p/android/issues/detail?id=15388
ava/lang/Class.java
ava/lang/ClassMembers.java
ava/lang/LangAccessImpl.java
ava/lang/Thread.java
ava/nio/channels/spi/AbstractInterruptibleChannel.java
ava/nio/channels/spi/AbstractSelector.java
ava/util/EnumSet.java
ava/util/SpecialAccess.java
rg/apache/harmony/kernel/vm/LangAccess.java
un/misc/Unsafe.java
47cb338d43f75dd998b29caaaa9446c5705217d1 18-Mar-2011 Elliott Hughes <enh@google.com> Add fstat(2), lstat(2), and stat(2).

Bug: 3107501
Change-Id: Ic36f9ffd03446d6e0189470f42abdadde57327df
ava/io/File.java
ava/io/RandomAccessFile.java
ava/nio/FileChannelImpl.java
ibcore/io/ErrnoException.java
ibcore/io/ForwardingOs.java
ibcore/io/Os.java
ibcore/io/Posix.java
ibcore/io/StructStat.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
5b6296d6bf06784362394e1c4b25df316d140771 18-Mar-2011 Elliott Hughes <enh@google.com> Also give errno names (like EINVAL) when we know them.

Bug: 3107501
Change-Id: I333f1efd72a2969ce87a0e7af45b0d47e50d5b00
ibcore/io/ErrnoException.java
ibcore/io/OsConstants.java
bdb717ae237f4bb9b14b61a2d24150106ac8e6c7 18-Mar-2011 Elliott Hughes <enh@google.com> Simplify the constant initialization.

Bug: 3107501
Change-Id: I07b035482de00cb39c735e3acd9387fcbc22b30a
ava/io/FileDescriptor.java
ibcore/io/OsConstants.java
32c2297a959b72abdb18743f0519e1d8b7c7ea88 17-Mar-2011 Elliott Hughes <enh@google.com> Remove bogus "super()" calls.

I've left one in java.util.concurrent, since we have an upstream there.

Change-Id: I60945e48a41433fc7eaef6086433ec4bf434097f
ava/io/ByteArrayOutputStream.java
ava/io/CharArrayWriter.java
ava/io/CharConversionException.java
ava/io/EOFException.java
ava/io/EmulatedFields.java
ava/io/EmulatedFieldsForLoading.java
ava/io/FileDescriptor.java
ava/io/FileNotFoundException.java
ava/io/FilePermissionCollection.java
ava/io/FilterInputStream.java
ava/io/IOException.java
ava/io/InterruptedIOException.java
ava/io/NotActiveException.java
ava/io/NotSerializableException.java
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/ObjectStreamException.java
ava/io/OptionalDataException.java
ava/io/OutputStream.java
ava/io/PipedOutputStream.java
ava/io/PipedWriter.java
ava/io/Reader.java
ava/io/StreamCorruptedException.java
ava/io/StringReader.java
ava/io/StringWriter.java
ava/io/UTFDataFormatException.java
ava/io/UnsupportedEncodingException.java
ava/io/Writer.java
ava/lang/AbstractMethodError.java
ava/lang/ArithmeticException.java
ava/lang/ArrayIndexOutOfBoundsException.java
ava/lang/ArrayStoreException.java
ava/lang/AssertionError.java
ava/lang/ClassCastException.java
ava/lang/ClassCircularityError.java
ava/lang/ClassFormatError.java
ava/lang/CloneNotSupportedException.java
ava/lang/Error.java
ava/lang/Exception.java
ava/lang/ExceptionInInitializerError.java
ava/lang/IllegalAccessError.java
ava/lang/IllegalAccessException.java
ava/lang/IllegalArgumentException.java
ava/lang/IllegalMonitorStateException.java
ava/lang/IllegalStateException.java
ava/lang/IllegalThreadStateException.java
ava/lang/IncompatibleClassChangeError.java
ava/lang/IndexOutOfBoundsException.java
ava/lang/InheritableThreadLocal.java
ava/lang/InstantiationError.java
ava/lang/InstantiationException.java
ava/lang/InternalError.java
ava/lang/InterruptedException.java
ava/lang/LinkageError.java
ava/lang/NegativeArraySizeException.java
ava/lang/NoClassDefFoundError.java
ava/lang/NoSuchFieldError.java
ava/lang/NoSuchFieldException.java
ava/lang/NoSuchMethodError.java
ava/lang/NoSuchMethodException.java
ava/lang/NullPointerException.java
ava/lang/NumberFormatException.java
ava/lang/OutOfMemoryError.java
ava/lang/ProcessBuilder.java
ava/lang/RuntimeException.java
ava/lang/SecurityException.java
ava/lang/StackOverflowError.java
ava/lang/StackTraceElement.java
ava/lang/String.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
ava/lang/StringIndexOutOfBoundsException.java
ava/lang/Throwable.java
ava/lang/UnknownError.java
ava/lang/UnsatisfiedLinkError.java
ava/lang/UnsupportedClassVersionError.java
ava/lang/VerifyError.java
ava/lang/VirtualMachineError.java
ava/lang/ref/Reference.java
ava/lang/ref/ReferenceQueue.java
ava/lang/reflect/AccessibleObject.java
ava/lang/reflect/GenericSignatureFormatError.java
ava/lang/reflect/MalformedParameterizedTypeException.java
ava/lang/reflect/UndeclaredThrowableException.java
ava/net/BindException.java
ava/net/CacheRequest.java
ava/net/ConnectException.java
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ava/net/MalformedURLException.java
ava/net/MulticastSocket.java
ava/net/NoRouteToHostException.java
ava/net/PlainDatagramSocketImpl.java
ava/net/PlainSocketImpl.java
ava/net/ProtocolException.java
ava/net/SecureCacheResponse.java
ava/net/ServerSocket.java
ava/net/SocketAddress.java
ava/net/SocketException.java
ava/net/SocketPermissionCollection.java
ava/net/SocketTimeoutException.java
ava/net/Socks4Message.java
ava/net/UnknownHostException.java
ava/net/UnknownServiceException.java
ava/nio/BufferOverflowException.java
ava/nio/BufferUnderflowException.java
ava/nio/InvalidMarkException.java
ava/nio/ReadOnlyBufferException.java
ava/nio/channels/AlreadyConnectedException.java
ava/nio/channels/AsynchronousCloseException.java
ava/nio/channels/CancelledKeyException.java
ava/nio/channels/ClosedByInterruptException.java
ava/nio/channels/ClosedChannelException.java
ava/nio/channels/ClosedSelectorException.java
ava/nio/channels/ConnectionPendingException.java
ava/nio/channels/FileChannel.java
ava/nio/channels/FileLock.java
ava/nio/channels/FileLockInterruptionException.java
ava/nio/channels/IllegalBlockingModeException.java
ava/nio/channels/IllegalSelectorException.java
ava/nio/channels/NoConnectionPendingException.java
ava/nio/channels/NonReadableChannelException.java
ava/nio/channels/NonWritableChannelException.java
ava/nio/channels/NotYetBoundException.java
ava/nio/channels/NotYetConnectedException.java
ava/nio/channels/OverlappingFileLockException.java
ava/nio/channels/Pipe.java
ava/nio/channels/SelectableChannel.java
ava/nio/channels/SelectionKey.java
ava/nio/channels/Selector.java
ava/nio/channels/UnresolvedAddressException.java
ava/nio/channels/UnsupportedAddressTypeException.java
ava/nio/channels/spi/AbstractInterruptibleChannel.java
ava/nio/channels/spi/AbstractSelectableChannel.java
ava/nio/channels/spi/AbstractSelectionKey.java
ava/nio/channels/spi/SelectorProvider.java
ava/nio/charset/CharacterCodingException.java
ava/nio/charset/CoderResult.java
ava/security/IdentityScope.java
ava/security/KeyStore.java
ava/security/SecureClassLoader.java
ava/security/Signer.java
ava/sql/BatchUpdateException.java
ava/sql/DriverManager.java
ava/sql/SQLDataException.java
ava/sql/SQLException.java
ava/sql/SQLFeatureNotSupportedException.java
ava/sql/SQLIntegrityConstraintViolationException.java
ava/sql/SQLInvalidAuthorizationSpecException.java
ava/sql/SQLNonTransientConnectionException.java
ava/sql/SQLNonTransientException.java
ava/sql/SQLRecoverableException.java
ava/sql/SQLSyntaxErrorException.java
ava/sql/SQLTimeoutException.java
ava/sql/SQLTransactionRollbackException.java
ava/sql/SQLTransientConnectionException.java
ava/sql/SQLTransientException.java
ava/sql/SQLWarning.java
ava/sql/Types.java
ava/text/BreakIterator.java
ava/util/AbstractCollection.java
ava/util/AbstractList.java
ava/util/AbstractMap.java
ava/util/AbstractSequentialList.java
ava/util/AbstractSet.java
ava/util/Collections.java
ava/util/Dictionary.java
ava/util/EmptyStackException.java
ava/util/EventListenerProxy.java
ava/util/InputMismatchException.java
ava/util/LinkedHashMap.java
ava/util/LinkedList.java
ava/util/ListResourceBundle.java
ava/util/NoSuchElementException.java
ava/util/Observable.java
ava/util/Properties.java
ava/util/ResourceBundle.java
ava/util/Stack.java
ava/util/Timer.java
ava/util/TimerTask.java
ava/util/TooManyListenersException.java
ava/util/UUID.java
ava/util/jar/JarException.java
ava/util/jar/Manifest.java
ava/util/logging/ErrorManager.java
ava/util/logging/Formatter.java
ava/util/logging/MemoryHandler.java
ava/util/logging/SimpleFormatter.java
ava/util/logging/XMLFormatter.java
ava/util/prefs/FilePreferencesFactoryImpl.java
ava/util/prefs/Preferences.java
ava/util/zip/DataFormatException.java
ava/util/zip/Deflater.java
ava/util/zip/ZipException.java
avax/net/DefaultSocketFactory.java
avax/net/ServerSocketFactory.java
avax/net/SocketFactory.java
avax/net/ssl/KeyManagerFactorySpi.java
avax/net/ssl/SSLContextSpi.java
avax/net/ssl/SSLEngine.java
avax/net/ssl/SSLServerSocket.java
avax/net/ssl/SSLServerSocketFactory.java
avax/net/ssl/SSLSocket.java
avax/net/ssl/SSLSocketFactory.java
avax/net/ssl/TrustManagerFactorySpi.java
avax/net/ssl/X509ExtendedKeyManager.java
avax/security/auth/DestroyFailedException.java
avax/security/auth/PrivateCredentialPermission.java
avax/security/auth/Subject.java
avax/security/auth/SubjectDomainCombiner.java
avax/security/auth/callback/PasswordCallback.java
avax/security/auth/callback/UnsupportedCallbackException.java
avax/security/auth/login/LoginException.java
avax/security/cert/X509Certificate.java
avax/xml/datatype/DatatypeConfigurationException.java
avax/xml/parsers/FactoryConfigurationError.java
avax/xml/parsers/ParserConfigurationException.java
avax/xml/transform/TransformerFactoryConfigurationError.java
rg/apache/harmony/luni/util/TwoKeyHashMap.java
rg/apache/harmony/security/SystemScope.java
rg/apache/harmony/xnet/provider/jsse/EndOfBufferException.java
rg/apache/harmony/xnet/provider/jsse/EndOfSourceException.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java
rg/xml/sax/SAXException.java
rg/xml/sax/SAXNotRecognizedException.java
rg/xml/sax/SAXNotSupportedException.java
rg/xml/sax/helpers/ParserAdapter.java
rg/xml/sax/helpers/XMLFilterImpl.java
52724d3ebd4ccaaa4b9f5576e329d4272cde8ea9 17-Mar-2011 Elliott Hughes <enh@google.com> Add fsync(2) and fdatasync(2).

Interesting parts to this change:
* first BlockGuard support (and general delegation support).
* first rethrowing of ErrnoException as IOException.
* switching FileChannelImpl from int to FileDescriptor.

The special case in FileDescriptor.sync has been removed. Testing with the RI
showed that it doesn't treat syncing a FileDescriptor that corresponds to a
socket as a special case --- it throws SyncFailedException just like normal.

Bug: 3107501
Change-Id: I99faf120bd802aec0397a79772ed38c5e1542fed
ava/io/FileDescriptor.java
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
ava/nio/FileChannelImpl.java
ava/nio/NioUtils.java
ava/nio/PipeImpl.java
ibcore/io/BlockGuardOs.java
ibcore/io/ErrnoException.java
ibcore/io/ForwardingOs.java
ibcore/io/Libcore.java
ibcore/io/MemoryMappedFile.java
ibcore/io/Os.java
ibcore/io/Posix.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
ddfdbb9d172fe9b72e08e8d7deab0aa3b8acf044 17-Mar-2011 Elliott Hughes <enh@google.com> Add access(2), strerror(3) and access to environ.

Update java.io.File and java.lang.System to use the new functionality
rather than brewing their own.

Bug: 3107501
Change-Id: I5fa63190d240d638f44a911401143ffb2af9d395
ava/io/File.java
ava/lang/System.java
ibcore/io/ErrnoException.java
ibcore/io/Os.java
ibcore/io/Posix.java
ec617e2cb4a374f0fd8fbda4a633214cf23a59a9 17-Mar-2011 Elliott Hughes <enh@google.com> Move the getenv(3) native code out of System as a demo.

This is a fairly trivial patch, just to show the general structure.

Bug: 3107501
Change-Id: I547df621ccb8b8874e5f74c4d0bcf84ccaef97c3
ava/lang/System.java
ibcore/io/Libcore.java
ibcore/io/Os.java
ibcore/io/Posix.java
951b4c64ef9a075c405fff859302e30c2fdb9897 17-Mar-2011 Elliott Hughes <enh@google.com> Merge "More POSIX constants." into dalvik-dev
53351277799bc3ee6d7cb7a690a81f1f8ae1642b 16-Mar-2011 Brian Carlstrom <bdc@google.com> Merge "Deflater doc and test tidying" into dalvik-dev
8601d6b5872167f20f3ab845160ae7f9e0fad94b 16-Mar-2011 Brian Carlstrom <bdc@google.com> Deflater doc and test tidying

Change-Id: If140c104d5736e41669a20af5606a54ce338d60c
ava/util/zip/Deflater.java
ava/util/zip/DeflaterOutputStream.java
2822a84736c46282ee3a12983340f594e38eac5a 16-Mar-2011 Elliott Hughes <enh@google.com> More POSIX constants.

This covers <errno.h>, <netinet/in.h>, <stdlib.h>, <sys/mman.h> (minus some
POSIX constants missing in bionic), <sys/socket.h> (minus the
getsockopt/setsockopt constants), <sys/stat.h>, <sys/wait.h>, and <unistd.h>.

Bug: 3107501
Change-Id: I83d5beeb74cce31f3fbac1e1b350d73df7cb4b9d
ibcore/io/OsConstants.java
6ab5999b58777725b4556e4d81bdec56b6d6c182 16-Mar-2011 Elliott Hughes <enh@google.com> Collapse the FileChannel implementations.

This should be an (in)correctness-preserving transformation, with the exception
of tryLock for read-only channels. Previously, that would unconditionally have
been converted to a waiting lock, which seems like a bug.

Bug: 3107501
Change-Id: Ief216c6f9f0a7dbe72f25c2fb63d983ec288f9a5
ava/nio/FileChannelImpl.java
ava/nio/NioUtils.java
ava/nio/PipeImpl.java
ava/nio/ReadOnlyFileChannel.java
ava/nio/ReadWriteFileChannel.java
ava/nio/WriteOnlyFileChannel.java
be3c14134661d099bd6f5c7edbfb1506b6a73cef 16-Mar-2011 Elliott Hughes <enh@google.com> Merge "Expose POSIX constants." into dalvik-dev
7aabd69b01e5435ff0600bf91ce33ed9942630b8 16-Mar-2011 Brian Carlstrom <bdc@google.com> am cd59f01a: am b8822b9a: am 71509f2a: DeflaterOutputStream should output all available compressed data

* commit 'cd59f01ab6edfa8e6cd0ce70adfcd87279cc6260':
DeflaterOutputStream should output all available compressed data
71509f2a9fca846292c5cde06d8fd3e60912cc4b 16-Mar-2011 Brian Carlstrom <bdc@google.com> DeflaterOutputStream should output all available compressed data

In both the write and flush we were looping writing data from the
Deflater to the OutputStream until we needsInput was true. However, we
should have simply been looping until there were no bytes returned.

Bug: 4005091
Change-Id: I855be93286fc4568c6dcc8fd9b77a60019c76564
ava/util/zip/DeflaterOutputStream.java
cdf7a1f942469221bcfd63d9cdf71851b011eaf0 16-Mar-2011 Elliott Hughes <enh@google.com> Expose POSIX constants.

And use them, too. This patch is a little confusing because we already had
constants in Java that were using the POSIX names but that didn't actually
correspond to the constants whose names they'd stolen. Ugh.

Bug: 3107501
Change-Id: Ib64a109c9340b0ecdf80bec91074206c001f455a
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
ava/nio/FileChannelImpl.java
ava/nio/NioUtils.java
ava/nio/PipeImpl.java
ava/nio/WriteOnlyFileChannel.java
ibcore/io/OsConstants.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
5d33c6339eac79ef7db2edb90e2207c1cab0bf63 15-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Fix regressions introduced by Attributes.Name cleanup." into dalvik-dev
4acd18f3adaaf8ac542f8fef20a4ef27bffa49f0 15-Mar-2011 Jesse Wilson <jessewilson@google.com> Fix regressions introduced by Attributes.Name cleanup.

Found by Harmony tests.

Change-Id: Ib940d4204ee9dfe31bf630c4b6bf94be09cbf53a
http://b/3444287
ava/util/jar/Attributes.java
ava/util/jar/InitManifest.java
f934c3d2c8dd9e6bc5299cef41adace2a671637d 15-Mar-2011 Elliott Hughes <enh@google.com> Make OSMemory the semi-supported libcore.io.Memory.

Looks like we're not going to bother with a separate libcore.os package,
when libcore.io will do.

Change-Id: I2806c59349ed4b6410d768c4207c384ced973c54
ava/io/DataInputStream.java
ava/io/DataOutputStream.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/RandomAccessFile.java
ava/net/Inet4Address.java
ava/net/InetAddress.java
ava/net/PlainSocketImpl.java
ava/net/Socks4Message.java
ava/nio/HeapByteBuffer.java
ava/nio/MappedByteBuffer.java
ava/nio/MemoryBlock.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
ava/nio/charset/ModifiedUtf8.java
ava/security/SecureRandom.java
ava/util/UUID.java
ava/util/zip/GZIPInputStream.java
ava/util/zip/ZipInputStream.java
ibcore/io/HeapBufferIterator.java
ibcore/io/Memory.java
ibcore/io/MemoryMappedFile.java
ibcore/io/NioBufferIterator.java
rg/apache/harmony/luni/platform/OSMemory.java
03dbe962bc5a38c95037646e1dfe1d65ddc9c692 15-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Drop SecuritySupport helpers from XML." into dalvik-dev
670c354edf01dcda0d9c4363a0996923bb30169b 15-Mar-2011 Jesse Wilson <jessewilson@google.com> Drop SecuritySupport helpers from XML.

We don't have a security manager; these classes don't provide
any utility.

Change-Id: I22a38820bde93286f5b840579ea2b575d6085640
ava/lang/ClassLoader.java
avax/xml/datatype/FactoryFinder.java
avax/xml/datatype/SecuritySupport.java
avax/xml/parsers/SecuritySupport.java
avax/xml/transform/SecuritySupport.java
avax/xml/validation/SchemaFactory.java
avax/xml/validation/SchemaFactoryFinder.java
avax/xml/validation/SecuritySupport.java
avax/xml/xpath/SecuritySupport.java
avax/xml/xpath/XPathFactory.java
avax/xml/xpath/XPathFactoryFinder.java
85eea05a0827eef230c769f8d756179fcf7895fc 14-Mar-2011 Elliott Hughes <enh@google.com> Merge "More BitSet work." into dalvik-dev
52c4cc5aa39d8e64cb7d57a86fa712ddb316d89d 14-Mar-2011 Elliott Hughes <enh@google.com> More BitSet work.

Fixes bugs in or and xor, implements toByteArray, simplifies
valueOf(ByteBuffer) and arrayForBits, tidies up documentation and adds trivial
implementations of previousSetBit and previousClearBit.

Bug: 3484927
Change-Id: Ie5159fb97414f35da32903e26ef5e668b8f36568
ava/util/BitSet.java
394e621e217f697866b55338f69e9f5efda6a0ad 14-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Use a String for Attributes.Name rather than a byte[]." into dalvik-dev
678e3d534e57c24e3a75a5153cc24714ebdaad8f 12-Mar-2011 Jesse Wilson <jessewilson@google.com> Use a String for Attributes.Name rather than a byte[].

Change-Id: I2ce073092bbe03fba128841258abe8e3b98f3bce
http://b/3444287
ava/util/jar/Attributes.java
ava/util/jar/InitManifest.java
ava/util/jar/Manifest.java
0fddc0a4cb81d68ab2143ff86c5eb89df4a1dbae 12-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Empty enumeration, iterator, listIterator for Java 7 interoperability." into dalvik-dev
e9c5d6fc92d3289bf9278f3eb2f17e814c5ab8f0 12-Mar-2011 Carl Shapiro <cshapiro@google.com> Merge "Add a new constructor to the Reference class." into dalvik-dev
ba1e5f9b7ffe3a42f1001ece077f566de8231548 12-Mar-2011 Carl Shapiro <cshapiro@google.com> Add a new constructor to the Reference class.

This eliminates the duplicated initialization of the reference and queue
members in all subclasses of Reference.

Change-Id: I673fc9443f94e84e33c78637bc5dad9aaa97873e
ava/lang/ref/PhantomReference.java
ava/lang/ref/Reference.java
ava/lang/ref/SoftReference.java
ava/lang/ref/WeakReference.java
8b3ccf0c1b9a8979a3d450be2faf564b54ee23b7 12-Mar-2011 Dan Bornstein <danfuzz@android.com> Merge "Track a related vm change." into dalvik-dev
e3cd663de1c5fa4651500289e6df9150667e2db9 12-Mar-2011 Jesse Wilson <jessewilson@google.com> Empty enumeration, iterator, listIterator for Java 7 interoperability.

This change also fixes several missing @Overrides in Collections.

Change-Id: Ibfc4f3f0fcc0307f2401caca15cda3ee2ff01dbc
http://b/3484927
ava/util/Collections.java
73fba5afced7560686badbc10dedf0d7211458b8 11-Mar-2011 Dan Bornstein <danfuzz@android.com> Track a related vm change.

The type constants passed in from Field are now just the usual
type descriptor characters.

Change-Id: Ie51c1d9340de468183f5380c547c8d52c502515c
ava/lang/reflect/Field.java
b37348817bfc38a2f1efda52d29ee284952b9c3a 11-Mar-2011 Elliott Hughes <enh@google.com> Merge "Rewrite BitSet and add the new valueOf and toLongArray methods." into dalvik-dev
27a5b793cc7ae8a72ba2f767214a828becdc64cd 10-Mar-2011 Elliott Hughes <enh@google.com> Rewrite BitSet and add the new valueOf and toLongArray methods.

All four overloads of valueOf (byte[], long[], ByteBuffer, LongBuffer) are
included. There's still toByteArray and previousClearBit/previousSetBit to
add in a later change. This includes all the rewriting of BitSet I planned on,
though it may be possible to simplify it still further (in particular, I left
get(int, int) pretty much as it was).

This implementation is faster than the old one, as well as clearer, and it
also has a more sane performance profile; operations that ought to be cheap --
such as isEmpty -- are now cheap, and you now always amortize the cost of any
work you cause to be done, where before you might have to do it repeatedly
until a structural change.

The new code also makes better use of Long's functionality.

Bug: 3484927
Change-Id: I180e6ae836437e78a8b6ca0a7a5d522e58f3d911
ava/util/BitSet.java
3d93b50c1e9d8cb12d17a4331edd27ee2a1dc7a9 11-Mar-2011 Dan Bornstein <danfuzz@android.com> Remove the stopAtPrivileged argument.

It's superfluous now.

Change-Id: I5628797b1296a41bfe72e535efaf18cd17e12fd4
ava/io/ObjectInputStream.java
ava/lang/ClassLoader.java
ava/lang/SecurityManager.java
da919b1f08fa713ee78aabb3e2e324630ae1b59d 09-Mar-2011 Elliott Hughes <enh@google.com> Add the new Logger.getGlobal method.

Bug: 3484927
Change-Id: I597ab4c1c85dfc1dc7acfac5fd9a142b039f2bbe
ava/util/logging/Logger.java
2f03ccad590827233fcba84a8b6eafcd414e5fe7 08-Mar-2011 Elliott Hughes <enh@google.com> Use -fvisibility and clean up a little.

The visibility change isn't obviously useful, but it's a good excuse to clean
up some of our networking code a little.

Change-Id: I165b32b9c76a3707c512e07de07992f63673ab4f
ava/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
3393bc90a5bd4498add5b70df1c43e54e5a2f843 08-Mar-2011 Elliott Hughes <enh@google.com> Remove an unused local and improve a comment.

Bug: http://code.google.com/p/android/issues/detail?id=15304
Change-Id: I9924ecbdeafc608bcf972b29d3926de4df616975
ava/net/PlainSocketImpl.java
ff8234c90ecab9f1db368924bf92a5b16460f9b5 08-Mar-2011 Elliott Hughes <enh@google.com> Factor out our single-byte InputStream.read/OutputStream.write implementations.

Change-Id: I00106a51a32ea84a39256d5629369170b892a039
ava/io/FileInputStream.java
ava/net/PlainSocketImpl.java
ava/nio/channels/Channels.java
ava/util/zip/DeflaterInputStream.java
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/ZipFile.java
avax/crypto/CipherOutputStream.java
ibcore/io/Streams.java
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpInputStream.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketOutputStream.java
c56d231b9b0be83029af17f2f6536939109eee03 08-Mar-2011 Elliott Hughes <enh@google.com> Merge "Fix short writes in Socket OutputStreams." into dalvik-dev
608263018762d64a07276b7c8f58102455ccecc8 08-Mar-2011 Elliott Hughes <enh@google.com> Fix short writes in Socket OutputStreams.

Also tidy some code and fix some comments.

The OpenSSL OutputStream is already correct: it handles this in the native code.

Bug: http://code.google.com/p/android/issues/detail?id=15304
Change-Id: I69645543ec01f1eecdae4418f86c3a1911c0f752
ava/net/PlainSocketImpl.java
ava/net/SocketInputStream.java
ava/net/SocketOutputStream.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketInputStream.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketOutputStream.java
7183b699a030626ad5ff432dd777f68570800b74 08-Mar-2011 Dan Bornstein <danfuzz@android.com> Merge "Consistency in and testing of exception throws." into dalvik-dev
363291564f107e500e0b584baa0377757cc2ae09 08-Mar-2011 Dan Bornstein <danfuzz@android.com> Consistency in and testing of exception throws.

More of the former than the latter, but there will be follow-ups.

Bug: 3500987
Change-Id: I5fcf0dab2c018b621921958cb4076d2964030862
ava/lang/AbstractStringBuilder.java
ava/lang/ArrayIndexOutOfBoundsException.java
ava/lang/String.java
ava/lang/StringIndexOutOfBoundsException.java
ava/util/Arrays.java
ava/util/Vector.java
eb8027492e81d5d3a0d1cd49494c59f9a03eeaa3 07-Mar-2011 Elliott Hughes <enh@google.com> Remove useless overrides of InputStream.read(byte[]) and OutputStream.write(byte[]).

For the particular stream in the bug, the useless override assumes that the
implementation of read(byte[], int, int) or write(byte[], int, int) doesn't
do anything special. A dangerous and non-local assumption. (In the bug, we
need to change the three-argument write.)

Bug: http://code.google.com/p/android/issues/detail?id=15304
Change-Id: I915d4a2e20c98f8e7f5775b555ae77d496a535d0
ava/io/DataInputStream.java
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/FilterInputStream.java
ava/io/FilterOutputStream.java
ava/io/InputStream.java
ava/io/ObjectOutputStream.java
ava/io/OutputStream.java
ava/net/SocketInputStream.java
ava/net/SocketOutputStream.java
ava/util/logging/FileHandler.java
avax/crypto/CipherInputStream.java
avax/crypto/CipherOutputStream.java
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketInputStream.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketOutputStream.java
8de7cf6bff36093dda9e25a1ab3718720cb54906 07-Mar-2011 Elliott Hughes <enh@google.com> Move the various concrete SocketImpl classes into java.net.

Also do some trivial tidying of dead code.

Bug: http://code.google.com/p/android/issues/detail?id=15304
Change-Id: If7186dda6bf31e2c2ef00ac6f386cbc9a78847fd
ava/net/DatagramSocket.java
ava/net/MulticastSocket.java
ava/net/PlainDatagramSocketImpl.java
ava/net/PlainServerSocketImpl.java
ava/net/PlainSocketImpl.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketImpl.java
ava/net/SocketInputStream.java
ava/net/SocketOutputStream.java
ava/net/Socks4Message.java
ava/nio/DatagramChannelImpl.java
ava/nio/ServerSocketChannelImpl.java
ava/nio/SocketChannelImpl.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainServerSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/net/SocketInputStream.java
rg/apache/harmony/luni/net/SocketOutputStream.java
rg/apache/harmony/luni/net/Socks4Message.java
9229d47c1288e25ead3a2dc27fac8a4a2ee932a3 07-Mar-2011 Elliott Hughes <enh@google.com> Kill many of the stl_style_names in Java.

Change-Id: I4473a6efc74a49dd3b480a48d4c697fc773e08f8
ava/io/InputStreamReader.java
ava/lang/reflect/Field.java
ava/lang/reflect/Method.java
ava/math/NativeBN.java
ava/nio/DatagramChannelImpl.java
ava/nio/SocketChannelImpl.java
ava/util/Formatter.java
avax/crypto/Cipher.java
avax/crypto/CipherInputStream.java
rg/apache/harmony/luni/util/Base64.java
rg/apache/harmony/luni/util/HexStringParser.java
4f9ffffd8a2835c30647f9785afb48fa96a0f045 05-Mar-2011 Elliott Hughes <enh@google.com> Add new InetSocketAddress.getHostString method.

Bug: 3484927
Change-Id: I265ed467b733b9d5842e2e0bf14af1eddc8e0de2
ava/net/InetAddress.java
ava/net/InetSocketAddress.java
52b310afcffe8b6aed6fa0c1e9e8b0ade6f0a672 04-Mar-2011 Elliott Hughes <enh@google.com> Git threw away my changes to a file that had been renamed.

Manually patch the ICU.cpp changes into libcore_icu_ICU.cpp. Also remove the
whole sentence from the class documentation, since it looks rather odd without
the bit that would refer to @hidden API.

Bug: 3484927
Change-Id: I1ea046e18949ad5bfa7f4512df1f481c81a94310
ava/util/Currency.java
0b4ced108a338c38bc62c203a725415b2cb40e73 04-Mar-2011 Brian Carlstrom <bdc@google.com> Tempoarily hide javadoc reference to @hide method.

Change-Id: Ie006ff7b00c062035152855b19b3728e95ef01fd
ava/util/Currency.java
4cddda58f9e5eaeb244ad4cef26049f9be142fd6 04-Mar-2011 Elliott Hughes <enh@google.com> Merge "Add new java.util.Currency functionality." into dalvik-dev
0ad1c14261c4db0731503770ec6a027e90cc6e38 04-Mar-2011 Elliott Hughes <enh@google.com> Add new java.util.Currency functionality.

Also clean up the implementation a bit, fix a long-standing
serialization bug, and improve the documentation.

Bug: 3484927
Change-Id: I5e5270b1b1cdac69b6d7f51b8460896692040a12
ava/util/Currency.java
ibcore/icu/ICU.java
5d3f5562c167120b5ec00e509af0f0ab9308bff5 04-Mar-2011 Elliott Hughes <enh@google.com> Add InetAddress.getLoopbackAddress.

Bug: 3484927
Change-Id: Ic5305c852ed8079d958d8ab7c46fe10cceac60d4
ava/net/InetAddress.java
b4acb463582a510894aeb85f4fa8f35b339449c8 03-Mar-2011 Elliott Hughes <enh@google.com> Add and use System.lineSeparator.

Also remove some duplication and improve some documentation.

Bug: 3484927
Change-Id: I16d673e54ecdc79b77c3f317666519923d11ebe8
ava/io/BufferedWriter.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/lang/System.java
ava/util/Formatter.java
ava/util/Properties.java
ava/util/logging/LogManager.java
ava/util/logging/SimpleFormatter.java
ava/util/logging/XMLFormatter.java
56b9c93d039e8b41f9317e15cf013c53f6d1f31f 01-Mar-2011 Elliott Hughes <enh@google.com> am 95187055: Fix a broken @link in the SecureRandom documentation.

* commit '95187055a32acbc27ff91db542bb2f55649c5101':
Fix a broken @link in the SecureRandom documentation.
08bad46e2b61b5005eb02a401e97fec25d9d3013 01-Mar-2011 Elliott Hughes <enh@google.com> Add new java.lang.reflect.Modifier functionality.

Bug: 3484927
Change-Id: Id9cc9ab6dd37b2191f9a31d4a82e1316c0eee171
ava/lang/reflect/Modifier.java
c3adcfb1339de546aed6e7ff00a7edb020b8a85b 01-Mar-2011 Elliott Hughes <enh@google.com> Add new java.lang.*.compare methods.

Bug: 3484927
Change-Id: I1e1ddf9ea84144d737f4c419f37f9854671d267f
ava/lang/Boolean.java
ava/lang/Byte.java
ava/lang/Integer.java
ava/lang/Long.java
ava/lang/Short.java
95187055a32acbc27ff91db542bb2f55649c5101 28-Feb-2011 Elliott Hughes <enh@google.com> Fix a broken @link in the SecureRandom documentation.

Change-Id: I5f559a4ab69e2582c1fdbbd75a8ac210bcd7c659
ava/security/SecureRandom.java
276c5cd70991e814f085bf417cb647dce9bb55e4 28-Feb-2011 Elliott Hughes <enh@google.com> Add missing @hide tag to Character.getName.

Change-Id: I24463309bae8e9e9cb23a6836ee939d45c45e57f
ava/lang/Character.java
4f5a696869e0348cf21dad9050d59b20849aff96 26-Feb-2011 Elliott Hughes <enh@google.com> Add new java.lang.Character functionality.

Bug: 3484927
Change-Id: I561c927bbd0ef2e801d38d9c3a6250b1d3f65b0d
ava/lang/Character.java
ava/lang/Integer.java
ava/lang/IntegralToString.java
e9dfb3473d9c2cceaf55c86ac9f4296e7535a175 25-Feb-2011 Elliott Hughes <enh@google.com> Add a few extra exception constructors.

Bug: 3484927
Change-Id: I167dd29da676864be1e1e670481619709a8d3a4a
ava/lang/AssertionError.java
ava/lang/LinkageError.java
ava/util/ConcurrentModificationException.java
c363316bb6da97b7af82491f5951341b881401f3 25-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: instanceof again.

Looks like FindBugs won't show you the same warning twice in the same method...

Change-Id: I1136610fd48fd075520b7595ee8230409cd21d96
ava/util/prefs/XMLParser.java
cb1ed37295a7c13781a599d02687884243526c37 25-Feb-2011 Elliott Hughes <enh@google.com> Merge "Fix more FindBugs warnings: RR_NOT_CHECKED." into dalvik-dev
6433c7a0ea749a69f756d62576eeae8e7bd57215 25-Feb-2011 Elliott Hughes <enh@google.com> Merge "Fix more FindBugs warnings: SIC_INNER_SHOULD_BE_STATIC." into dalvik-dev
7d7379be39626cccaa84a66a82cdde8cb178bc96 25-Feb-2011 Elliott Hughes <enh@google.com> Fix build.

The "new String" here was probably a deliberate attempt to avoid a public
static final field being inlined as a constant. Revert and document.

Change-Id: I864bbf82c8711e08016fd7f4f2e8a8508b95db0c
avax/xml/datatype/DatatypeFactory.java
f5309a39506c967feda8766feeba7f7271a458cb 25-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: RR_NOT_CHECKED.

"This method ignores the return value of one of the variants of
java.io.InputStream.read() which can return multiple bytes. If the return
value is not checked, the caller will not be able to correctly handle the
case where fewer bytes were read than the caller requested. This is a
particularly insidious kind of bug, because in many programs, reads from input
streams usually do read the full amount of data requested, causing the
program to fail only sporadically."

Change-Id: I7d7c62836f2037f0cbb4bb0708bd4f034a22a2fc
ava/util/zip/ZipInputStream.java
ibcore/io/Streams.java
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
rg/apache/harmony/xnet/provider/jsse/CertificateRequest.java
rg/apache/harmony/xnet/provider/jsse/ClientHello.java
rg/apache/harmony/xnet/provider/jsse/ClientKeyExchange.java
rg/apache/harmony/xnet/provider/jsse/ServerHello.java
5e8d3957944a24ac8068e3faf7cfe1dc4f69b962 25-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: SIC_INNER_SHOULD_BE_STATIC.

"This class is an inner class, but does not use its embedded reference to
the object which created it."

Change-Id: I975a29744e334ace8604c2ebb70ceee7e731b0a9
rg/xml/sax/helpers/XMLReaderAdapter.java
1736d135e80c41ced1a5a98436e8b8a922f6f1dd 25-Feb-2011 Elliott Hughes <enh@google.com> Merge "Fix more FindBugs warnings: DMI_INVOKING_HASHCODE_ON_ARRAY." into dalvik-dev
a6107fe9f3dfc6c26cbf247e9e266a6094e4df99 25-Feb-2011 Elliott Hughes <enh@google.com> Merge "Fix more FindBugs warnings: BC_VACUOUS_INSTANCEOF." into dalvik-dev
8f7b815b21dd8dd884b7c0e16ea798d0f8e41314 25-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: DM_STRING_CTOR.

These are the cases where we don't actually want to avoid memory leaks.

Change-Id: Icc6c5506e5d415ff4fb5ff1351efee572a2af3e9
ava/text/DateFormatSymbols.java
avax/xml/datatype/DatatypeFactory.java
196f44e24830d0e7fd17eba627704a162eba779e 25-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: DMI_INVOKING_HASHCODE_ON_ARRAY.

"The code invokes hashCode on an array."

Change-Id: Ib47f878fd42a56fdcdb46b83fd8a4f528af2a534
rg/apache/harmony/security/x509/AlgorithmIdentifier.java
rg/apache/harmony/security/x509/Extension.java
rg/apache/harmony/security/x509/GeneralName.java
rg/apache/harmony/security/x509/TBSCertList.java
c0d1705423cf565f87a529a03596013c1208a920 25-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: BC_VACUOUS_INSTANCEOF.

"This instanceof test will always return true (unless the value being
tested is null)."

Change-Id: Ie95c71bee4198c1e343076058110ff0cfab51e0b
ava/util/prefs/XMLParser.java
b16edf548fa6bb9cd93b238e7820bc92195e5e2f 25-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS.

"The equals(Object o) method shouldn't make any assumptions about the type
of o. It should simply return false if o is not the same type as this."

Change-Id: Ib16eb57e8876ec117634b4c9b069a4dccc61c657
avax/security/auth/PrivateCredentialPermission.java
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/ByteArray.java
rg/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
rg/apache/harmony/xnet/provider/jsse/IndexedPKIXParameters.java
c0009b516f3341c678ef5f82cdffd6f9872bc22a 25-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: Charset.

Dead store.

Change-Id: Idd46fa2888b097c70a942554c9afc63cb4b61926
ava/nio/charset/Charset.java
7603ae72855411e6810719c28da82f07941654e6 24-Feb-2011 Elliott Hughes <enh@google.com> Merge "Fix more FindBugs warnings: Charset." into dalvik-dev
9dc1d172675422e7db8df14d325365d7724a346a 24-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: Charset.

FindBugs doesn't like us using known-null values, so just explicitly say
'null' to make it clear we know what we're doing.

Change-Id: I54312f19edda1bca1052b82f7d9faedb98c8a01f
ava/nio/charset/Charset.java
ae06196267319eef727892d9e13bdecea3482e34 24-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: dead code in Socket(Proxy).

From the SecurityManager removal.

Change-Id: Ie822bc02453b1020a8ad6d9337b2d997c475659b
ava/net/Socket.java
93942160263480b1ffdd4030036cf6994c616b9c 24-Feb-2011 Elliott Hughes <enh@google.com> am 46bed6a4: Make InetAddress.parseNumericAddress more like InetAddress.getByName.

* commit '46bed6a47a20d8105f0e099d162d547a7964b4fe':
Make InetAddress.parseNumericAddress more like InetAddress.getByName.
6df25bda347959d57031ec0e5b5c2d991adb144f 24-Feb-2011 Elliott Hughes <enh@google.com> Merge "Fix more FindBugs warnings: dead store in SimpleDateFormat." into dalvik-dev
a98d1312b214d3bb49b51fba084baa6be1b573d5 24-Feb-2011 Elliott Hughes <enh@google.com> Merge "Fix more FindBugs warnings: dead store in SocketChannelImpl." into dalvik-dev
be58c14fd1c508a6ba1212c121d622207aa1d59b 24-Feb-2011 Elliott Hughes <enh@google.com> Merge "Fix more FindBugs warnings: BigDecimal static initializer order." into dalvik-dev
dc6c682bd5bb07f2d68d6108ecc690d65dd0e06b 24-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: dead store in SimpleDateFormat.

Change-Id: I837ddf7b4adbaada6492a124c4af1fe5e9dec997
ava/text/SimpleDateFormat.java
62e34a21db1cbef5d2cec186ee4f15c5ec39d187 24-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: dead store in SocketChannelImpl.

Change-Id: I2aa05b830dd7cac561efadf019eb48c2c933c095
ava/nio/SocketChannelImpl.java
e497649548980e13fe7b19a7705de9d246f75535 24-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: BigDecimal static initializer order.

We were creating instances of BigDecimal before all its other static fields
were initialized.

Change-Id: Ic415d118041253b01d0e43e4b8e71d220a660639
ava/math/BigDecimal.java
c3c7091284fa1879702318c7b3e3f09681030a64 24-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings in ObjectOutputStream.

A duplicate of the dead code in ObjectInputStream.

Change-Id: I717a31a552e4201d80df95f84f79fe04d49049bf
ava/io/ObjectOutputStream.java
46bed6a47a20d8105f0e099d162d547a7964b4fe 24-Feb-2011 Elliott Hughes <enh@google.com> Make InetAddress.parseNumericAddress more like InetAddress.getByName.

Specifically, treat null and "" as requests for the loopback address.

Bug: 3483011
Change-Id: I656f1d2873faf4b73e1fc7621c96183a8a86992b
ava/net/InetAddress.java
685f9f54501631ef05a9379fa865004dc33a2ae5 24-Feb-2011 Elliott Hughes <enh@google.com> More FindBugs complaints in ObjectInputStream.

I don't know why there was so much bogus (too late) null checking in this code,
but it's not obvious how fieldDesc could ever be null, so I think that removing
the checks rather than fixing them is the right resolution.

Change-Id: I72ee5c048ddebc3678c94f23e4c09dcb2790dfc7
ava/io/ObjectInputStream.java
9ebb5807fa40f3bddf3567906a2c77ee053174bb 24-Feb-2011 Elliott Hughes <enh@google.com> NativePluralRules.finalize should be protected, not public.

(FindBugs.)

Change-Id: I3ac444fdc84beb7f8738b941849cc76a950708e8
ibcore/icu/NativePluralRules.java
eba235c7faa8157de8bcfc6ce29a48e196100bfb 24-Feb-2011 Elliott Hughes <enh@google.com> Don't @see a private field.

Change-Id: I7acd9200acfa46c38b4deb61fff337f0d19fcaed
ava/net/URLConnection.java
00118d748e062fcc908d6b9e5cb8de08106220f9 24-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge commit '217766d6' into manualmerge

Conflicts:
luni/src/main/java/java/lang/Class.java

Change-Id: I32c6b5e66f7f3b315761f8bbcc7ae4c783625686
217766d68f160dd03def5d5f983d5330c24a3ed7 23-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge "Optimize Class.getMethod() by loading only one method."
11229f6af89fc54e70675fcab098b1572d6e539e 23-Feb-2011 Jesse Wilson <jessewilson@google.com> Optimize Class.getMethod() by loading only one method.

Change-Id: I546fec33ff9696a829867704244a79674cf5dd2b
http://b/3431686
ava/lang/Class.java
ava/lang/ClassLoader.java
ava/lang/ClassMembers.java
ava/lang/Enum.java
a7249efe0fb2a75e0e5526dc97567911af499514 23-Feb-2011 Elliott Hughes <enh@google.com> Merge "Fix more FindBugs complaints (BufferedReader, File, and ObjectInputStream)." into dalvik-dev
344110141de805108972f0ad24f16de59ba2aa32 23-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs complaints (BufferedReader, File, and ObjectInputStream).

Also slightly improve the documentation of Random and SecureRandom.

Change-Id: I47b23cef33958fffb4254c9942849ae7b52136f1
ava/io/BufferedReader.java
ava/io/File.java
ava/io/ObjectInputStream.java
ava/security/SecureRandom.java
ava/util/Random.java
c3980684e1d16ba7df02df9ba1a207cf31733c48 23-Feb-2011 Scott Main <smain@google.com> am 482d294e: am 4ecd3eb7: am 0351940f: docs: fix a couple hundred broken links

* commit '482d294ebd5dff55f5397d5991f9f0e3808e5cac':
docs: fix a couple hundred broken links
f5fc66d0a21d4369e17e14d4a86d1a7b2d2678b2 23-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge commit '6dfa1ea0' into manualmerge

Conflicts:
luni/src/test/java/libcore/java/net/URLTest.java

Change-Id: Idcc92efa678d32ec1c9fa22bc6877f9582ff319e
482d294ebd5dff55f5397d5991f9f0e3808e5cac 23-Feb-2011 Scott Main <smain@google.com> am 4ecd3eb7: am 0351940f: docs: fix a couple hundred broken links

* commit '4ecd3eb70ba0ab58026f13b2a1c8e5fc51d99bad':
docs: fix a couple hundred broken links
8216dc1fd9d31867770439985c3d66570330e4c7 23-Feb-2011 Elliott Hughes <enh@google.com> Remove most of our remaining non-API StringBuffer usage.

Change-Id: Ia2c621d8a9dfe04cd55aac652d1ac9ea4398afd1
ava/net/URLConnection.java
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/apache/harmony/security/x501/AttributeValue.java
rg/apache/harmony/security/x501/Name.java
rg/apache/harmony/security/x509/AlgorithmIdentifier.java
rg/apache/harmony/security/x509/AlternativeName.java
rg/apache/harmony/security/x509/AuthorityKeyIdentifier.java
rg/apache/harmony/security/x509/BasicConstraints.java
rg/apache/harmony/security/x509/CRLDistributionPoints.java
rg/apache/harmony/security/x509/CRLNumber.java
rg/apache/harmony/security/x509/Certificate.java
rg/apache/harmony/security/x509/CertificateIssuer.java
rg/apache/harmony/security/x509/CertificateList.java
rg/apache/harmony/security/x509/CertificatePolicies.java
rg/apache/harmony/security/x509/DistributionPoint.java
rg/apache/harmony/security/x509/DistributionPointName.java
rg/apache/harmony/security/x509/ExtendedKeyUsage.java
rg/apache/harmony/security/x509/Extension.java
rg/apache/harmony/security/x509/ExtensionValue.java
rg/apache/harmony/security/x509/Extensions.java
rg/apache/harmony/security/x509/GeneralNames.java
rg/apache/harmony/security/x509/GeneralSubtree.java
rg/apache/harmony/security/x509/InfoAccessSyntax.java
rg/apache/harmony/security/x509/InhibitAnyPolicy.java
rg/apache/harmony/security/x509/InvalidityDate.java
rg/apache/harmony/security/x509/IssuingDistributionPoint.java
rg/apache/harmony/security/x509/KeyUsage.java
rg/apache/harmony/security/x509/NameConstraints.java
rg/apache/harmony/security/x509/PolicyConstraints.java
rg/apache/harmony/security/x509/PolicyInformation.java
rg/apache/harmony/security/x509/ReasonCode.java
rg/apache/harmony/security/x509/ReasonFlags.java
rg/apache/harmony/security/x509/SubjectKeyIdentifier.java
rg/apache/harmony/security/x509/TBSCertList.java
rg/apache/harmony/security/x509/TBSCertificate.java
rg/apache/harmony/security/x509/Utils.java
244449b9ccd108197d1c117edda99cd93a891d49 23-Feb-2011 Elliott Hughes <enh@google.com> Fix a comment and remove some duplication.

Change-Id: I67bb9f1c71c774e04698a3e489bd48e9b27b2b64
ava/lang/Runtime.java
ava/net/URLClassLoader.java
ibcore/util/ZoneInfoDB.java
0351940f37cf93ea856c52d7e88302271ff39d2e 23-Feb-2011 Scott Main <smain@google.com> docs: fix a couple hundred broken links

Change-Id: I97656da16455f0fb97380c46c747bf23176a7abd
ava/lang/Object.java
99e234cc3322b6c88c9d883da45116d9ec8271db 23-Feb-2011 Elliott Hughes <enh@google.com> Be more consistent about VM.

Also add more warnings about the default locale, and remove dead code.

Change-Id: I103cbf52f7aadc8e1132d7fad72ef2b0abc851f4
ava/io/FileOutputStream.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/lang/AbstractMethodError.java
ava/lang/Class.java
ava/lang/ClassCircularityError.java
ava/lang/ClassLoader.java
ava/lang/Compiler.java
ava/lang/IllegalAccessError.java
ava/lang/IllegalStateException.java
ava/lang/InstantiationError.java
ava/lang/InternalError.java
ava/lang/NoClassDefFoundError.java
ava/lang/NoSuchFieldError.java
ava/lang/NoSuchFieldException.java
ava/lang/NoSuchMethodError.java
ava/lang/NoSuchMethodException.java
ava/lang/Object.java
ava/lang/OutOfMemoryError.java
ava/lang/Runtime.java
ava/lang/RuntimeException.java
ava/lang/SecurityManager.java
ava/lang/StackOverflowError.java
ava/lang/System.java
ava/lang/Throwable.java
ava/lang/UnknownError.java
ava/lang/UnsupportedClassVersionError.java
ava/lang/VerifyError.java
ava/lang/VirtualMachineError.java
ava/nio/channels/FileChannel.java
ava/nio/channels/FileLock.java
ava/nio/channels/spi/SelectorProvider.java
ava/sql/CallableStatement.java
ava/sql/PreparedStatement.java
ava/util/logging/LogRecord.java
16b52d1f3e66cfadf3e245de27358b590e201d72 23-Feb-2011 Elliott Hughes <enh@google.com> Better documentation for Runtime.addShutdownHook and File.deleteOnExit.

Change-Id: I1f3efad59f95fce4985aa13cfe15f7b603e5d3d5
ava/io/File.java
ava/lang/Runtime.java
a7ef55258ac71153487357b861c7639d627df82f 22-Feb-2011 Elliott Hughes <enh@google.com> Simplify internal libcore logging.

Expose LOGE and friends for use from Java. This is handy because it lets me use
printf debugging even when I've broken String or CharsetEncoder or something
equally critical. It also lets us remove internal use of java.util.logging,
which is slow and ugly.

I've also changed Thread.suspend/resume/stop to actually throw
UnsupportedOperationException rather than just logging one and otherwise
doing nothing.

Bug: 3477960
Change-Id: I0c3f804b1a978bf9911cb4a9bfd90b2466f8798f
ava/lang/ProcessManager.java
ava/lang/System.java
ava/lang/Thread.java
ava/lang/VMThread.java
ava/security/Security.java
avax/net/ssl/DefaultHostnameVerifier.java
avax/net/ssl/SSLSocketFactory.java
ibcore/icu/TimeZones.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpHeaders.java
rg/apache/harmony/xml/ExpatParser.java
6c434a1215049a76ba82fea69e8c5aa76cad955b 21-Feb-2011 Jesse Wilson <jessewilson@google.com> Fix URL.equals() to not throw on null hosts.

Change-Id: Ib89c902a10b28dc7e78600b44a3f1ff230f9b553
http://b/3474668
ava/net/URLStreamHandler.java
627e11cb4d62b42c081886575292b0992158c06b 19-Feb-2011 Elliott Hughes <enh@google.com> am 9bbaec8f: Cope with ICU reporting obsolete language codes.

* commit '9bbaec8f8f415244ab80061e6637c22bf40b5ccd':
Cope with ICU reporting obsolete language codes.
9bbaec8f8f415244ab80061e6637c22bf40b5ccd 19-Feb-2011 Elliott Hughes <enh@google.com> Cope with ICU reporting obsolete language codes.

java.util.Locale mangles the new language codes for Hebrew and Indonesian into
the obsolete codes. I've added the ICU aliases so that ICU knows about the
obsolete codes (so that when we pass a mangled locale to ICU, ICU knows what
we're talking about). This patch adds tests, and also filters out the
duplicates caused by ICU now reporting both "he" and "iw", which we mangle
into "iw" and "iw". I've used a LinkedHashMap to preserve ICU's ordering;
there's no _need_ to do this, but it's nice behavior, better than the RI's.

Bug: 3452611
Change-Id: I320ede1a35c9dd5578116499d33a7172f27e95f5
ibcore/icu/ICU.java
0befd5a6699abc1c9ec595699da4c6b8249ba754 18-Feb-2011 Elliott Hughes <enh@google.com> Merge "More system properties work." into dalvik-dev
2ef68714ff84d43705f57f724fbcb1a28ebd954d 18-Feb-2011 Elliott Hughes <enh@google.com> More system properties work.

This patch moves the last of dalvikvm's property setting (other than the
command-line -D stuff, which is inherently the VM's job) into libcore. It
also adds a couple of new properties giving the openssl and zlib library
versions.

Change-Id: I4569b65fad0585c3878ad5eaa0234ed95768b1f9
ava/lang/System.java
cfb6bd546b6a1443de313fb0abd17c2ad8c9f09f 18-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge "Remove low-hanging fruit from zygote heap." into dalvik-dev
21f21e9f56ab8c9abfd8728473533fcaafafeac0 18-Feb-2011 Jesse Wilson <jessewilson@google.com> Remove low-hanging fruit from zygote heap.

Change-Id: If6b5e61089140e99babdebd5036b9c9f4ef0c1f3
rg/apache/harmony/security/asn1/BerInputStream.java
rg/apache/harmony/xnet/provider/jsse/IndexedPKIXParameters.java
6aa068b481cc4cca7765ce90fdf32f3eb2b5a77c 18-Feb-2011 Elliott Hughes <enh@google.com> Fix various FindBugs warnings.

Only the ChunkHandler and ZoneInfo ones were real bugs. The former is only
called with one input value that doesn't exercise the bug, and the latter
would cause us to think that a time zone that stopped using daylight time
before 1970 was still using daylight time (which would defeat various
optimizations, but should otherwise be harmless).

The other stuff is trivia not worth individual changes.

Change-Id: Ib0752560cd16edc6538d1fc2b234451a66d48171
ava/net/URLClassLoader.java
ava/nio/charset/ModifiedUtf8.java
ava/security/AccessControlContext.java
avax/crypto/CipherInputStream.java
avax/crypto/spec/SecretKeySpec.java
ibcore/util/ZoneInfo.java
rg/apache/harmony/lang/annotation/AnnotationFactory.java
rg/apache/harmony/luni/lang/reflect/GenericSignatureParser.java
rg/apache/harmony/luni/lang/reflect/ListOfVariables.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketInputStream.java
rg/xml/sax/helpers/XMLReaderFactory.java
66e1a782c0ffafcb7c4226798d6ecc4cfc071916 18-Feb-2011 Elliott Hughes <enh@google.com> Fix a few small preferences/properties bugs.

We were incorrectly turning \ into &apos; when writing preferences as XML.

We were concatenating strings with + in a loop to work around something that's
since been fixed.

We were using an invalid Unicode escape where we could use a simple literal.

Change-Id: I8882c43ba914254155505f55c66c2480e268f034
ava/util/Properties.java
ava/util/prefs/XMLParser.java
5558f048777e00c8ecb389482b947bea4a1fd589 18-Feb-2011 Elliott Hughes <enh@google.com> Fix a FindBugs warning in ImplForVariable.

FindBugs pointed out that if we ever took the "if" that was marked with a
FIXME, we'd throw a NullPointerException. Which makes it more likely that
the FIXME's suggestion of throwing AssertionError is a good one. Done.

Change-Id: I0d62450860555b37381a9b81c0a9babe79a7acce
rg/apache/harmony/luni/lang/reflect/GenericSignatureParser.java
rg/apache/harmony/luni/lang/reflect/ImplForVariable.java
88dc8b7ade1887f0926f1b6b89eea3a79353ff7d 17-Feb-2011 Elliott Hughes <enh@google.com> Tidy up MathContext (fixing a FindBugs complaint).

FindBugs didn't like the fact that "the class's static initializer creates an
instance of the class before all of the static final fields are assigned"; I
didn't like the implementation of MathContext(String).

Change-Id: I72e44d851571ec9789a6842f5814fee7a14c0e5a
ava/math/MathContext.java
aa1f2159554ab6f7c4201c1e8d7c549cffd79f37 17-Feb-2011 Elliott Hughes <enh@google.com> Fix FindBugs warnings in ShortBuffer.

Change-Id: I59de6a701328411aaedbf5c11ce130c5f1bf01e4
ava/nio/ShortBuffer.java
510dc6afb60f9099127c5bc9fb91d86b778d747f 17-Feb-2011 Elliott Hughes <enh@google.com> Fix FindBugs warnings in ResourceBundle.

Change-Id: Ida0b2208f8121d7f510043cdcb1fa99bbfc83103
ava/util/ResourceBundle.java
cd5770741b91e7957e893582cc7d6cd37c8ad568 17-Feb-2011 Elliott Hughes <enh@google.com> Fix NativeCrypto FindBugs warnings.

Change-Id: I102367575b1257582bb20c659223e3f02650fda4
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
8e9f4948e08c238998b44228ee30aea9d57a7573 17-Feb-2011 Elliott Hughes <enh@google.com> Tidy nio->io charset name conversion.

Change-Id: I60fa7540ecaff49486985f90098f7cb9157aa9cd
ava/io/HistoricalCharsetNames.java
ava/io/InputStreamReader.java
ava/io/OutputStreamWriter.java
rg/apache/harmony/luni/util/HistoricalNamesUtil.java
aa37e2512b13deab2e82800c71327dd74c362577 17-Feb-2011 Elliott Hughes <enh@google.com> Move SneakyThrow to libcore.util.

Change-Id: Ibd3dc18cf8352ee259b3665bcdc80a13842acb64
ava/io/BufferedWriter.java
ava/io/FilterOutputStream.java
ibcore/util/SneakyThrow.java
rg/apache/harmony/luni/util/SneakyThrow.java
81a1715404ffd60fee3457865f3c89d1020f4a1c 17-Feb-2011 Elliott Hughes <enh@google.com> Merge "Tidy up the bidi code a little." into dalvik-dev
bb1c04167bdff1939e9e71ed04c57337d4951008 17-Feb-2011 Elliott Hughes <enh@google.com> Tidy up the bidi code a little.

If we do ever use this, we should probably kill the run class completely; we
don't expose it to callers, and we could easily cope with a simple int[]
internally.

Change-Id: Ic03fbf7e56251a35b5db31509fbca15ab6d6f01a
ava/text/Bidi.java
rg/apache/harmony/text/BidiRun.java
rg/apache/harmony/text/NativeBidi.java
dbe726cf316481c0e0b4c60a411730fb423266df 17-Feb-2011 Elliott Hughes <enh@google.com> Remove an unused class.

Change-Id: Ie328c31e0cbedb2e282270f9688edd85689679bb
rg/apache/harmony/kernel/vm/VM.java
08343a4ef77616fc420e51d1095c0d6a266041ba 16-Feb-2011 Elliott Hughes <enh@google.com> Remove our implementations of inline natives.

It turns out that our String.equals was getting used. Making dalvikvm's inline
natives be native methods ensures that doesn't happen.

I've also added a test to ensure we explicitly test both variants.

Change-Id: Ie2a4b5289092da5ffca4a4273692f1048ab3b841
ava/lang/Math.java
ava/lang/StrictMath.java
ava/lang/String.java
4ffe5900ca8922ad33639f9f73cb30b8f6721363 16-Feb-2011 Elliott Hughes <enh@google.com> am f39b892d: Add InetAddress.parseNumericAddress for frameworks/base\'s benefit.

* commit 'f39b892d87e85835f021e8ad77ffdd215735604b':
Add InetAddress.parseNumericAddress for frameworks/base's benefit.
f39b892d87e85835f021e8ad77ffdd215735604b 16-Feb-2011 Elliott Hughes <enh@google.com> Add InetAddress.parseNumericAddress for frameworks/base's benefit.

Bug: 3300307
Change-Id: Ifb2207621232314046aee39fdb86b957b9e7f8fc
ava/lang/AssertionError.java
ava/net/InetAddress.java
7b2c603466820e493385d2af9ca6008e67873836 16-Feb-2011 Brian Carlstrom <bdc@google.com> Merge "Remove some unnecessary java.lang references" into dalvik-dev
00ccc7c466cf9f0c5b3df4d3276e1e4be0618f7f 15-Feb-2011 Elliott Hughes <enh@google.com> Improve the Properties documentation.

Bug: http://code.google.com/p/android/issues/detail?id=14752
Change-Id: I2e39e696ec6f0fa65893209ad8090becb040df10
ava/util/Properties.java
a9e5f374e92eb769bc28333cc8110051a2f622b1 12-Feb-2011 Brian Carlstrom <bdc@google.com> Remove some unnecessary java.lang references

Change-Id: I140760f8aa52dca99ce7e15dec97e811eb087784
ava/lang/NoSuchFieldException.java
ava/lang/NoSuchMethodException.java
ava/lang/NumberFormatException.java
ava/lang/OutOfMemoryError.java
ava/lang/SecurityException.java
6d82ce5d35a5e84aedf08528fd98b849f3f565a6 15-Feb-2011 Elliott Hughes <enh@google.com> Move ZoneInfo and ZoneInfoDB into libcore.util.

Change-Id: I91385512ec27aa2aebdc163ae204e542efa58f21
ava/util/TimeZone.java
ibcore/util/ZoneInfo.java
ibcore/util/ZoneInfoDB.java
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
6d4b1ffd4c7d665393e2d1b9197ce1ff525d1f48 15-Feb-2011 Elliott Hughes <enh@google.com> Merge "Improve TimeZone's behavior for "pre-historic" dates." into dalvik-dev
65c53ceda4279ee7c19cf42d7c265cd601340ca0 15-Feb-2011 Elliott Hughes <enh@google.com> Improve TimeZone's behavior for "pre-historic" dates.

By pre-historic I mean "before the beginning of our table of transitions". It's
not entirely obvious what the right behavior is, but it's pretty obvious that
our old behavior was unhelpful and inconsistent. This is an attempt at a
reasonable semantics, backed by tests.

Also add a test for an unrelated TimeZone bug (already fixed).

Bug: http://code.google.com/p/android/issues/detail?id=14395
Bug: http://code.google.com/p/android/issues/detail?id=11918
Change-Id: I230ab21f9a38e37d6d0a44f97d5a8ac8b01df7d9
ava/util/SimpleTimeZone.java
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
035932b8f19aeb0eb5b25a0b6cbe7f0ab3567dde 14-Feb-2011 Jesse Wilson <jessewilson@google.com> Test to show that deleting prefs files is consistent with the RI.

http://b/3431233

Change-Id: Id20db6e86ef3521450b240418e7a8652be9681aa
ava/util/prefs/XMLParser.java
566bbb1d5a0ffadfc07fa58176587d4bd0d0be13 12-Feb-2011 Elliott Hughes <enh@google.com> Various time zone strings improvements.

* Added a cache -- really a memo table -- to libcore.icu.TimeZones. I've also
made the intern table global across all locales, for the common case where one
language has many corresponding country codes (and thus locales) for which the
strings are all the same. (I.e. this gives us deduplication across locales
where before we only had it within locales.) We also eagerly populate the cache
with both the default locale *and* en_US in the zygote, which should provide
better behavior for everyone whose default locale isn't en_US.

* Switched from linear search to binary search when pulling a row out of the
zone strings table. We could hash these, but I currently have no reason to
think we'd gain much speed for the space.

* Removed the special-case hack I had to ask ICU for a single string. The new
code largely removes the need for this, though one can imagine a theoretical
app that will behave worse under the new regime, all plausible ones will
benefit.

* Switch ICU over to using an mmap(2)ed copy of its .dat file and tell it never
to look for stuff on the file system. This doesn't actually work in any current
version of ICU, though it is slightly faster by virtue of no longer looking for
individual .res files (it still keeps looking for the same .dat file over and
over). I'll work on fixing ICU later. This change takes us from about
1.1s/locale to 0.8s/locale. My current ICU hack takes that down to 0.3s/locale,
which is still obscene, but it's another step in the right direction.

* Fixed the "unambiguous abbrevations" logic in TimeZones.cpp so that all users
of (say) CET to mean "Central European Time" get it, not just first. We really
just wanted to avoid the situation where there's a "Central Excellent Time" or
whatever, whose CET would *conflict* with the first one we learned about.
Multiple references to the same time zone are not conflicts.

* Moved clone2dStringArray to the only place it's really needed.

* Slightly better documentation for Comparator.

* More tests, including the one for CET formatting that I should have added
when I fixed CET parsing, which would have shown me the error of my old ways.

Bug: 3443476
Change-Id: If1d50e6273fc98a38139f14445265ce0be5e09dd
ava/text/DateFormatSymbols.java
ava/text/SimpleDateFormat.java
ava/util/Comparator.java
ava/util/TimeZone.java
ibcore/icu/TimeZones.java
6017a82e369f3f616c3da7434a56d3c596c6083f 11-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge "Move tests from java.injected into libcore." into dalvik-dev
3a3511edad46420b4287017ac66fe4783cb804db 11-Feb-2011 Jesse Wilson <jessewilson@google.com> Move tests from java.injected into libcore.

Change-Id: Ia3fee27c8f8ca38120eea3fc2582d3e1b2504cea
rg/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
rg/apache/harmony/xnet/provider/jsse/FileClientSessionCache.java
10b5dd613887c94718ae774bd73e6d11bea0c2ef 11-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge "Rely on string to do case mapping." into dalvik-dev
6f29fe0f1a0a42d773fb435e132d8dea9b59a11d 11-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge commit '7d95dd2e' into manualmerge

Conflicts:
luni/src/main/java/java/net/AddressCache.java

Change-Id: I32c78e56b5b7ac078e75bacfe7ec176962e777c5
c729e213248a11cce7a186c559cee78afff91837 11-Feb-2011 Jesse Wilson <jessewilson@google.com> Rely on string to do case mapping.

The motivation for this is to remove the only test in our
java-internal directory.

Change-Id: Ieb138f5cb4698cf117ab4fb2d21b800af9756873
ava/util/jar/Attributes.java
ava/util/jar/JarFile.java
rg/apache/harmony/archive/util/Util.java
e0e567287e4392bebc5f5826b8ef3b1bd8ca166e 11-Feb-2011 Elliott Hughes <enh@google.com> Add system properties that report our ICU4C and Unicode versions.

Bug: 3413364
Change-Id: Ibbc4ab3564bc3329275a1a828f86750aa6beb200
ava/lang/System.java
ibcore/icu/ICU.java
97a03227ae4a61ce028a4731cd2144bb59d47ef4 10-Feb-2011 Elliott Hughes <enh@google.com> Merge "Move more of the system properties handling into managed code." into dalvik-dev
7d95dd2ed60350f90fe64c33cbde58e5c2a72c83 10-Feb-2011 Jesse Wilson <jessewilson@google.com> Adopt BasicLruCache in AddressCache.

Change-Id: I08a5e82e123920762ad9a9c87bbe3045f17e33a9
http://b/3184897
ava/net/AddressCache.java
ibcore/util/BasicLruCache.java
24923f9042b142165f7176f1aa44a797145f11a7 10-Feb-2011 Elliott Hughes <enh@google.com> Move more of the system properties handling into managed code.

Bug: 3413364
Change-Id: Ifc9b54255e11fd7df5517b88d8774dd747a7ec3d
ava/lang/System.java
786ca658dfe8596835859ce45ee3b0ed46b8f21c 10-Feb-2011 Jesse Wilson <jessewilson@google.com> Fix URL encoder regression.

My recent cleanup broke URL partial encoding when the source URL
already contained escaped sequences. It was covered by a test that
I didn't run! Sigh.

Also fold in related tests. The URL decoding tests were validating
that URLs were resolving IP addresses; that functionality has since
been removed.

Change-Id: I876db3459f413e3f20ac3fd757749d8fbee3a1eb
http://b/2753295
ibcore/net/UriCodec.java
640e4a73d88b750b63d381ef52b041876df272ae 10-Feb-2011 Elliott Hughes <enh@google.com> Move more system property handling into managed code.

Bug: 3413364
Change-Id: Ia056a8037f6be88f9b146f665fe7180868e1ff69
ava/lang/System.java
6854ec3ede823174ef7a0aecb6e5c221211d18a9 09-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge "Use the same code to encode and fix poorly encoded URLs." into dalvik-dev
32559028b14b9b321b10eede050afd554a376569 09-Feb-2011 Jesse Wilson <jessewilson@google.com> Use the same code to encode and fix poorly encoded URLs.

Don't permit digits outside of ASCII.

Change-Id: I47b756c32e67b7415e35ae9eb55b735d1c22a36d
http://b/3436051
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ibcore/net/UriCodec.java
a1ba5d24537d985b2af05a983181842a2b13eafc 09-Feb-2011 Elliott Hughes <enh@google.com> Make Date.toString a bit faster.

I was actually investigating speeding up SimpleDateFormat, but that became
a bit ugly, so for now let's make my life harder by speeding up its competitor
instead. The nice thing about this change is that I've got rid of the
duplicate en_US weekday and month short names.

We should have some automated way of knowing when we need to revisit these
kinds of optimization. And some way of knowing how many people would benefit
from me optimizing SimpleDateFormat, so I can make an appropriate trade-off
when the optimization doesn't make the code simpler.

Change-Id: Icdeb9cbd775470fa12324e2e13cebce2cfdf3920
ava/text/SimpleDateFormat.java
ava/util/Date.java
56099d23fcb002b164bff8fb7f14d6ec0453509e 09-Feb-2011 Jesse Wilson <jessewilson@google.com> Remove redundant URL encoders and decoders.

http://b/3436051
http://b/2753295

Change-Id: I5836eab395214767efa4a3d8e8002cff72738854
ava/net/URI.java
ava/net/URIEncoderDecoder.java
ava/net/URLClassLoader.java
ava/net/URLDecoder.java
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ibcore/net/UriCodec.java
rg/apache/harmony/luni/internal/net/www/protocol/file/FileURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnectionImpl.java
rg/apache/harmony/luni/util/Util.java
32d2e33dabd6767913e275a62c456f8fe4e5131f 09-Feb-2011 Elliott Hughes <enh@google.com> Simplify Date.toGMTString.

There was a reason for the madness, but Android's SimpleDateFormat implements
'y' like the Unicode standard, not the RI, so we don't need the hack to get
standard behavior manually. Add explicit tests to guard against regression.

Change-Id: Iff3cf09004c76684ce7605ede888463a86d15d92
ava/util/Calendar.java
ava/util/Date.java
73ab73fc55e57f4936ce2f35ced41642630f6c6e 09-Feb-2011 Elliott Hughes <enh@google.com> Slightly improve String.intern and Object.finalize documentation.

Bug: 3144247

Change-Id: Ib6552d5989ab9e13341a1d9e754754d8b22ef655
ava/lang/Object.java
ava/lang/String.java
e26ba79900d471d02d656f686926918ef7dc751f 08-Feb-2011 Elliott Hughes <enh@google.com> Use int.class instead of Integer.TYPE (et cetera) for clarity.

I've also removed some small amount of duplication and a few unused imports.

Change-Id: Ie52477484bade74c80a348ad1261b596f9053cf6
ava/io/EmulatedFields.java
ava/io/EmulatedFieldsForDumping.java
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/ObjectStreamField.java
ava/lang/Boolean.java
ava/lang/Byte.java
ava/lang/Character.java
ava/lang/Double.java
ava/lang/Float.java
ava/lang/Void.java
ava/lang/reflect/Array.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/security/AllPermissionCollection.java
ava/security/BasicPermissionCollection.java
ava/text/DecimalFormatSymbols.java
ava/text/MessageFormat.java
ava/text/NumberFormat.java
ava/text/SimpleDateFormat.java
ava/util/Calendar.java
ava/util/HashMap.java
ava/util/Hashtable.java
ava/util/Locale.java
ava/util/PropertyPermissionCollection.java
ava/util/SimpleTimeZone.java
ava/util/prefs/XMLParser.java
a7ee8ea69e1cdd0fa64c98e532b48b3c118156ea 08-Feb-2011 Elliott Hughes <enh@google.com> Fix serialization of DecimalFormatSymbols.

(This was a regression in gingerbread.)

Bug: 3430006
Change-Id: Ifb0d1fc71303f09bc48557be9157d48f5381e06f
ava/text/DecimalFormatSymbols.java
4fd8ac297725190c6d81e9538b1faf7cfb0f5bb8 08-Feb-2011 Elliott Hughes <enh@google.com> Fix build.

The *ICU classes shouldn't be public.

Change-Id: I1ca75c696c52f75b70d6aef29888a5a48ef7b32a
ava/nio/charset/CharsetDecoderICU.java
ava/nio/charset/CharsetEncoderICU.java
ava/nio/charset/CharsetICU.java
3664d8839f0ba794f428119ee7f7304a66861da5 08-Feb-2011 Elliott Hughes <enh@google.com> Clean up the CharsetDecoder/CharsetEncoder implementation a bit more.

Moving CharsetEncoderICU into java.nio.charset lets us use a cleaner workaround
for the constructor-calling-abstract method API bug.

Change-Id: I2312580b2c27711e9d4c88fe4dc057eec13c12e0
ava/nio/charset/CharsetDecoderICU.java
ava/nio/charset/CharsetEncoder.java
ava/nio/charset/CharsetEncoderICU.java
ava/nio/charset/CharsetICU.java
ibcore/icu/CharsetDecoderICU.java
ibcore/icu/CharsetEncoderICU.java
ibcore/icu/CharsetICU.java
3eea06a04c2ceaf0e1a1a1d351407aec0a78c4e5 08-Feb-2011 Elliott Hughes <enh@google.com> Add missing @hide.

Change-Id: I1f9b51f581a4bc0327d90aa98bda824ecaf1e49c
ava/nio/charset/CharsetEncoder.java
0a95ca9e544a8c6fa49a9972bc173c16fdc612ce 08-Feb-2011 Elliott Hughes <enh@google.com> Merge "Clean up the CharsetDecoder/CharsetEncoder implementation a bit more." into dalvik-dev
37871fb106b08055ad56d7f04d4faccdd163e1af 08-Feb-2011 Elliott Hughes <enh@google.com> Clean up the CharsetDecoder/CharsetEncoder implementation a bit more.

This removes the duplicated error-checking in the ICU classes that started
this investigation, but also cleans up a bunch of other stuff. There shouldn't
be any other behavioral differences, just clearer code.

Bug: 3418769
Change-Id: I4da4d2a5b2fce1b152e527909b7c76a6db76c5c0
ava/nio/charset/CharsetDecoder.java
ava/nio/charset/CharsetEncoder.java
ibcore/icu/CharsetDecoderICU.java
ibcore/icu/CharsetEncoderICU.java
ibcore/icu/NativeConverter.java
26ce8fbd8fe488cc969b08f64c56525662763dc4 08-Feb-2011 Jesse Wilson <jessewilson@google.com> resolved conflicts for merge of 6186821c to dalvik-dev

Change-Id: Ic6f0172767d6feedb188d3a5e7488a67702ef8c4
b0dd42c2b44ef61f116a7eea0e13237f55e07c9f 08-Feb-2011 Jesse Wilson <jessewilson@google.com> am e5720bcc: Avoid name collision in libcore.base vs android.util.LruCache.

* commit 'e5720bcc0ac6587d152f2e8525eb2fc35c46bb0c':
Avoid name collision in libcore.base vs android.util.LruCache.
6186821cb13f4ac7ff50950c813394367e021eae 08-Feb-2011 Jesse Wilson <jessewilson@google.com> Move libcore.base classes to libcore.util and libcore.io.

Change-Id: I2340a9dbad3561fa681a8ab47d4f406e72c913e3
ava/beans/PropertyChangeSupport.java
ava/io/DataInputStream.java
ava/io/FilePermission.java
ava/io/InputStream.java
ava/io/LineNumberInputStream.java
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/RandomAccessFile.java
ava/lang/AbstractStringBuilder.java
ava/lang/ClassMembers.java
ava/lang/String.java
ava/lang/ThreadGroup.java
ava/lang/Void.java
ava/lang/reflect/Constructor.java
ava/lang/reflect/Method.java
ava/net/HttpCookie.java
ava/net/Inet6Address.java
ava/net/NetworkInterface.java
ava/net/URLStreamHandler.java
ava/nio/DatagramChannelImpl.java
ava/nio/SelectorImpl.java
ava/security/Identity.java
ava/security/cert/X509CertSelector.java
ava/text/ChoiceFormat.java
ava/text/MessageFormat.java
ava/util/ArrayList.java
ava/util/HashMap.java
ava/util/TreeMap.java
ava/util/concurrent/CopyOnWriteArrayList.java
ava/util/concurrent/SynchronousQueue.java
ava/util/jar/JarFile.java
ava/util/jar/Manifest.java
ava/util/logging/Level.java
ava/util/prefs/AbstractPreferences.java
ava/util/prefs/XMLParser.java
ava/util/zip/CheckedInputStream.java
ava/util/zip/Deflater.java
ava/util/zip/DeflaterInputStream.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/ZipEntry.java
ava/util/zip/ZipInputStream.java
avax/crypto/CipherInputStream.java
avax/crypto/spec/PBEKeySpec.java
avax/crypto/spec/PSource.java
avax/net/ssl/DefaultSSLServerSocketFactory.java
avax/net/ssl/DefaultSSLSocketFactory.java
ibcore/base/BasicLruCache.java
ibcore/base/CollectionUtils.java
ibcore/base/EmptyArray.java
ibcore/base/Objects.java
ibcore/base/Streams.java
ibcore/io/Streams.java
ibcore/util/BasicLruCache.java
ibcore/util/CollectionUtils.java
ibcore/util/EmptyArray.java
ibcore/util/Objects.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/util/Base64.java
rg/apache/harmony/security/asn1/DerOutputStream.java
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
rg/apache/harmony/xml/dom/ElementImpl.java
rg/apache/harmony/xml/dom/InnerNodeImpl.java
rg/apache/harmony/xnet/provider/jsse/ClientHello.java
rg/apache/harmony/xnet/provider/jsse/ClientKeyExchange.java
rg/apache/harmony/xnet/provider/jsse/DigitalSignature.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/Logger.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerFactoryImpl.java
rg/xml/sax/ext/Attributes2Impl.java
e5720bcc0ac6587d152f2e8525eb2fc35c46bb0c 07-Feb-2011 Jesse Wilson <jessewilson@google.com> Avoid name collision in libcore.base vs android.util.LruCache.

The libcore LRU cache is only for our internal use and can be
minimal; the android.util LRU is public API.

Change-Id: Icff4b20627fe93bf82e940d6d9a43b711c34349f
http://b/3184897
ava/lang/ClassMembers.java
ibcore/base/BasicLruCache.java
ibcore/base/LruCache.java
b4c0d265e13c0eff12ce7c61ff5cb848e89e3bc4 07-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge "Avoid file locks in java.util.prefs." into dalvik-dev
dd220429d44e23aa397694c9c8d64d4ba16437c4 07-Feb-2011 Jesse Wilson <jessewilson@google.com> Avoid file locks in java.util.prefs.

File locks were causing tests to hang when run in parallel. I've filed a
separate bug to investigate that. http://b/3430640

Change-Id: I44c46957c0ffb624acdb3fd8ba156e02cbc7798b
ava/util/prefs/FilePreferencesImpl.java
ava/util/prefs/XMLParser.java
28eb98ecd43c27702e85b0561e040e2da10320a6 05-Feb-2011 Elliott Hughes <enh@google.com> Fix serialization of DecimalFormatSymbols.

Missing 'final' on the serialPersistentFields declaration meant we were
falling back to reflection, and 'exponential' isn't actually a field.

I've checked all the other serialPersistentFields fields, and put them
in a canonical form. There were no other errors.

I'll do two other related changes: I'll replace confusing use of Character.TYPE
with char.class (and so forth), and I'll backport the active ingredient from
this change so it's fixed in honeycomb-mr1.

Bug: http://code.google.com/p/android/issues/detail?id=14495
Change-Id: I954da649ad597450bee54957dc0e3d3aa9d151dd
ava/beans/PropertyChangeSupport.java
ava/io/EmulatedFields.java
ava/lang/StringBuffer.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/security/AllPermissionCollection.java
ava/security/BasicPermissionCollection.java
ava/security/Permissions.java
ava/security/UnresolvedPermissionCollection.java
ava/security/cert/CertPath.java
ava/text/DecimalFormat.java
ava/text/DecimalFormatSymbols.java
ava/text/MessageFormat.java
ava/text/NumberFormat.java
ava/text/SimpleDateFormat.java
ava/util/Calendar.java
ava/util/HashMap.java
ava/util/Hashtable.java
ava/util/Locale.java
ava/util/PropertyPermission.java
ava/util/PropertyPermissionCollection.java
ava/util/SimpleTimeZone.java
d304af23ed896199b84ea7a1481e3f6042b6e243 04-Feb-2011 Elliott Hughes <enh@google.com> Merge "Improve CharsetDecoder's quality of implementation, like CharsetEncoder." into dalvik-dev
f938abcc05c2de327e46b0e27e6b4896cc0cd845 04-Feb-2011 Jesse Wilson <jessewilson@google.com> am adf31bd1: Merge "Permit cache elements to have non-symmetric sizes."

* commit 'adf31bd1326e32ba299fddc531672a4dd6c73448':
Permit cache elements to have non-symmetric sizes.
adf31bd1326e32ba299fddc531672a4dd6c73448 04-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge "Permit cache elements to have non-symmetric sizes."
b3f2b1082275ed9f95153a077a45bafde6c2a55c 03-Feb-2011 Jesse Wilson <jessewilson@google.com> Permit cache elements to have non-symmetric sizes.

Change-Id: I2545ffb00130baab5b03b39bad972e08dbeb04b5
http://b/3184897
ava/util/LinkedHashMap.java
ibcore/base/LruCache.java
2981b5e8cf7c19dfd85b2088b18b7a6146825317 03-Feb-2011 Elliott Hughes <enh@google.com> Improve CharsetDecoder's quality of implementation, like CharsetEncoder.

As I suspected, CharsetDecoder doesn't cope with a character's bytes being
split across multiple writes any more than CharsetEncoder could cope with
halves of a surrogate pair being split across multiple writes. This seems
much more likely to have harmed applications than CharsetEncoder (since
surrogates are rare).

Anyway, ICU does the right thing here too, so the fix is basically the same.

I've also gone through the decoder/encoder code a bit to bring them more
in line with each other.

Bug: 3410124
Change-Id: I151d043e474161e324361cddfc73188ba73fd59c
ibcore/icu/CharsetDecoderICU.java
ibcore/icu/CharsetEncoderICU.java
8c20515fc3a6152a4e5bdee57f2d136f82e5f625 02-Feb-2011 Elliott Hughes <enh@google.com> Merge "Bring CharsetDecoderICU more in line with CharsetEncoderICU." into dalvik-dev
dbf863488607fbb16a3d28c09f772d9581bd64ad 02-Feb-2011 Elliott Hughes <enh@google.com> Bring CharsetDecoderICU more in line with CharsetEncoderICU.

There's no need for separate 'flush' native code here either.

I've also explicitly set inEnd to 0 in CharsetEncoderICU which was
an oversight before; I've added a failing test. (Existing
tests for CharsetDecoder failed without the corresponding line.)

I've also made a comment in InputStreamReader match the equivalent comment
in OutputStreamWriter.

I'll make more invasive changes (looking at the INPUT_HELD stuff) when I've
written some tests for CharsetDecoder.

Change-Id: I39a3b2c017da1f991bdff33ebc8c226fc56841ba
ava/io/InputStreamReader.java
ibcore/icu/CharsetDecoderICU.java
ibcore/icu/CharsetEncoderICU.java
ibcore/icu/NativeConverter.java
efb32502d686b06ddf60828d9abe3d4e0577e5dc 02-Feb-2011 Brian Carlstrom <bdc@google.com> am 4155a249: Performance improvements to NativeCrypto based MessageDigest API

* commit '4155a2498a57fb09e92815f8993a70c216ddc5ec':
Performance improvements to NativeCrypto based MessageDigest API
3573f192053b7343d186b559ec0e51278bfb4970 02-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge "Don't parse or format IP addresses in cert code." into dalvik-dev
6ed93fa8be996378e766d3fd2586b51c6fe656b1 02-Feb-2011 Jesse Wilson <jessewilson@google.com> Don't parse or format IP addresses in cert code.

We used to include a full IP address parser and formatter. The
formatter handled one interesting case: a 2x length byte[]
containing both an IP route and mask. Although our code supported
parsing and formatting these, they do not occur in practice. The
Java APIs don't support NameConstraints, which is the only part of
the spec that uses them.

Change-Id: I7a4b22b40a37d6f26ec09fc5188ec1ba43e4d249
http://b/3385492
rg/apache/harmony/security/x509/GeneralName.java
4155a2498a57fb09e92815f8993a70c216ddc5ec 02-Feb-2011 Brian Carlstrom <bdc@google.com> Performance improvements to NativeCrypto based MessageDigest API

NativeCrypto API improvements:
- Move to using EVP_MD related native methods, some of which are derived
from the EVP_MD_CTX versions with similar name. The new
EVP_get_digestbyname allows one time lookup of the EVP_MD from the
string name, avoiding doing it on every call to EVP_DigestInit.
- EVP_MD_CTX_create is now removed, it is just done as part of
EVP_DigestInit and EVP_VerifyInit to an extra JNI call.
- EVP_DigestFinal now destroys the EVP_MD_CTX to avoid needing to make
another call JNI call to EVP_MD_CTX_destroy. EVP_MD_CTX_destroy is
kept for cases when EVP_DigestFinal is never called.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java

In addition to the improved NativeCrypto API to allow better
performance for callers, the implementations use of
throwExceptionIfNecessary was made conditional based on the status
code from various operations, which had a noticeable impact on
performance compared to android.security.MessageDigest

luni/src/main/native/NativeCrypto.cpp

Updated MessageDigest.getInstance default implementation to use new
NativeCrypto API. An EVP_MD instance is looked up at class load time
for a specific digest type and then used to call
NativeCrypto.EVP_DigestInit as needed, avoiding a lookup of EVP_MD for
each new digest. The EVP_MD is also for a one-time lookup the digest
output size in bytes, to avoid native calls for
engineGetDigestLength. Finally, the creation of the EVP_MD_CTX is now
lazy, only created when needed, avoiding unnecessarily create/free in
reset cases such as engineDigest. See also external/bouncycastle's
OpenSSLDigest implementation which had similar optimizations.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java

OpenSSLSignature also used EVP_MD_CTX_create, and its EVP_VerifyInit
was changed similar to EVP_DigestInit to internally allocate the
EVP_MD_CTX on the call to init.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java

Fix test to work with arbitrary provider order

luni/src/test/java/org/apache/harmony/security/tests/java/security/MessageDigest2Test.java

Fix CloseGuard warnings

luni/src/test/java/tests/security/MessageDigestTest.java

Bug: 3392028
Change-Id: Idb266ebc0918ffd5550e0f457784256400cd2ff0
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
aee004a114565d7b1f3464507ec26829b8230d98 01-Feb-2011 Elliott Hughes <enh@google.com> Merge "Improve CharsetEncoder to handle surrogates gracefully." into dalvik-dev
33604713c5c70f9e6cad61dee6eb628db666bb22 01-Feb-2011 Elliott Hughes <enh@google.com> Improve CharsetEncoder to handle surrogates gracefully.

Behave like ICU rather than the RI, and transparently handle surrogate pairs
split across buffers. This fixes callers who were unaware of the bad design,
and shouldn't harm those callers who try to work around it (since they'll
never find themselves in the bad state).

Bug: 3408061
Change-Id: I6b5675196a14b15efdaa7084a82a483d8d2c47ad
ava/io/OutputStreamWriter.java
ibcore/icu/CharsetEncoderICU.java
ibcore/icu/NativeConverter.java
705349bd8b0d649b28a587c9ecb18d39012fa4e2 01-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge "Don't do DNS lookups in URL.equals()" into dalvik-dev
7e00db4156e50ce5f20fefb820dca339299134d3 30-Jan-2011 Jesse Wilson <jessewilson@google.com> Don't do DNS lookups in URL.equals()

Change-Id: Iea9becdb3a16eab054f9073719c77c2215ce0208
http://b/3045867
ava/net/URL.java
ava/net/URLStreamHandler.java
5becaf833af1919e30938252a7cde582ad9d64e5 31-Jan-2011 Elliott Hughes <enh@google.com> Merge "Tidying of OutputStreamWriter and a couple of related tests." into dalvik-dev
555453327f26f4c9c610caa2851c87c3794c7764 31-Jan-2011 Elliott Hughes <enh@google.com> Tidying of OutputStreamWriter and a couple of related tests.

Change-Id: I591f573cd1e57f7bce8f47db29c8838896fa8b0b
ava/io/OutputStreamWriter.java
c0779d54195b5b81be9c29e1b46a18022758ef27 31-Jan-2011 Brian Carlstrom <bdc@google.com> am c906eaf2: am 7374d4fa: am 90ff8e2c: Remember intermediate CAs in TrustMangerImpl\'s IndexedPKIXParameters

* commit 'c906eaf2617d6c8f9eb7a3578386845da390956c':
Remember intermediate CAs in TrustMangerImpl's IndexedPKIXParameters
a3c20957501930e222d2e1c4dec1c9099cc88f07 31-Jan-2011 Elliott Hughes <enh@google.com> Merge "Fix OutputStreamWriter's handling of surrogates." into dalvik-dev
c906eaf2617d6c8f9eb7a3578386845da390956c 31-Jan-2011 Brian Carlstrom <bdc@google.com> am 7374d4fa: am 90ff8e2c: Remember intermediate CAs in TrustMangerImpl\'s IndexedPKIXParameters

* commit '7374d4fa11bad613cb64938c2f189d7907d5b6f8':
Remember intermediate CAs in TrustMangerImpl's IndexedPKIXParameters
3bdd9bb460941429ab11dfa13596768f3dc246ad 31-Jan-2011 Elliott Hughes <enh@google.com> Fix OutputStreamWriter's handling of surrogates.

CharsetEncoder doesn't behave how you'd expect. It doesn't track surrogate
pairs across calls to encode. This is true of the RI, too, not just our
ICU-based implementation. (I've included new CharsetEncoder tests to
demonstrate this. They don't all pass on Android, because we don't behave
exactly the same, but we're the same as far as is relevant for this
OutputStreamWriter bug.)

I've added new OutputStreamWriter tests too, that test the actual behavior
beyond the trivial "do we throw IllegalStateException?" tests harmony
had. Their fix for this bug didn't fix the real problem, but this patch
fixes both of the failures I found.

I think there's probably another one (marked with a TODO), but I haven't
been able to write a test to provoke it yet, and I'm unwilling to add code
I can't test.

I've also changed the behavior of OutputStreamWriter.write so that we don't
flush the underlying stream. This was a bug: only OutputStreamWriter.flush
should flush the underlying stream (as opposed to "flush" in the sense of
writing bytes from OutputStreamWriter's buffer into the underlying stream).
I've confirmed the truth of this assertion with another test.

Bug: 3403615
Change-Id: I567d49403b5498f4fb0a70fa3bfde0bd02ef430e
ava/io/InputStreamReader.java
ava/io/OutputStreamWriter.java
90ff8e2c017c4332686ff79ea9968a009a703b7e 30-Jan-2011 Brian Carlstrom <bdc@google.com> Remember intermediate CAs in TrustMangerImpl's IndexedPKIXParameters

Bug: 3404902
Change-Id: I4a3c35fd2981933c255e5d3a620675b9575083d4
rg/apache/harmony/xnet/provider/jsse/IndexedPKIXParameters.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
9a4a53771e642f1f323bfa5e6d9f5aa07cdd0852 30-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge commit 'e2b2e81f' into manualmerge

Conflicts:
luni/src/main/java/java/lang/Class.java
luni/src/main/java/java/lang/Enum.java

Change-Id: I191a233776965d4eb6c8c8ec67ec3596f8ddd57f
de591ee02f7615c7e5faa6c933dc08ac65055b61 28-Jan-2011 Jesse Wilson <jessewilson@google.com> Use an LRU to cache reflection objects in Class.

Change-Id: I275f5cf25c8ecc9f16555df56715ea75bc802574
http://b/3184897
ava/lang/Class.java
ava/lang/ClassCache.java
ava/lang/ClassMembers.java
ava/lang/Enum.java
ava/lang/LangAccessImpl.java
ibcore/base/LruCache.java
b82e44da4ffb20b56cafa67c0d443fa9a9b8ddda 29-Jan-2011 Elliott Hughes <enh@google.com> Remove a useless layer of indirection.

Bug: 3400687

Change-Id: Ib7e9c576f5a5d4af35759e1bb939a3ff8ddcc812
ava/lang/ThreadGroup.java
51f8b1fc1d0b045710b807b6e22f1bf61b9c3238 29-Jan-2011 Elliott Hughes <enh@google.com> Merge "Fix NoArrayTest, and fix ReadOnlyDirectByteBuffer too." into dalvik-dev
bc01e68730f04cb8dbbf7f3b7da82006c2151ebf 29-Jan-2011 Elliott Hughes <enh@google.com> Fix NoArrayTest, and fix ReadOnlyDirectByteBuffer too.

This test was bogus, but fixing the test pointed out an actual bug in my
recent DirectByteBuffer change --- our DirectByteBuffers might be backed
by arrays, but that doesn't mean that a ReadOnlyDirectByteBuffer should
expose it (because it could then be modified).

Bug: 3403619
Change-Id: Ide91d42e072b5befc819e78a29dbccd0f2db9a61
ava/nio/DirectByteBuffer.java
ava/nio/ReadOnlyDirectByteBuffer.java
937b6c4ef5f8ad57279e2ebed4393a78d1729d8b 28-Jan-2011 Brian Carlstrom <bdc@google.com> Tolerate leading slash in Cipher transformation

Bug: 3387688
Change-Id: Icd551df2cafd256e49fb92d12d7cb381479d841d
avax/crypto/Cipher.java
79353908d770eb03a7ea683da4ce683810966d58 27-Jan-2011 Elliott Hughes <enh@google.com> Fix an unclosed tag in javadoc.

Change-Id: I95b25c04c129326d2e3d64a627b39b9071243aa2
ava/util/Random.java
750d24b13461035a89c9af8ec7555588da1cc3d0 27-Jan-2011 Elliott Hughes <enh@google.com> Better tests for Float.parseFloat/Double.parseDouble, plus some fixes.

I'm not happy with the magic 1024s, and I had hoped to have one hack to
cover both harmony bugs. But this passes all our existing tests, all
harmony's existing tests, and the new tests I wrote while looking at
the code. (The new tests all pass on the RI too.)

I've also made a few doc comments slightly less unclear.

Change-Id: Ib72fd20bb3b157c7db5a09913247eed3cc746a2e
ava/lang/Double.java
ava/lang/Float.java
ava/lang/Math.java
rg/apache/harmony/luni/util/FloatingPointParser.java
aac3bb7b1d831147ffae3b1dad886d2c1e75ebb8 05-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> Fix @see links

(Cherry-pick from gingerbread.)

Change-Id: I94b7e6d51c2fcce39dd1d3fe70f13a0f84de571a
ava/lang/Class.java
286b8cfd4479c464ae44099027d7f8d0f986f315 06-Jan-2011 Elliott Hughes <enh@google.com> Fix libcore javadoc errors.

Random's javadoc was pretty random, and Pattern was missing some escaping
in code samples.

Also work round droiddoc bugs that were messing up Formatter and classes
that inherited documentation from Object.

Bug: http://code.google.com/p/android/issues/detail?id=13264
Bug: 3318601

(Cherry-pick from gingerbread.)

Change-Id: I452414aedc04c29127dd0dc3c41e6386bbff1766
ava/lang/Object.java
ava/util/Formatter.java
ava/util/Random.java
ava/util/regex/Pattern.java
8899157a607a6bfd4ca4f361c77db8726885e47b 26-Jan-2011 Elliott Hughes <enh@google.com> Minor float/double parsing improvements.

This removes some duplication and fixes an actual bug: we'd accept strings
like ".NaN" or "Infinity." because the length check was done incorrectly.

Also add explicit unit tests for some Double.toString duplicate bug reports,
since that ought to be SOP.

(I'm here to fix an unrelated bug, but want to keep this cleanup separate.)

Change-Id: I197613afe52fae8da7a1598bb6b43514dcc03b98
rg/apache/harmony/luni/util/FloatingPointParser.java
30a7ff69872ad0b8de60550a740818b645ba0f29 26-Jan-2011 Elliott Hughes <enh@google.com> Apply harmony's fix for HARMONY-6594.

Fixes a harmony test.

Bug: https://issues.apache.org/jira/browse/HARMONY-6594
Change-Id: If53c5274400fa7b57a6f4a119e4158bb39ac7681
ava/nio/charset/CharsetEncoder.java
38f919c84cc2714ae2564ea1a04e2ced9c5aad04 26-Jan-2011 Elliott Hughes <enh@google.com> Our DirectByteBuffer can implement array(), arrayOffset(), and hasArray().

An interesting side-effect of moving direct buffers onto the Java heap.
Sufficiently sophisticated code can now have the best of both worlds.

Bug: 3384431
Change-Id: I741fc457277704016bc773cc2aec22e89045f839
ava/nio/DirectByteBuffer.java
ava/nio/MemoryBlock.java
d2ce8c208cabfa40e14372a9205310c2aec267c9 25-Jan-2011 Elliott Hughes <enh@google.com> Merge "Fix new File("").length to behave like the RI." into dalvik-dev
bb9a632ee90c07035a5f02dae64d430f38810cf8 25-Jan-2011 Elliott Hughes <enh@google.com> Fix new File("").length to behave like the RI.

Ugh.

Bug: 3387758
Change-Id: Ie06d0c82e12f065b1d2ea256f8fe14eac373cfa9
ava/io/File.java
6a87a1be5421c7dffc5fce2f898ef3515f21f0f6 25-Jan-2011 Brian Carlstrom <bdc@google.com> am fedab477: am 7be1bb6d: am 0ac85ead: Tracking jarjar of org.bouncycastle to com.android.org.bouncycastle

* commit 'fedab4777ec28cfb36274660b57c3753acb1df18':
Tracking jarjar of org.bouncycastle to com.android.org.bouncycastle
fedab4777ec28cfb36274660b57c3753acb1df18 25-Jan-2011 Brian Carlstrom <bdc@google.com> am 7be1bb6d: am 0ac85ead: Tracking jarjar of org.bouncycastle to com.android.org.bouncycastle

* commit '7be1bb6d2e1bc5408d0109b297125e5522680ac3':
Tracking jarjar of org.bouncycastle to com.android.org.bouncycastle
7be1bb6d2e1bc5408d0109b297125e5522680ac3 25-Jan-2011 Brian Carlstrom <bdc@google.com> am 0ac85ead: Tracking jarjar of org.bouncycastle to com.android.org.bouncycastle

* commit '0ac85ead96f1ba7d35f3acadd154de4ef0a8fd87':
Tracking jarjar of org.bouncycastle to com.android.org.bouncycastle
e0a7d145d06d6738ea7bb29c5f48c8ce8389b528 25-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge "Rollback an inadvertent API change to X509CertSelector." into dalvik-dev
4885c704f5dba084fc8abc80be390025810aa9ca 25-Jan-2011 Brian Carlstrom <bdc@google.com> am e7291d0d: am c009a7d9: am 1c64b3ad: SSLSocket.close() should not throw an IOException if there is a problem sending a close notify

* commit 'e7291d0d02c84ff650cd50297a348f61fe4978b6':
SSLSocket.close() should not throw an IOException if there is a problem sending a close notify
d6b1cd54dabecde055971863fb49a202119d1445 25-Jan-2011 Brian Carlstrom <bdc@google.com> am c9b49a59: am 4ed57b34: am 79dd7240: Merge "Cipher.init incorrectly implements RFC 3280 key usage validation" into honeycomb

* commit 'c9b49a596250a4c21871afcf623e59bd4049e175':
Cipher.init incorrectly implements RFC 3280 key usage validation
595db69d9b219f3d2d4598b5cb57c116cd157918 25-Jan-2011 Jesse Wilson <jessewilson@google.com> Rollback an inadvertent API change to X509CertSelector.

Change-Id: I4ae0a881502c8240b952ca4bf574997b1a610b95
ava/security/cert/X509CertSelector.java
5e8b7db626a67fa45434edd228bbf7ff247aee3f 25-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge "Use generics in Harmony's ASN.1, X.501 and X.509." into dalvik-dev
5c27fb80ffd335aa45dc8829ba3ecbc18c01e4e8 25-Jan-2011 Jesse Wilson <jessewilson@google.com> Use generics in Harmony's ASN.1, X.501 and X.509.

This change cleans up this code and uses modern Java idioms. It should not
change the behavior.

Change-Id: Ie869ced7c9e18634409ae194aa9a2c2a5e5ca530
ava/security/cert/X509CertSelector.java
rg/apache/harmony/security/asn1/ASN1Any.java
rg/apache/harmony/security/asn1/ASN1BitString.java
rg/apache/harmony/security/asn1/ASN1Boolean.java
rg/apache/harmony/security/asn1/ASN1Choice.java
rg/apache/harmony/security/asn1/ASN1Constructed.java
rg/apache/harmony/security/asn1/ASN1Constructured.java
rg/apache/harmony/security/asn1/ASN1Enumerated.java
rg/apache/harmony/security/asn1/ASN1Exception.java
rg/apache/harmony/security/asn1/ASN1Explicit.java
rg/apache/harmony/security/asn1/ASN1GeneralizedTime.java
rg/apache/harmony/security/asn1/ASN1Implicit.java
rg/apache/harmony/security/asn1/ASN1Integer.java
rg/apache/harmony/security/asn1/ASN1OctetString.java
rg/apache/harmony/security/asn1/ASN1Oid.java
rg/apache/harmony/security/asn1/ASN1OpenType.java
rg/apache/harmony/security/asn1/ASN1Primitive.java
rg/apache/harmony/security/asn1/ASN1Sequence.java
rg/apache/harmony/security/asn1/ASN1SequenceOf.java
rg/apache/harmony/security/asn1/ASN1Set.java
rg/apache/harmony/security/asn1/ASN1SetOf.java
rg/apache/harmony/security/asn1/ASN1StringType.java
rg/apache/harmony/security/asn1/ASN1Time.java
rg/apache/harmony/security/asn1/ASN1Type.java
rg/apache/harmony/security/asn1/ASN1TypeCollection.java
rg/apache/harmony/security/asn1/ASN1UTCTime.java
rg/apache/harmony/security/asn1/ASN1ValueCollection.java
rg/apache/harmony/security/asn1/BerInputStream.java
rg/apache/harmony/security/asn1/BerOutputStream.java
rg/apache/harmony/security/asn1/BitString.java
rg/apache/harmony/security/asn1/DerInputStream.java
rg/apache/harmony/security/asn1/DerOutputStream.java
rg/apache/harmony/security/asn1/InformationObjectSet.java
rg/apache/harmony/security/asn1/ObjectIdentifier.java
rg/apache/harmony/security/pkcs10/CertificationRequest.java
rg/apache/harmony/security/pkcs10/CertificationRequestInfo.java
rg/apache/harmony/security/pkcs7/AuthenticatedAttributes.java
rg/apache/harmony/security/pkcs7/ContentInfo.java
rg/apache/harmony/security/pkcs7/SignedData.java
rg/apache/harmony/security/pkcs7/SignerInfo.java
rg/apache/harmony/security/pkcs8/PrivateKeyInfo.java
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/security/provider/cert/X509CertImpl.java
rg/apache/harmony/security/provider/cert/X509CertPathImpl.java
rg/apache/harmony/security/utils/JarUtils.java
rg/apache/harmony/security/x501/AttributeType.java
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/apache/harmony/security/x501/AttributeValue.java
rg/apache/harmony/security/x501/Attributes.java
rg/apache/harmony/security/x501/DirectoryString.java
rg/apache/harmony/security/x501/Name.java
rg/apache/harmony/security/x509/AccessDescription.java
rg/apache/harmony/security/x509/AlgorithmIdentifier.java
rg/apache/harmony/security/x509/AlternativeName.java
rg/apache/harmony/security/x509/AuthorityKeyIdentifier.java
rg/apache/harmony/security/x509/BasicConstraints.java
rg/apache/harmony/security/x509/CRLDistributionPoints.java
rg/apache/harmony/security/x509/CRLNumber.java
rg/apache/harmony/security/x509/Certificate.java
rg/apache/harmony/security/x509/CertificateIssuer.java
rg/apache/harmony/security/x509/CertificateList.java
rg/apache/harmony/security/x509/CertificatePolicies.java
rg/apache/harmony/security/x509/DNParser.java
rg/apache/harmony/security/x509/DistributionPoint.java
rg/apache/harmony/security/x509/DistributionPointName.java
rg/apache/harmony/security/x509/EDIPartyName.java
rg/apache/harmony/security/x509/ExtendedKeyUsage.java
rg/apache/harmony/security/x509/Extension.java
rg/apache/harmony/security/x509/ExtensionValue.java
rg/apache/harmony/security/x509/Extensions.java
rg/apache/harmony/security/x509/GeneralName.java
rg/apache/harmony/security/x509/GeneralNames.java
rg/apache/harmony/security/x509/GeneralSubtree.java
rg/apache/harmony/security/x509/GeneralSubtrees.java
rg/apache/harmony/security/x509/InfoAccessSyntax.java
rg/apache/harmony/security/x509/InhibitAnyPolicy.java
rg/apache/harmony/security/x509/InvalidityDate.java
rg/apache/harmony/security/x509/IssuingDistributionPoint.java
rg/apache/harmony/security/x509/KeyUsage.java
rg/apache/harmony/security/x509/NameConstraints.java
rg/apache/harmony/security/x509/ORAddress.java
rg/apache/harmony/security/x509/OtherName.java
rg/apache/harmony/security/x509/PolicyConstraints.java
rg/apache/harmony/security/x509/PolicyInformation.java
rg/apache/harmony/security/x509/PolicyQualifierInfo.java
rg/apache/harmony/security/x509/PrivateKeyUsagePeriod.java
rg/apache/harmony/security/x509/ReasonCode.java
rg/apache/harmony/security/x509/ReasonFlags.java
rg/apache/harmony/security/x509/SubjectKeyIdentifier.java
rg/apache/harmony/security/x509/SubjectPublicKeyInfo.java
rg/apache/harmony/security/x509/TBSCertList.java
rg/apache/harmony/security/x509/TBSCertificate.java
rg/apache/harmony/security/x509/Time.java
rg/apache/harmony/security/x509/Utils.java
rg/apache/harmony/security/x509/Validity.java
rg/apache/harmony/security/x509/X509PublicKey.java
be57694064c2271ffceb96d13875e34019e73348 25-Jan-2011 Owen Lin <owenlin@google.com> resolved conflicts for merge of 21b8960a to dalvik-dev

Change-Id: Ide01710e59fc6028f4b2443afee85204815dc775
51cb5459b4515f6c0c164a26c6244d8305bd89bb 25-Jan-2011 Elliott Hughes <enh@google.com> Fix case-insensitive comparisons for dotted 'I'/dotless 'i'.

Java uses its own case-folding scheme, distinct from any of the regular ones.

Bug: 3325799
Change-Id: Id574d82a5a2e37533dbdb6d1d42d1821c56956b2
ava/lang/String.java
0ac85ead96f1ba7d35f3acadd154de4ef0a8fd87 25-Jan-2011 Brian Carlstrom <bdc@google.com> Tracking jarjar of org.bouncycastle to com.android.org.bouncycastle

Bug: 3086427
Change-Id: I026f80bfa5e963a8e988ecd6f91c9732a4afc70c
ava/security/security.properties
e7291d0d02c84ff650cd50297a348f61fe4978b6 25-Jan-2011 Brian Carlstrom <bdc@google.com> am c009a7d9: am 1c64b3ad: SSLSocket.close() should not throw an IOException if there is a problem sending a close notify

* commit 'c009a7d975c70e31f0a5e9eb7b404195823d93a4':
SSLSocket.close() should not throw an IOException if there is a problem sending a close notify
c009a7d975c70e31f0a5e9eb7b404195823d93a4 25-Jan-2011 Brian Carlstrom <bdc@google.com> am 1c64b3ad: SSLSocket.close() should not throw an IOException if there is a problem sending a close notify

* commit '1c64b3adb85345659ac60ad82216268acba18764':
SSLSocket.close() should not throw an IOException if there is a problem sending a close notify
1c64b3adb85345659ac60ad82216268acba18764 24-Jan-2011 Brian Carlstrom <bdc@google.com> SSLSocket.close() should not throw an IOException if there is a problem sending a close notify

Bug: 3350645
Change-Id: I23844fc94a26175247538c95d8cddec90f368d64
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
c9b49a596250a4c21871afcf623e59bd4049e175 24-Jan-2011 Brian Carlstrom <bdc@google.com> am 4ed57b34: am 79dd7240: Merge "Cipher.init incorrectly implements RFC 3280 key usage validation" into honeycomb

* commit '4ed57b346fd863a66c288c6869ed613f5d9a716c':
Cipher.init incorrectly implements RFC 3280 key usage validation
21b8960a3603018081ec3309cc54aa8d27164454 24-Jan-2011 Owen Lin <owenlin@google.com> am ae5bfd1b: am eb05c75f: Merge "Skip bytes by reading if the file is not seekable." into honeycomb

* commit 'ae5bfd1b0d665233a1e6e2b7da7d4cf872a91d8d':
Skip bytes by reading if the file is not seekable.
4ed57b346fd863a66c288c6869ed613f5d9a716c 24-Jan-2011 Brian Carlstrom <bdc@google.com> am 79dd7240: Merge "Cipher.init incorrectly implements RFC 3280 key usage validation" into honeycomb

* commit '79dd72407249be8237891b1585fd65e1c3e64b61':
Cipher.init incorrectly implements RFC 3280 key usage validation
ae5bfd1b0d665233a1e6e2b7da7d4cf872a91d8d 24-Jan-2011 Owen Lin <owenlin@google.com> am eb05c75f: Merge "Skip bytes by reading if the file is not seekable." into honeycomb

* commit 'eb05c75f33355d9549834d843911ba836d051d52':
Skip bytes by reading if the file is not seekable.
79dd72407249be8237891b1585fd65e1c3e64b61 24-Jan-2011 Brian Carlstrom <bdc@google.com> Merge "Cipher.init incorrectly implements RFC 3280 key usage validation" into honeycomb
eb05c75f33355d9549834d843911ba836d051d52 24-Jan-2011 Owen Lin <owenlin@google.com> Merge "Skip bytes by reading if the file is not seekable." into honeycomb
0d5c7588179fb373da70ce04362be5ce74a98eb4 24-Jan-2011 Brian Carlstrom <bdc@google.com> Cipher.init incorrectly implements RFC 3280 key usage validation

Issue: http://code.google.com/p/android/issues/detail?id=12955
Bug: 3381582
Change-Id: Ida63c1356634c8e287ce5b0234418a656dffedf0
avax/crypto/Cipher.java
f3e1f4a54f80b5c0d69089a6832bc3c66ca32d9b 21-Jan-2011 Elliott Hughes <enh@google.com> Merge "Just give the time zone id in Calendar.toString." into dalvik-dev
08eee0f04268acee9d7f1cb8635a2c6ccd3bac51 21-Jan-2011 Jesse Wilson <jessewilson@google.com> am 980c8fb5: resolved conflicts for merge of e1c91159 to master

* commit '980c8fb5294de36c96713500703e5aee0120ade5':
Handle the CacheResponse returning a null body.
980c8fb5294de36c96713500703e5aee0120ade5 21-Jan-2011 Jesse Wilson <jessewilson@google.com> resolved conflicts for merge of e1c91159 to master

Change-Id: I7f6968670040b1dabfa9220baaae64abb9fcf40b
e4a533f2e6b22bd6183285c96d7907a97389240b 21-Jan-2011 Elliott Hughes <enh@google.com> Just give the time zone id in Calendar.toString.

Anyone who wants to know all about the TimeZone can get it and toString it
independently.

Bug: 3329355
Change-Id: Id5dfd5f6030437b8a2608e77798e2e6da2fd53f8
ava/util/Calendar.java
0de447809731c0b76654416d17bb0d8744dcf742 21-Jan-2011 Elliott Hughes <enh@google.com> Merge "Add an @hidden Byte.toHexString that does the right thing, and use it." into dalvik-dev
4b25199bc0b7a64a6feaa60e7d5d6b0474341234 21-Jan-2011 Elliott Hughes <enh@google.com> Add an @hidden Byte.toHexString that does the right thing, and use it.

Turns out most callers don't actually give a toss about case anyway, since
they're just for debugging output.

Bug: 3371169
Change-Id: Ib8dc079be2dcbf6f2415ecb9b71d034ee71f68eb
ava/lang/Byte.java
ava/lang/IntegralToString.java
ava/net/URIEncoderDecoder.java
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ava/security/cert/X509CertSelector.java
rg/apache/harmony/security/utils/Array.java
rg/apache/harmony/security/x509/GeneralName.java
rg/apache/harmony/xnet/provider/jsse/HandshakeIODataStream.java
rg/apache/harmony/xnet/provider/jsse/Logger.java
e1c91159696b0797a64b1c1ec85e5b371c3cfe65 21-Jan-2011 Jesse Wilson <jessewilson@google.com> am afd9b157: Handle the CacheResponse returning a null body.

* commit 'afd9b157f467b7c4f2f0b5592dca72f18d844602':
Handle the CacheResponse returning a null body.
2932bab4ee385a107734e2a00010df3b89eda590 21-Jan-2011 Brian Carlstrom <bdc@google.com> am 42b5b3b2: am f8cff2f7: am 57537553: Defend against null directory list in FileClientSessionCache

* commit '42b5b3b2f9d984a710388a7152bbbfabf48b9138':
Defend against null directory list in FileClientSessionCache
42b5b3b2f9d984a710388a7152bbbfabf48b9138 21-Jan-2011 Brian Carlstrom <bdc@google.com> am f8cff2f7: am 57537553: Defend against null directory list in FileClientSessionCache

* commit 'f8cff2f759dd794cbeaec079501548eb8fcf50f6':
Defend against null directory list in FileClientSessionCache
afd9b157f467b7c4f2f0b5592dca72f18d844602 20-Jan-2011 Jesse Wilson <jessewilson@google.com> Handle the CacheResponse returning a null body.

Change-Id: I45c4d6b7cac5cabd8c42f5e17d110fb5b3ecc9cc
http://b/3373699
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpInputStream.java
f8cff2f759dd794cbeaec079501548eb8fcf50f6 20-Jan-2011 Brian Carlstrom <bdc@google.com> am 57537553: Defend against null directory list in FileClientSessionCache

* commit '57537553cb179690f40debdf1132f5ed02aa4ae3':
Defend against null directory list in FileClientSessionCache
57537553cb179690f40debdf1132f5ed02aa4ae3 20-Jan-2011 Brian Carlstrom <bdc@google.com> Defend against null directory list in FileClientSessionCache

Bug: 3363561
Change-Id: Idc45f7ed85d4e2a78078f06f4d9bbf903efdac69
rg/apache/harmony/xnet/provider/jsse/FileClientSessionCache.java
0f524004b71b732c888d10eab57008bc65d8a3e0 20-Jan-2011 Owen Lin <owenlin@google.com> Skip bytes by reading if the file is not seekable.

And also add unit test for FileInputStream.skip() for a pipe.

bug: 3298498

Change-Id: Iceecdd42654700e00f15b53759a3761e1c4da943
ava/io/FileInputStream.java
rg/apache/harmony/luni/platform/IFileSystem.java
5d0cc20dcd910199ba613d912d9dad4876152930 20-Jan-2011 Jesse Wilson <jessewilson@google.com> am d63ca955: am 0e6ef4e7: am d5d70a00: Merge "Fix URL character bugs by adding yet another encoder." into honeycomb

* commit 'd63ca955dca5eaa786666e9d4d9b4e97ceb049ad':
Fix URL character bugs by adding yet another encoder.
d63ca955dca5eaa786666e9d4d9b4e97ceb049ad 20-Jan-2011 Jesse Wilson <jessewilson@google.com> am 0e6ef4e7: am d5d70a00: Merge "Fix URL character bugs by adding yet another encoder." into honeycomb

* commit '0e6ef4e70f9521ed475f6898055ac740cef2770e':
Fix URL character bugs by adding yet another encoder.
0e6ef4e70f9521ed475f6898055ac740cef2770e 20-Jan-2011 Jesse Wilson <jessewilson@google.com> am d5d70a00: Merge "Fix URL character bugs by adding yet another encoder." into honeycomb

* commit 'd5d70a003de2b5fee0c91e0b7d892bc8d9e2e18b':
Fix URL character bugs by adding yet another encoder.
d1b5e5da828434388e486a388710d21e4306dae0 20-Jan-2011 Jesse Wilson <jessewilson@google.com> Fix URL character bugs by adding yet another encoder.

We don't have an encoder that ignores already escaped
characters.

Change-Id: I9ff080ad1745136b7d7313d78af2b0ca1785b200
http://b/3360947
ava/net/URL.java
ava/net/URLStreamHandler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
03623ca4ff118c2142e1ddc7f4715b29f5019380 11-Jan-2011 Elliott Hughes <enh@google.com> Fix Double.toString.

I accidentally changed unsigned division to signed division here in gingerbread.

(Cherry-pick from gingerbread.)

Bug: 3238333
Change-Id: I50e4415dece509bd1eb6fd3292b3060446333775
ava/lang/RealToString.java
353a72360d08f34cd38a705118f148ccf7d85340 19-Jan-2011 Elliott Hughes <enh@google.com> am b272dc3a: Better detail messages for ParseException.

* commit 'b272dc3a96c819d5709de9de11e800d87f7a42fc':
Better detail messages for ParseException.
b272dc3a96c819d5709de9de11e800d87f7a42fc 19-Jan-2011 Elliott Hughes <enh@google.com> Better detail messages for ParseException.

Change-Id: I9214ac4ac902894f998b1f943aaaa263ca9edd90
ava/text/Format.java
ava/text/NumberFormat.java
ava/text/ParseException.java
8324278fa95470a42c01dc7678c36627d15d5007 17-Jan-2011 Elliott Hughes <enh@google.com> Slight cleanup of the TimeZones code.

Move the allocation down into JNI, since -- despite what the ancient
comment claimed -- it makes no difference. The de-duplication stays
in Java so we don't have to think about overflowing the local reference
table.

I did experiment with moving that down into native code, so we could
avoid the allocations in the first place, but it didn't make any
convincing difference.

Change-Id: I6cad52e83f1300c331cdb95544faa0be1efbfc08
ibcore/icu/TimeZones.java
fbc2871896fe7e50f9fce86977ed6d8f7bd9f714 16-Jan-2011 Elliott Hughes <enh@google.com> Merge "Include more time zone abbreviations." into dalvik-dev
4ab15b795072beb75debd2e8456010dacb8e6f67 16-Jan-2011 Elliott Hughes <enh@google.com> Include more time zone abbreviations.

Time zone abbreviations are inherently ambiguous. Everywhere has a center, for
example, so there a large number of "CST"s. This code allows us to use
less-common abbreviations (such as "CET" for Central European Time in en_US),
provided they don't conflict with common abbreviations. When there are multiple
identical uncommon abbreviations, we take the first one we come across. (It's
possible we'll have to come back and change this so we only take the globally
unambiguous set, but I'm starting off optimistic.)

Sensible people are already using numeric offsets -- or better still Zulu
time -- so they won't be affected by this.

Bug: http://code.google.com/p/android/issues/detail?id=13420
Change-Id: I90ab9f9c23cd2616d55e470555754eb922cf917f
ibcore/icu/TimeZones.java
14dac110fbb3aa5c026f8e51f5820319130f9971 16-Jan-2011 Elliott Hughes <enh@google.com> am 17751239: Merge "Minor tidying of SimpleDateFormat."

* commit '177512391392a1b67d0134ba8fd2a5f115e06430':
Minor tidying of SimpleDateFormat.
177512391392a1b67d0134ba8fd2a5f115e06430 16-Jan-2011 Elliott Hughes <enh@google.com> Merge "Minor tidying of SimpleDateFormat."
f06d4ed7cfa7ffe4cbdbaa0bc7a9c38bad41c84b 16-Jan-2011 Elliott Hughes <enh@google.com> Minor tidying of SimpleDateFormat.

I'm going to submit my fix for this bug to dalvik-dev, but there's no reason
a bit of preparatory cleanup can't go in master...

Bug: http://code.google.com/p/android/issues/detail?id=13420
Change-Id: Ibdc0d2e9239e482f4347a068d44d68af7a88fdd2
ava/text/SimpleDateFormat.java
9c63d8ea5b107c32f947d49242f41b049f227629 14-Jan-2011 Elliott Hughes <enh@google.com> Use the faster code for Integer.numberOfTrailingZeros.

(Confirmed by Caliper.)

Change-Id: I60140a784a4929f5bbe7ae3aae8054528c96af2a
ava/lang/Integer.java
326e1655db0cd1d3c4647a5c651d10127e8d414d 14-Jan-2011 Elliott Hughes <enh@google.com> Merge "Remove a harmony pessimization from BitSet.cardinality." into dalvik-dev
a4a517c05815ce95849e1007d6e126dc3bcc0091 14-Jan-2011 Brian Carlstrom <bdc@google.com> Merge "GeneralName toLowerCase should use Locale.US" into dalvik-dev
fe921473907c2388cf13d014dd3bcf32d2b6d04a 13-Jan-2011 Brian Carlstrom <bdc@google.com> GeneralName toLowerCase should use Locale.US

Bug: 3325637
Change-Id: I8fbbb18debc3c288240d1dde12d032ed583e7cbe
rg/apache/harmony/security/x509/GeneralName.java
df1414c93940bc672af318237a8a5e38e0b64e70 14-Jan-2011 Elliott Hughes <enh@google.com> Remove a harmony pessimization from BitSet.cardinality.

Long.bitCount is 4x faster on dalvik, 10x on the JVM.

Change-Id: I131cd39846d4fc4eb68a5ed0ad0b7a2296941678
ava/util/BitSet.java
07f5a667bf722eac567e426314695800677191e3 14-Jan-2011 Elliott Hughes <enh@google.com> Remove an incorrect comment.

Caliper says the current code performs best, on all combinations of VM and
hardware.

Change-Id: I8bd5f4ada45777137f78955b27f6d3d2d495cd4f
ava/lang/Long.java
8a21f0fa473afc68562c43e53e852b89b1a29e99 14-Jan-2011 Jesse Wilson <jessewilson@google.com> am 544ebf58: am 9b0f9143: am 3827f581: Merge "Don\'t infinite loop in Field.toString()" into honeycomb

* commit '544ebf584b8479a1ac88e59b4adb0dec72bd6779':
Don't infinite loop in Field.toString()
544ebf584b8479a1ac88e59b4adb0dec72bd6779 14-Jan-2011 Jesse Wilson <jessewilson@google.com> am 9b0f9143: am 3827f581: Merge "Don\'t infinite loop in Field.toString()" into honeycomb

* commit '9b0f9143166250b4361d0f7556f725c49bdb3060':
Don't infinite loop in Field.toString()
9b0f9143166250b4361d0f7556f725c49bdb3060 14-Jan-2011 Jesse Wilson <jessewilson@google.com> am 3827f581: Merge "Don\'t infinite loop in Field.toString()" into honeycomb

* commit '3827f58177a5f6db86c015a8a1e5a5b72104a3fc':
Don't infinite loop in Field.toString()
3827f58177a5f6db86c015a8a1e5a5b72104a3fc 14-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge "Don't infinite loop in Field.toString()" into honeycomb
c1b72670a94bd70066706b6f0a0851867075b2d3 14-Jan-2011 Elliott Hughes <enh@google.com> Merge "Remove useless android-changed comments." into dalvik-dev
fb0ec0e650bf8be35acb0d47da0311a7c446aa33 14-Jan-2011 Elliott Hughes <enh@google.com> Remove useless android-changed comments.

I've changed useful ones to regular comments or TODOs, as appropriate.

I've left ones in code like java.util.concurrent where we really are
tracking an upstream source, making the change markers useful.

I've left a handful of others where I intend to actually investigate
the implied TODOs before deciding how to resolve them.

Change-Id: Iaf71059b818596351cf8ee5a3cf3c85586051fa6
ava/io/BufferedInputStream.java
ava/io/BufferedReader.java
ava/io/ByteArrayInputStream.java
ava/io/CharArrayWriter.java
ava/io/File.java
ava/io/FileDescriptor.java
ava/io/FileFilter.java
ava/io/FilterOutputStream.java
ava/io/FilterWriter.java
ava/io/InputStream.java
ava/io/InputStreamReader.java
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamField.java
ava/io/OutputStream.java
ava/io/PipedOutputStream.java
ava/io/PrintWriter.java
ava/io/Reader.java
ava/io/Writer.java
ava/lang/AbstractStringBuilder.java
ava/lang/Character.java
ava/lang/Class.java
ava/lang/ClassLoader.java
ava/lang/InheritableThreadLocal.java
ava/lang/Runtime.java
ava/lang/SecurityManager.java
ava/lang/StackTraceElement.java
ava/lang/String.java
ava/lang/ref/ReferenceQueue.java
ava/lang/reflect/Field.java
ava/lang/reflect/Proxy.java
ava/math/BigDecimal.java
ava/math/BigInteger.java
ava/math/MathContext.java
ava/math/Multiplication.java
ava/math/Primality.java
ava/nio/FileChannelImpl.java
ava/nio/IntBuffer.java
ava/nio/LongBuffer.java
ava/nio/SocketChannelImpl.java
ava/security/AccessControlContext.java
ava/security/KeyStore.java
ava/security/Provider.java
ava/security/cert/CertPath.java
ava/security/cert/PKIXCertPathChecker.java
ava/security/cert/PKIXCertPathValidatorResult.java
ava/security/cert/PKIXParameters.java
ava/security/cert/X509CertSelector.java
ava/sql/DriverManager.java
ava/text/AttributedString.java
ava/text/BreakIterator.java
ava/text/Collator.java
ava/text/DecimalFormat.java
ava/text/Format.java
ava/text/MessageFormat.java
ava/text/NumberFormat.java
ava/text/StringCharacterIterator.java
ava/util/ArrayList.java
ava/util/Arrays.java
ava/util/BitSet.java
ava/util/Calendar.java
ava/util/Collections.java
ava/util/Date.java
ava/util/EnumMap.java
ava/util/EnumSet.java
ava/util/GregorianCalendar.java
ava/util/HashMap.java
ava/util/HashSet.java
ava/util/Hashtable.java
ava/util/HugeEnumSet.java
ava/util/IdentityHashMap.java
ava/util/LinkedHashMap.java
ava/util/LinkedList.java
ava/util/MapEntry.java
ava/util/MiniEnumSet.java
ava/util/Scanner.java
ava/util/SimpleTimeZone.java
ava/util/TreeSet.java
ava/util/Vector.java
ava/util/jar/Attributes.java
ava/util/logging/Level.java
ava/util/logging/LogManager.java
ava/util/logging/LogRecord.java
ava/util/logging/Logger.java
ava/util/prefs/XMLParser.java
ava/util/regex/PatternSyntaxException.java
ava/util/zip/Inflater.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipOutputStream.java
avax/crypto/SealedObject.java
avax/crypto/spec/SecretKeySpec.java
avax/net/ssl/SSLSocketFactory.java
ibcore/icu/CharsetDecoderICU.java
ibcore/icu/CharsetEncoderICU.java
ibcore/icu/CollationElementIteratorICU.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/util/DeleteOnExit.java
rg/apache/harmony/security/asn1/ASN1Integer.java
rg/apache/harmony/security/asn1/ObjectIdentifier.java
rg/apache/harmony/security/fortress/Services.java
rg/apache/harmony/security/pkcs7/SignerInfo.java
rg/apache/harmony/security/provider/cert/Cache.java
rg/apache/harmony/security/provider/crypto/RandomBitsSupplier.java
rg/apache/harmony/security/utils/AlgNameMapper.java
rg/apache/harmony/security/utils/JarUtils.java
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/apache/harmony/security/x509/GeneralName.java
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLInputStream.java
rg/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerFactoryImpl.java
rg/xml/sax/ext/Attributes2Impl.java
b4c181862d00d9daf29daec3befe5837d3de7690 14-Jan-2011 Jesse Wilson <jessewilson@google.com> Don't infinite loop in Field.toString()

Change-Id: Iefa5bff3ca386359ebc370a736c9942f4d010032
http://b/3351428
ava/lang/reflect/AccessibleObject.java
3e16a1a4bc2e092cda4de2977157cff082682fd7 14-Jan-2011 Jesse Wilson <jessewilson@google.com> am 1c3170be: am 2d6d9bc3: am 65275e82: Merge "Fix HTTP cookie to do case mapping with Locale.US." into honeycomb

* commit '1c3170be4e2ec3b895027c848e6429062bb7c74d':
Fix HTTP cookie to do case mapping with Locale.US.
1c3170be4e2ec3b895027c848e6429062bb7c74d 14-Jan-2011 Jesse Wilson <jessewilson@google.com> am 2d6d9bc3: am 65275e82: Merge "Fix HTTP cookie to do case mapping with Locale.US." into honeycomb

* commit '2d6d9bc3752d52b93f55a6f7c9a52c7dd5cd7f0a':
Fix HTTP cookie to do case mapping with Locale.US.
2d6d9bc3752d52b93f55a6f7c9a52c7dd5cd7f0a 14-Jan-2011 Jesse Wilson <jessewilson@google.com> am 65275e82: Merge "Fix HTTP cookie to do case mapping with Locale.US." into honeycomb

* commit '65275e82cd8c877145376dd429a5e31f598e81a2':
Fix HTTP cookie to do case mapping with Locale.US.
f162edaa335461474b020027bb2e85eb3be2c179 14-Jan-2011 Jesse Wilson <jessewilson@google.com> Fix HTTP cookie to do case mapping with Locale.US.

While I'm here fix a MockWebServer bug I recently introduced
that broke cookie tests that needed to know port numbers before
responses were enqueued.

Change-Id: Idb2389ac5ed66656248c10aeb68209641acc0a68
http://b/3325637
ava/net/HttpCookie.java
2feeee4119506ed1511942f80fc2f7eb431afab7 13-Jan-2011 Elliott Hughes <enh@google.com> Remove non-API uses of Vector.

Change-Id: I27902950af0349619f4cb826d41db8926df0d34a
ava/sql/DriverManager.java
ava/text/MessageFormat.java
ava/text/SimpleDateFormat.java
ava/util/NoSuchElementException.java
ava/util/Timer.java
ava/util/jar/JarVerifier.java
ava/util/zip/ZipOutputStream.java
rg/apache/harmony/xnet/provider/jsse/CertificateMessage.java
rg/apache/harmony/xnet/provider/jsse/CertificateRequest.java
rg/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
rg/xml/sax/helpers/AttributeListImpl.java
rg/xml/sax/helpers/NamespaceSupport.java
rg/xml/sax/helpers/ParserAdapter.java
118abc3050371812703e4fabf03f4399d01fb28c 13-Jan-2011 Elliott Hughes <enh@google.com> Kill most users of StringTokenizer.

I've left a handful that actually make some use of it, in classes we
don't care about anyway (XML preferences and the like).

Change-Id: I754262ee600d8a16046b537a6d6258db849db89b
ava/net/URI.java
ava/net/URL.java
ava/net/URLConnection.java
ava/util/StringTokenizer.java
avax/crypto/Cipher.java
avax/net/ssl/DefaultHostnameVerifier.java
rg/apache/harmony/security/fortress/DefaultPolicyParser.java
78e3320540c8bdcbefba5ae1222ee18f6679ab33 13-Jan-2011 Elliott Hughes <enh@google.com> Most callers of toLowerCase/toUpperCase should pass Locale.US to avoid problems in Turkey.

Some callers should be replaced with equalsIgnoreCase instead.

The one exception is StreamTokenizer, where the RI uses the default
locale, which is arguably the right thing to do. No-one cares because
that's legacy API, but I've added a test anyway.

I've left HttpCookie and GeneralName for my co-conspirators because the
appropriate resolutions aren't as obvious there...

Bug: 3325637
Change-Id: Ia37a1caaa91b11763ae43e61e445adb45c30f793
ava/io/FilePermission.java
ava/io/StreamTokenizer.java
ava/lang/Class.java
ava/net/DefaultFileNameMap.java
ava/net/SocketPermission.java
ava/net/URI.java
ava/net/URLClassLoader.java
ava/net/URLConnection.java
ava/util/Date.java
avax/security/auth/x500/X500Principal.java
rg/apache/harmony/luni/util/FloatingPointParser.java
rg/apache/harmony/xnet/provider/jsse/HandshakeIODataStream.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/Logger.java
6d3ada10746bf4718b84963934630eb3506d8d7a 13-Jan-2011 repo sync <enh@google.com> am 3dad2dc5: am f74c8a0e: resolved conflicts for merge of 4f7abf2a to honeycomb-plus-aosp

* commit '3dad2dc5dc3b134eb05e61f66754f4d796d07a79':
Fix Double.toString.
3dad2dc5dc3b134eb05e61f66754f4d796d07a79 13-Jan-2011 repo sync <enh@google.com> am f74c8a0e: resolved conflicts for merge of 4f7abf2a to honeycomb-plus-aosp

* commit 'f74c8a0e66b6869d3b3bb4a30bf2f089e350980e':
Fix Double.toString.
f74c8a0e66b6869d3b3bb4a30bf2f089e350980e 13-Jan-2011 repo sync <enh@google.com> resolved conflicts for merge of 4f7abf2a to honeycomb-plus-aosp

Change-Id: Ieaf43d93b158ab143601b874c872570c3c3fe98b
500a8d5a4d29bc53fdea21ca022f6b360672f35d 13-Jan-2011 Elliott Hughes <enh@google.com> am 5dd36eac: am e91e39db: am dcd012af: Merge "Improve java.util.Locale documentation." into honeycomb

* commit '5dd36eacfe6d35174cbbaf3da4296c73fc2a776f':
Improve java.util.Locale documentation.
5dd36eacfe6d35174cbbaf3da4296c73fc2a776f 13-Jan-2011 Elliott Hughes <enh@google.com> am e91e39db: am dcd012af: Merge "Improve java.util.Locale documentation." into honeycomb

* commit 'e91e39dbeed2cfd9dfec1ebf7caf11d90856669a':
Improve java.util.Locale documentation.
e91e39dbeed2cfd9dfec1ebf7caf11d90856669a 13-Jan-2011 Elliott Hughes <enh@google.com> am dcd012af: Merge "Improve java.util.Locale documentation." into honeycomb

* commit 'dcd012af04d58a1dc5cb5e9d23f424035617ab58':
Improve java.util.Locale documentation.
dcd012af04d58a1dc5cb5e9d23f424035617ab58 13-Jan-2011 Elliott Hughes <enh@google.com> Merge "Improve java.util.Locale documentation." into honeycomb
618afdc12b918bd128aec6cf610a54dd4d0bacbb 13-Jan-2011 Jesse Wilson <jessewilson@google.com> am 8b652b16: am 600f780e: am a8b58362: Merge "Fix bugs in toString() in reflection classes." into honeycomb

* commit '8b652b16465e8d3e9afa681d2999febfe10a84b6':
Fix bugs in toString() in reflection classes.
8b652b16465e8d3e9afa681d2999febfe10a84b6 13-Jan-2011 Jesse Wilson <jessewilson@google.com> am 600f780e: am a8b58362: Merge "Fix bugs in toString() in reflection classes." into honeycomb

* commit '600f780e27510687d5935e0b62759f1bfdc1b8e8':
Fix bugs in toString() in reflection classes.
28fe896e582d9ab920571dad758fcdb1f80cf47f 13-Jan-2011 Elliott Hughes <enh@google.com> Improve java.util.Locale documentation.

The key change here is adding "honeycomb" to the table. The other
changes are just targets of opportunity.

I've also raised doclava bugs, because this page still looks awful
after doclava's mangled it. (javadoc does a better job.)

Change-Id: I5a8a9e7b2df8ec792f4d191729f8d30b8306cd6e
ava/util/Locale.java
600f780e27510687d5935e0b62759f1bfdc1b8e8 13-Jan-2011 Jesse Wilson <jessewilson@google.com> am a8b58362: Merge "Fix bugs in toString() in reflection classes." into honeycomb

* commit 'a8b58362c8ee5aaca620854935a60b033b0733a1':
Fix bugs in toString() in reflection classes.
a8b58362c8ee5aaca620854935a60b033b0733a1 13-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge "Fix bugs in toString() in reflection classes." into honeycomb
7281ea4092279f3091ffa3be91a4c66c3b63e080 13-Jan-2011 Jesse Wilson <jessewilson@google.com> Fix bugs in toString() in reflection classes.

Change-Id: Iceba152e1825eb859b23f9eb7463c4ed2e32bac9
http://b/3073292
ava/lang/reflect/AccessibleObject.java
ava/lang/reflect/Constructor.java
ava/lang/reflect/Field.java
ava/lang/reflect/Method.java
ava/lang/reflect/WildcardType.java
rg/apache/harmony/luni/lang/reflect/ImplForWildcard.java
0562f944688e3721ee421303446a819ae36c09da 12-Jan-2011 Brian Carlstrom <bdc@google.com> Merge remote branch 'goog/dalvik-dev' into gingerbread-release-to-dalvik-dev
a5bbd9d9be7d2f234ab91ee82085a580e7055f5c 12-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> am 68095f6a: am 6ead9d74: am 6e35a860: Merge "Fix @see links" into gingerbread

* commit '68095f6a01a2e252413aac649d56cf6dc3c62409':
Fix @see links
68095f6a01a2e252413aac649d56cf6dc3c62409 12-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> am 6ead9d74: am 6e35a860: Merge "Fix @see links" into gingerbread

* commit '6ead9d748abcf4e7a0b3359ffac24bad8168f284':
Fix @see links
322f5c718531c4c4b80e6d57d1205e0668d1e2a0 12-Jan-2011 Brian Carlstrom <bdc@google.com> Merge commit '6e35a8607a94411fa1b9c92d2b5a5db40a49895b' into gingerbread-release-to-dalvik-dev

Conflicts:
luni/src/main/java/java/lang/Class.java

Change-Id: I0ff29f1697c5ff538f916f79ed65e2d22dde85a8
3b4d88a6bc4f983acc4f0dec5087d7250d33f714 12-Jan-2011 Elliott Hughes <enh@google.com> Merge "Change all "final static"s to "static final"." into dalvik-dev
c23cf7e4ebd1abd50b0bc5dac7683cd0c8c8bce3 12-Jan-2011 Jesse Wilson <jessewilson@google.com> am a6b80b72: am 99d1e354: am 09c46404: Fix Document.getElementsByTagName to return the root node.

* commit 'a6b80b7219c4d556b56e2de3bde28f276a45e6c9':
Fix Document.getElementsByTagName to return the root node.
0d4ce4227fa818288b8db762b640dfa21e3162f5 12-Jan-2011 Elliott Hughes <enh@google.com> Change all "final static"s to "static final".

Just so we sound like native speakers.

Change-Id: I4d98ec7519af8c1578609945ca9d480484b82874
ava/lang/StrictMath.java
ava/lang/Thread.java
ava/math/MathContext.java
ava/net/HttpURLConnection.java
ava/security/AllPermissionCollection.java
ava/security/Permissions.java
ava/text/DateFormat.java
ava/text/NumberFormat.java
ava/util/logging/Logger.java
ava/util/zip/GZIPInputStream.java
avax/net/ssl/DefaultHostnameVerifier.java
rg/apache/harmony/kernel/vm/VM.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/security/asn1/ASN1GeneralizedTime.java
rg/apache/harmony/security/asn1/ASN1Oid.java
rg/apache/harmony/security/asn1/ASN1UTCTime.java
rg/apache/harmony/security/asn1/DerOutputStream.java
rg/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
rg/xml/sax/helpers/NamespaceSupport.java
rg/xml/sax/helpers/ParserAdapter.java
a6b80b7219c4d556b56e2de3bde28f276a45e6c9 12-Jan-2011 Jesse Wilson <jessewilson@google.com> am 99d1e354: am 09c46404: Fix Document.getElementsByTagName to return the root node.

* commit '99d1e354bc4faaeac8a6de338c7e56964af030ea':
Fix Document.getElementsByTagName to return the root node.
99d1e354bc4faaeac8a6de338c7e56964af030ea 12-Jan-2011 Jesse Wilson <jessewilson@google.com> am 09c46404: Fix Document.getElementsByTagName to return the root node.

* commit '09c4640423dbe85c606c5b46312cd5c0e5c94eeb':
Fix Document.getElementsByTagName to return the root node.
09c4640423dbe85c606c5b46312cd5c0e5c94eeb 12-Jan-2011 Jesse Wilson <jessewilson@google.com> Fix Document.getElementsByTagName to return the root node.

I introduced this regression when changing Element.getElementsByTagName
to not return itself. Note that one of our tests (GetElementsByTagNameNS)
had the wrong expectation here; the new result is consistent with the RI.

Also fix a related problem in InnerNodeImpl which assumes the document
field is always non-null. It can be null for Doctype nodes!

Change-Id: I40b5bb52b8396cd282cd5465029a9f0c4040de0c
rg/apache/harmony/xml/dom/DocumentImpl.java
rg/apache/harmony/xml/dom/ElementImpl.java
rg/apache/harmony/xml/dom/InnerNodeImpl.java
rg/apache/harmony/xml/dom/NodeImpl.java
c4bce9ccde4168cbbf80c4d4c305b6615d317184 12-Jan-2011 Jesse Wilson <jessewilson@google.com> am b7ccc2d0: Merge "Expand predefined entities by default, even if coalescing is off."

* commit 'b7ccc2d092e8a500f8d646a9ea0c535a1d440956':
Expand predefined entities by default, even if coalescing is off.
b7ccc2d092e8a500f8d646a9ea0c535a1d440956 12-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge "Expand predefined entities by default, even if coalescing is off."
30ae871abe462723f78b2981178a9d5a73f5e129 11-Jan-2011 Elliott Hughes <enh@google.com> Fix Double.toString.

I accidentally changed unsigned division to signed division here in gingerbread.

Bug: 3238333
Change-Id: I72cb80adbfc12082a222310929c90f8740b568da
ava/lang/RealToString.java
83092fddaf8852029f89ca3bce117d627a6ab68e 11-Jan-2011 Jesse Wilson <jessewilson@google.com> am 18c7f7e1: am e235e372: am a28b4cea: Merge "Fix cloneNode to work when no namespace is set." into honeycomb

* commit '18c7f7e11b45d577785e4fa9730f5c28ccec0f8d':
Fix cloneNode to work when no namespace is set.
ffb5c638cb2b11a715b823550c5c28fcf54a52d2 11-Jan-2011 Elliott Hughes <enh@google.com> am 5c055cff: am e7c5643e: am a9c6c901: Documentation improvements for socket options.

* commit '5c055cfff341707ea5e5e9064580cfa7a15d480f':
Documentation improvements for socket options.
18c7f7e11b45d577785e4fa9730f5c28ccec0f8d 11-Jan-2011 Jesse Wilson <jessewilson@google.com> am e235e372: am a28b4cea: Merge "Fix cloneNode to work when no namespace is set." into honeycomb

* commit 'e235e3723884b57d73a8a7279eb21b71ed3bf877':
Fix cloneNode to work when no namespace is set.
5c055cfff341707ea5e5e9064580cfa7a15d480f 11-Jan-2011 Elliott Hughes <enh@google.com> am e7c5643e: am a9c6c901: Documentation improvements for socket options.

* commit 'e7c5643e249a2f7513720c391999dac08737c109':
Documentation improvements for socket options.
0463b62eef5a7e8a477ddf7a972af198e46ecd5f 11-Jan-2011 Jesse Wilson <jessewilson@google.com> Expand predefined entities by default, even if coalescing is off.

Change-Id: I43f0a720e96486a83692a9f08368359f13c875fb
http://b/3341115
rg/apache/harmony/xml/parsers/DocumentBuilderImpl.java
e235e3723884b57d73a8a7279eb21b71ed3bf877 11-Jan-2011 Jesse Wilson <jessewilson@google.com> am a28b4cea: Merge "Fix cloneNode to work when no namespace is set." into honeycomb

* commit 'a28b4cea38c9ea8e710404bb1e7593c8ca7ad5cd':
Fix cloneNode to work when no namespace is set.
e7c5643e249a2f7513720c391999dac08737c109 11-Jan-2011 Elliott Hughes <enh@google.com> am a9c6c901: Documentation improvements for socket options.

* commit 'a9c6c9013b08934867f71b69a90efce0c1b66918':
Documentation improvements for socket options.
a28b4cea38c9ea8e710404bb1e7593c8ca7ad5cd 11-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge "Fix cloneNode to work when no namespace is set." into honeycomb
9c075bb3e84c6eaafd016cbc1bf69a6e989eedf3 11-Jan-2011 Jesse Wilson <jessewilson@google.com> Fix cloneNode to work when no namespace is set.

Change-Id: I0bcbc79832f06613c82f93c0f8805a43a1cf2094
http://code.google.com/p/android/issues/detail?id=2735
rg/apache/harmony/xml/dom/AttrImpl.java
rg/apache/harmony/xml/dom/DocumentImpl.java
rg/apache/harmony/xml/dom/ElementImpl.java
rg/apache/harmony/xml/dom/NodeImpl.java
b2097e76ab184a863838017ac442b744e7bf7c23 11-Jan-2011 Elliott Hughes <enh@google.com> am 66d9e787: am cbe26f42: am c8dde40c: Merge "Get memory for direct byte buffers from the Java heap rather than the native heap." into honeycomb

* commit '66d9e787af999d3c6b26cfd46e10e0750a5f3e6e':
Get memory for direct byte buffers from the Java heap rather than the native heap.
66d9e787af999d3c6b26cfd46e10e0750a5f3e6e 11-Jan-2011 Elliott Hughes <enh@google.com> am cbe26f42: am c8dde40c: Merge "Get memory for direct byte buffers from the Java heap rather than the native heap." into honeycomb

* commit 'cbe26f42f5b57db71402fbb1955898d3ab79e350':
Get memory for direct byte buffers from the Java heap rather than the native heap.
d3050ebb8f54d45f21df7be979ec090e58ac0029 11-Jan-2011 Jesse Wilson <jessewilson@google.com> am 75582a19: Merge commit \'e80fc1da\' into manualmerge

* commit '75582a192a436f30af115bddf709fa41c544d2e3':
Don't permit DocumentFragments in the node hierarchy.
75582a192a436f30af115bddf709fa41c544d2e3 11-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge commit 'e80fc1da' into manualmerge

Conflicts:
luni/src/main/java/org/apache/harmony/xml/dom/NodeImpl.java

Change-Id: I0e6af0c9b4d0f322e1f74c639707916daa153e71
a9c6c9013b08934867f71b69a90efce0c1b66918 11-Jan-2011 Elliott Hughes <enh@google.com> Documentation improvements for socket options.

Bug: http://code.google.com/p/android/issues/detail?id=13898
Change-Id: I202a5404e7e828f074483a3f6365b4e3a941da7d
ava/net/DatagramSocket.java
ava/net/InetAddress.java
ava/net/MulticastSocket.java
ava/net/NetworkInterface.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketOptions.java
ava/net/SocketPermission.java
cbe26f42f5b57db71402fbb1955898d3ab79e350 11-Jan-2011 Elliott Hughes <enh@google.com> am c8dde40c: Merge "Get memory for direct byte buffers from the Java heap rather than the native heap." into honeycomb

* commit 'c8dde40c3c62ceb79fc0b62f445d9a539fd470d3':
Get memory for direct byte buffers from the Java heap rather than the native heap.
c8dde40c3c62ceb79fc0b62f445d9a539fd470d3 11-Jan-2011 Elliott Hughes <enh@google.com> Merge "Get memory for direct byte buffers from the Java heap rather than the native heap." into honeycomb
e80fc1da23c9c86e029a412d26bb73dfef0c3089 11-Jan-2011 Jesse Wilson <jessewilson@google.com> am 5c0408af: Don\'t permit DocumentFragments in the node hierarchy.

* commit '5c0408af32a2b1c78b2d5a93cca60b0fffddd7da':
Don't permit DocumentFragments in the node hierarchy.
5c0408af32a2b1c78b2d5a93cca60b0fffddd7da 11-Jan-2011 Jesse Wilson <jessewilson@google.com> Don't permit DocumentFragments in the node hierarchy.

Change-Id: Icae3e3e41b4315f975892d5aafeae62d4799036d
http://code.google.com/p/android/issues/detail?id=2735
rg/apache/harmony/xml/dom/DocumentImpl.java
rg/apache/harmony/xml/dom/InnerNodeImpl.java
rg/apache/harmony/xml/dom/NodeImpl.java
3676bd288bce270a51b1c51f1052b76e83e71412 11-Jan-2011 Elliott Hughes <enh@google.com> Get memory for direct byte buffers from the Java heap rather than the native heap.

Since the removal of tracked external allocations, there's been no accounting
of direct byte buffers. This fixes that, and moves us to a much simpler
situation where the GC is responsible for this memory too. It also means that
we don't need finalizers: now only memory-mapped blocks need finalizers (to call
munmap(3)).

Change-Id: I6b43f74074e496eeb2a36b620af19e4926ceb8cf
ava/nio/MemoryBlock.java
rg/apache/harmony/luni/platform/OSMemory.java
78d7b70250da7e2baa25c6de0be56696d7a3dc16 11-Jan-2011 Jesse Wilson <jessewilson@google.com> am c99feaab: Merge commit \'763220b4\' into manualmerge

* commit 'c99feaab70680820bdc7e8c36cb1f73402dbd45b':
Fix GetElementsByTagName to not include the element itself.
c99feaab70680820bdc7e8c36cb1f73402dbd45b 11-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge commit '763220b4' into manualmerge

Conflicts:
luni/src/main/java/org/apache/harmony/xml/dom/NodeImpl.java

Change-Id: I9ecdb5fb1ac11a87a70ed659700dd7386e46652f
763220b492ae0bc59ac1889d71e955bc32cf308e 10-Jan-2011 Jesse Wilson <jessewilson@google.com> am 6a3dda3c: Fix GetElementsByTagName to not include the element itself.

* commit '6a3dda3cd755cb77c7234f3c7bee782d92ceccf7':
Fix GetElementsByTagName to not include the element itself.
6a3dda3cd755cb77c7234f3c7bee782d92ceccf7 10-Jan-2011 Jesse Wilson <jessewilson@google.com> Fix GetElementsByTagName to not include the element itself.

Change-Id: I8ee8222cc36c691917a7d48f748f5aeb153b95af
http://code.google.com/p/android/issues/detail?id=2735#c11
rg/apache/harmony/xml/dom/ElementImpl.java
rg/apache/harmony/xml/dom/NamedNodeMapImpl.java
rg/apache/harmony/xml/dom/NodeImpl.java
25c17227e6979687145c102c404084cc2dc367dd 10-Jan-2011 Jesse Wilson <jessewilson@google.com> am 97bfa99b: Merge "Break dependency from libcore to Apache XML libraries."

* commit '97bfa99b73cba7e1d04eb761167c95140c249010':
Break dependency from libcore to Apache XML libraries.
97bfa99b73cba7e1d04eb761167c95140c249010 10-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge "Break dependency from libcore to Apache XML libraries."
6e35a8607a94411fa1b9c92d2b5a5db40a49895b 10-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> Merge "Fix @see links" into gingerbread
f029395dff382fc4dcba0689fd948ec06644e1f0 10-Jan-2011 Jesse Wilson <jessewilson@google.com> Break dependency from libcore to Apache XML libraries.

Change-Id: I482ba29551423c682696db44f78bc6b74fa04341
http://b/1414929
avax/xml/transform/TransformerFactory.java
rg/apache/harmony/xml/dom/DOMConfigurationImpl.java
rg/apache/harmony/xml/dom/DOMErrorImpl.java
rg/apache/harmony/xml/dom/NodeImpl.java
rg/apache/xalan/Version.java
rg/apache/xalan/Version.src
rg/apache/xalan/extensions/ExpressionContext.java
rg/apache/xalan/extensions/ExpressionVisitor.java
rg/apache/xalan/extensions/ExtensionHandler.java
rg/apache/xalan/extensions/ExtensionNamespaceSupport.java
rg/apache/xalan/extensions/ExtensionNamespacesManager.java
rg/apache/xalan/extensions/ExtensionsTable.java
rg/apache/xalan/extensions/ObjectFactory.java
rg/apache/xalan/processor/ProcessorAttributeSet.java
rg/apache/xalan/processor/ProcessorCharacters.java
rg/apache/xalan/processor/ProcessorDecimalFormat.java
rg/apache/xalan/processor/ProcessorExsltFuncResult.java
rg/apache/xalan/processor/ProcessorExsltFunction.java
rg/apache/xalan/processor/ProcessorGlobalParamDecl.java
rg/apache/xalan/processor/ProcessorGlobalVariableDecl.java
rg/apache/xalan/processor/ProcessorImport.java
rg/apache/xalan/processor/ProcessorInclude.java
rg/apache/xalan/processor/ProcessorKey.java
rg/apache/xalan/processor/ProcessorLRE.java
rg/apache/xalan/processor/ProcessorNamespaceAlias.java
rg/apache/xalan/processor/ProcessorOutputElem.java
rg/apache/xalan/processor/ProcessorPreserveSpace.java
rg/apache/xalan/processor/ProcessorStripSpace.java
rg/apache/xalan/processor/ProcessorStylesheetDoc.java
rg/apache/xalan/processor/ProcessorStylesheetElement.java
rg/apache/xalan/processor/ProcessorTemplate.java
rg/apache/xalan/processor/ProcessorTemplateElem.java
rg/apache/xalan/processor/ProcessorText.java
rg/apache/xalan/processor/ProcessorUnknown.java
rg/apache/xalan/processor/StylesheetHandler.java
rg/apache/xalan/processor/TransformerFactoryImpl.java
rg/apache/xalan/processor/WhitespaceInfoPaths.java
rg/apache/xalan/processor/XSLProcessorVersion.src
rg/apache/xalan/processor/XSLTAttributeDef.java
rg/apache/xalan/processor/XSLTElementDef.java
rg/apache/xalan/processor/XSLTElementProcessor.java
rg/apache/xalan/processor/XSLTSchema.java
rg/apache/xalan/processor/package.html
rg/apache/xalan/res/XSLMessages.java
rg/apache/xalan/res/XSLTErrorResources.java
rg/apache/xalan/res/XSLTInfo.properties
rg/apache/xalan/res/package.html
rg/apache/xalan/serialize/SerializerUtils.java
rg/apache/xalan/templates/AVT.java
rg/apache/xalan/templates/AVTPart.java
rg/apache/xalan/templates/AVTPartSimple.java
rg/apache/xalan/templates/AVTPartXPath.java
rg/apache/xalan/templates/AbsPathChecker.java
rg/apache/xalan/templates/Constants.java
rg/apache/xalan/templates/DecimalFormatProperties.java
rg/apache/xalan/templates/ElemApplyImport.java
rg/apache/xalan/templates/ElemApplyTemplates.java
rg/apache/xalan/templates/ElemAttribute.java
rg/apache/xalan/templates/ElemAttributeSet.java
rg/apache/xalan/templates/ElemCallTemplate.java
rg/apache/xalan/templates/ElemChoose.java
rg/apache/xalan/templates/ElemComment.java
rg/apache/xalan/templates/ElemCopy.java
rg/apache/xalan/templates/ElemCopyOf.java
rg/apache/xalan/templates/ElemElement.java
rg/apache/xalan/templates/ElemEmpty.java
rg/apache/xalan/templates/ElemExsltFuncResult.java
rg/apache/xalan/templates/ElemExsltFunction.java
rg/apache/xalan/templates/ElemExtensionCall.java
rg/apache/xalan/templates/ElemExtensionDecl.java
rg/apache/xalan/templates/ElemExtensionScript.java
rg/apache/xalan/templates/ElemFallback.java
rg/apache/xalan/templates/ElemForEach.java
rg/apache/xalan/templates/ElemIf.java
rg/apache/xalan/templates/ElemLiteralResult.java
rg/apache/xalan/templates/ElemMessage.java
rg/apache/xalan/templates/ElemNumber.java
rg/apache/xalan/templates/ElemOtherwise.java
rg/apache/xalan/templates/ElemPI.java
rg/apache/xalan/templates/ElemParam.java
rg/apache/xalan/templates/ElemSort.java
rg/apache/xalan/templates/ElemTemplate.java
rg/apache/xalan/templates/ElemTemplateElement.java
rg/apache/xalan/templates/ElemText.java
rg/apache/xalan/templates/ElemTextLiteral.java
rg/apache/xalan/templates/ElemUnknown.java
rg/apache/xalan/templates/ElemUse.java
rg/apache/xalan/templates/ElemValueOf.java
rg/apache/xalan/templates/ElemVariable.java
rg/apache/xalan/templates/ElemVariablePsuedo.java
rg/apache/xalan/templates/ElemWhen.java
rg/apache/xalan/templates/ElemWithParam.java
rg/apache/xalan/templates/FuncDocument.java
rg/apache/xalan/templates/FuncFormatNumb.java
rg/apache/xalan/templates/FuncKey.java
rg/apache/xalan/templates/KeyDeclaration.java
rg/apache/xalan/templates/NamespaceAlias.java
rg/apache/xalan/templates/OutputProperties.java
rg/apache/xalan/templates/RedundentExprEliminator.java
rg/apache/xalan/templates/Stylesheet.java
rg/apache/xalan/templates/StylesheetComposed.java
rg/apache/xalan/templates/StylesheetRoot.java
rg/apache/xalan/templates/TemplateList.java
rg/apache/xalan/templates/TemplateSubPatternAssociation.java
rg/apache/xalan/templates/VarNameCollector.java
rg/apache/xalan/templates/WhiteSpaceInfo.java
rg/apache/xalan/templates/XMLNSDecl.java
rg/apache/xalan/templates/XSLTVisitable.java
rg/apache/xalan/templates/XSLTVisitor.java
rg/apache/xalan/templates/XUnresolvedVariable.java
rg/apache/xalan/templates/XUnresolvedVariableSimple.java
rg/apache/xalan/templates/package.html
rg/apache/xalan/transformer/ClonerToResultTree.java
rg/apache/xalan/transformer/Counter.java
rg/apache/xalan/transformer/CountersTable.java
rg/apache/xalan/transformer/DecimalToRoman.java
rg/apache/xalan/transformer/KeyIterator.java
rg/apache/xalan/transformer/KeyManager.java
rg/apache/xalan/transformer/KeyTable.java
rg/apache/xalan/transformer/MsgMgr.java
rg/apache/xalan/transformer/NodeSortKey.java
rg/apache/xalan/transformer/NodeSorter.java
rg/apache/xalan/transformer/SerializerSwitcher.java
rg/apache/xalan/transformer/TrAXFilter.java
rg/apache/xalan/transformer/TransformState.java
rg/apache/xalan/transformer/TransformerClient.java
rg/apache/xalan/transformer/TransformerHandlerImpl.java
rg/apache/xalan/transformer/TransformerIdentityImpl.java
rg/apache/xalan/transformer/TransformerImpl.java
rg/apache/xalan/transformer/TreeWalker2Result.java
rg/apache/xalan/transformer/XalanProperties.java
rg/apache/xalan/transformer/XalanTransformState.java
rg/apache/xalan/transformer/package.html
rg/apache/xalan/xslt/EnvironmentCheck.java
rg/apache/xalan/xslt/ObjectFactory.java
rg/apache/xalan/xslt/SecuritySupport.java
rg/apache/xalan/xslt/SecuritySupport12.java
rg/apache/xalan/xslt/package.html
rg/apache/xml/dtm/Axis.java
rg/apache/xml/dtm/DTM.java
rg/apache/xml/dtm/DTMAxisIterator.java
rg/apache/xml/dtm/DTMAxisTraverser.java
rg/apache/xml/dtm/DTMConfigurationException.java
rg/apache/xml/dtm/DTMDOMException.java
rg/apache/xml/dtm/DTMException.java
rg/apache/xml/dtm/DTMFilter.java
rg/apache/xml/dtm/DTMIterator.java
rg/apache/xml/dtm/DTMManager.java
rg/apache/xml/dtm/DTMWSFilter.java
rg/apache/xml/dtm/ObjectFactory.java
rg/apache/xml/dtm/SecuritySupport.java
rg/apache/xml/dtm/SecuritySupport12.java
rg/apache/xml/dtm/ref/ChunkedIntArray.java
rg/apache/xml/dtm/ref/CoroutineManager.java
rg/apache/xml/dtm/ref/DTMAxisIterNodeList.java
rg/apache/xml/dtm/ref/DTMAxisIteratorBase.java
rg/apache/xml/dtm/ref/DTMChildIterNodeList.java
rg/apache/xml/dtm/ref/DTMDefaultBase.java
rg/apache/xml/dtm/ref/DTMDefaultBaseIterators.java
rg/apache/xml/dtm/ref/DTMDefaultBaseTraversers.java
rg/apache/xml/dtm/ref/DTMDocumentImpl.java
rg/apache/xml/dtm/ref/DTMManagerDefault.java
rg/apache/xml/dtm/ref/DTMNamedNodeMap.java
rg/apache/xml/dtm/ref/DTMNodeIterator.java
rg/apache/xml/dtm/ref/DTMNodeList.java
rg/apache/xml/dtm/ref/DTMNodeListBase.java
rg/apache/xml/dtm/ref/DTMNodeProxy.java
rg/apache/xml/dtm/ref/DTMStringPool.java
rg/apache/xml/dtm/ref/DTMTreeWalker.java
rg/apache/xml/dtm/ref/ExpandedNameTable.java
rg/apache/xml/dtm/ref/ExtendedType.java
rg/apache/xml/dtm/ref/IncrementalSAXSource.java
rg/apache/xml/dtm/ref/IncrementalSAXSource_Filter.java
rg/apache/xml/dtm/ref/NodeLocator.java
rg/apache/xml/dtm/ref/SecuritySupport.java
rg/apache/xml/dtm/ref/SecuritySupport12.java
rg/apache/xml/dtm/ref/dom2dtm/DOM2DTM.java
rg/apache/xml/dtm/ref/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java
rg/apache/xml/dtm/ref/sax2dtm/SAX2DTM.java
rg/apache/xml/dtm/ref/sax2dtm/SAX2DTM2.java
rg/apache/xml/dtm/ref/sax2dtm/SAX2RTFDTM.java
rg/apache/xml/res/XMLErrorResources.java
rg/apache/xml/res/XMLMessages.java
rg/apache/xml/serializer/AttributesImplSerializer.java
rg/apache/xml/serializer/CharInfo.java
rg/apache/xml/serializer/DOM3Serializer.java
rg/apache/xml/serializer/DOMSerializer.java
rg/apache/xml/serializer/ElemContext.java
rg/apache/xml/serializer/ElemDesc.java
rg/apache/xml/serializer/EncodingInfo.java
rg/apache/xml/serializer/Encodings.java
rg/apache/xml/serializer/Encodings.properties
rg/apache/xml/serializer/ExtendedContentHandler.java
rg/apache/xml/serializer/ExtendedLexicalHandler.java
rg/apache/xml/serializer/HTMLEntities.properties
rg/apache/xml/serializer/Method.java
rg/apache/xml/serializer/NamespaceMappings.java
rg/apache/xml/serializer/ObjectFactory.java
rg/apache/xml/serializer/OutputPropertiesFactory.java
rg/apache/xml/serializer/OutputPropertyUtils.java
rg/apache/xml/serializer/SecuritySupport.java
rg/apache/xml/serializer/SecuritySupport12.java
rg/apache/xml/serializer/SerializationHandler.java
rg/apache/xml/serializer/Serializer.java
rg/apache/xml/serializer/SerializerBase.java
rg/apache/xml/serializer/SerializerConstants.java
rg/apache/xml/serializer/SerializerFactory.java
rg/apache/xml/serializer/SerializerTrace.java
rg/apache/xml/serializer/SerializerTraceWriter.java
rg/apache/xml/serializer/ToHTMLStream.java
rg/apache/xml/serializer/ToSAXHandler.java
rg/apache/xml/serializer/ToStream.java
rg/apache/xml/serializer/ToTextSAXHandler.java
rg/apache/xml/serializer/ToTextStream.java
rg/apache/xml/serializer/ToUnknownStream.java
rg/apache/xml/serializer/ToXMLSAXHandler.java
rg/apache/xml/serializer/ToXMLStream.java
rg/apache/xml/serializer/TransformStateSetter.java
rg/apache/xml/serializer/TreeWalker.java
rg/apache/xml/serializer/Version.java
rg/apache/xml/serializer/Version.src
rg/apache/xml/serializer/WriterChain.java
rg/apache/xml/serializer/WriterToASCI.java
rg/apache/xml/serializer/WriterToUTF8Buffered.java
rg/apache/xml/serializer/XMLEntities.properties
rg/apache/xml/serializer/XSLOutputAttributes.java
rg/apache/xml/serializer/dom3/DOM3SerializerImpl.java
rg/apache/xml/serializer/dom3/DOM3TreeWalker.java
rg/apache/xml/serializer/dom3/DOMConstants.java
rg/apache/xml/serializer/dom3/DOMErrorHandlerImpl.java
rg/apache/xml/serializer/dom3/DOMErrorImpl.java
rg/apache/xml/serializer/dom3/DOMLocatorImpl.java
rg/apache/xml/serializer/dom3/DOMOutputImpl.java
rg/apache/xml/serializer/dom3/DOMStringListImpl.java
rg/apache/xml/serializer/dom3/LSSerializerImpl.java
rg/apache/xml/serializer/dom3/NamespaceSupport.java
rg/apache/xml/serializer/output_html.properties
rg/apache/xml/serializer/output_text.properties
rg/apache/xml/serializer/output_unknown.properties
rg/apache/xml/serializer/output_xml.properties
rg/apache/xml/serializer/package.html
rg/apache/xml/serializer/utils/AttList.java
rg/apache/xml/serializer/utils/DOM2Helper.java
rg/apache/xml/serializer/utils/Messages.java
rg/apache/xml/serializer/utils/MsgKey.java
rg/apache/xml/serializer/utils/SerializerMessages.java
rg/apache/xml/serializer/utils/SerializerMessages_ca.java
rg/apache/xml/serializer/utils/SerializerMessages_cs.java
rg/apache/xml/serializer/utils/SerializerMessages_de.java
rg/apache/xml/serializer/utils/SerializerMessages_en.java
rg/apache/xml/serializer/utils/SerializerMessages_es.java
rg/apache/xml/serializer/utils/SerializerMessages_fr.java
rg/apache/xml/serializer/utils/SerializerMessages_hu.java
rg/apache/xml/serializer/utils/SerializerMessages_it.java
rg/apache/xml/serializer/utils/SerializerMessages_ja.java
rg/apache/xml/serializer/utils/SerializerMessages_ko.java
rg/apache/xml/serializer/utils/SerializerMessages_pl.java
rg/apache/xml/serializer/utils/SerializerMessages_pt_BR.java
rg/apache/xml/serializer/utils/SerializerMessages_ru.java
rg/apache/xml/serializer/utils/SerializerMessages_sk.java
rg/apache/xml/serializer/utils/SerializerMessages_sl.java
rg/apache/xml/serializer/utils/SerializerMessages_sv.java
rg/apache/xml/serializer/utils/SerializerMessages_tr.java
rg/apache/xml/serializer/utils/SerializerMessages_zh.java
rg/apache/xml/serializer/utils/SerializerMessages_zh_CN.java
rg/apache/xml/serializer/utils/SerializerMessages_zh_TW.java
rg/apache/xml/serializer/utils/StringToIntTable.java
rg/apache/xml/serializer/utils/SystemIDResolver.java
rg/apache/xml/serializer/utils/URI.java
rg/apache/xml/serializer/utils/Utils.java
rg/apache/xml/serializer/utils/WrappedRuntimeException.java
rg/apache/xml/serializer/utils/XML11Char.java
rg/apache/xml/serializer/utils/XMLChar.java
rg/apache/xml/utils/AttList.java
rg/apache/xml/utils/BoolStack.java
rg/apache/xml/utils/Constants.java
rg/apache/xml/utils/DOM2Helper.java
rg/apache/xml/utils/DOMBuilder.java
rg/apache/xml/utils/DOMHelper.java
rg/apache/xml/utils/DOMOrder.java
rg/apache/xml/utils/DefaultErrorHandler.java
rg/apache/xml/utils/FastStringBuffer.java
rg/apache/xml/utils/IntStack.java
rg/apache/xml/utils/IntVector.java
rg/apache/xml/utils/NSInfo.java
rg/apache/xml/utils/NameSpace.java
rg/apache/xml/utils/NamespaceSupport2.java
rg/apache/xml/utils/NodeConsumer.java
rg/apache/xml/utils/NodeVector.java
rg/apache/xml/utils/ObjectFactory.java
rg/apache/xml/utils/ObjectPool.java
rg/apache/xml/utils/ObjectStack.java
rg/apache/xml/utils/ObjectVector.java
rg/apache/xml/utils/PrefixResolver.java
rg/apache/xml/utils/PrefixResolverDefault.java
rg/apache/xml/utils/QName.java
rg/apache/xml/utils/SAXSourceLocator.java
rg/apache/xml/utils/SecuritySupport.java
rg/apache/xml/utils/SecuritySupport12.java
rg/apache/xml/utils/StopParseException.java
rg/apache/xml/utils/StringBufferPool.java
rg/apache/xml/utils/StringToIntTable.java
rg/apache/xml/utils/StringVector.java
rg/apache/xml/utils/StylesheetPIHandler.java
rg/apache/xml/utils/SuballocatedIntVector.java
rg/apache/xml/utils/SystemIDResolver.java
rg/apache/xml/utils/ThreadControllerWrapper.java
rg/apache/xml/utils/TreeWalker.java
rg/apache/xml/utils/URI.java
rg/apache/xml/utils/UnImplNode.java
rg/apache/xml/utils/WrappedRuntimeException.java
rg/apache/xml/utils/XML11Char.java
rg/apache/xml/utils/XMLChar.java
rg/apache/xml/utils/XMLCharacterRecognizer.java
rg/apache/xml/utils/XMLReaderManager.java
rg/apache/xml/utils/XMLString.java
rg/apache/xml/utils/XMLStringDefault.java
rg/apache/xml/utils/XMLStringFactory.java
rg/apache/xml/utils/package.html
rg/apache/xml/utils/res/CharArrayWrapper.java
rg/apache/xml/utils/res/IntArrayWrapper.java
rg/apache/xml/utils/res/LongArrayWrapper.java
rg/apache/xml/utils/res/StringArrayWrapper.java
rg/apache/xml/utils/res/XResourceBundle.java
rg/apache/xml/utils/res/XResourceBundleBase.java
rg/apache/xml/utils/res/XResources_cy.java
rg/apache/xml/utils/res/XResources_de.java
rg/apache/xml/utils/res/XResources_el.java
rg/apache/xml/utils/res/XResources_en.java
rg/apache/xml/utils/res/XResources_es.java
rg/apache/xml/utils/res/XResources_fr.java
rg/apache/xml/utils/res/XResources_he.java
rg/apache/xml/utils/res/XResources_hy.java
rg/apache/xml/utils/res/XResources_it.java
rg/apache/xml/utils/res/XResources_ja_JP_A.java
rg/apache/xml/utils/res/XResources_ja_JP_HA.java
rg/apache/xml/utils/res/XResources_ja_JP_HI.java
rg/apache/xml/utils/res/XResources_ja_JP_I.java
rg/apache/xml/utils/res/XResources_ka.java
rg/apache/xml/utils/res/XResources_ko.java
rg/apache/xml/utils/res/XResources_sv.java
rg/apache/xml/utils/res/XResources_zh_CN.java
rg/apache/xml/utils/res/XResources_zh_TW.java
rg/apache/xpath/Arg.java
rg/apache/xpath/CachedXPathAPI.java
rg/apache/xpath/Expression.java
rg/apache/xpath/ExpressionNode.java
rg/apache/xpath/ExpressionOwner.java
rg/apache/xpath/ExtensionsProvider.java
rg/apache/xpath/FoundIndex.java
rg/apache/xpath/NodeSet.java
rg/apache/xpath/NodeSetDTM.java
rg/apache/xpath/SourceTree.java
rg/apache/xpath/SourceTreeManager.java
rg/apache/xpath/VariableStack.java
rg/apache/xpath/WhitespaceStrippingElementMatcher.java
rg/apache/xpath/XPath.java
rg/apache/xpath/XPathAPI.java
rg/apache/xpath/XPathContext.java
rg/apache/xpath/XPathException.java
rg/apache/xpath/XPathFactory.java
rg/apache/xpath/XPathProcessorException.java
rg/apache/xpath/XPathVisitable.java
rg/apache/xpath/XPathVisitor.java
rg/apache/xpath/axes/AttributeIterator.java
rg/apache/xpath/axes/AxesWalker.java
rg/apache/xpath/axes/BasicTestIterator.java
rg/apache/xpath/axes/ChildIterator.java
rg/apache/xpath/axes/ChildTestIterator.java
rg/apache/xpath/axes/ContextNodeList.java
rg/apache/xpath/axes/DescendantIterator.java
rg/apache/xpath/axes/FilterExprIterator.java
rg/apache/xpath/axes/FilterExprIteratorSimple.java
rg/apache/xpath/axes/FilterExprWalker.java
rg/apache/xpath/axes/HasPositionalPredChecker.java
rg/apache/xpath/axes/IteratorPool.java
rg/apache/xpath/axes/LocPathIterator.java
rg/apache/xpath/axes/MatchPatternIterator.java
rg/apache/xpath/axes/NodeSequence.java
rg/apache/xpath/axes/OneStepIterator.java
rg/apache/xpath/axes/OneStepIteratorForward.java
rg/apache/xpath/axes/PathComponent.java
rg/apache/xpath/axes/PredicatedNodeTest.java
rg/apache/xpath/axes/RTFIterator.java
rg/apache/xpath/axes/ReverseAxesWalker.java
rg/apache/xpath/axes/SelfIteratorNoPredicate.java
rg/apache/xpath/axes/SubContextList.java
rg/apache/xpath/axes/UnionChildIterator.java
rg/apache/xpath/axes/UnionPathIterator.java
rg/apache/xpath/axes/WalkerFactory.java
rg/apache/xpath/axes/WalkingIterator.java
rg/apache/xpath/axes/WalkingIteratorSorted.java
rg/apache/xpath/axes/package.html
rg/apache/xpath/compiler/Compiler.java
rg/apache/xpath/compiler/FunctionTable.java
rg/apache/xpath/compiler/Keywords.java
rg/apache/xpath/compiler/Lexer.java
rg/apache/xpath/compiler/OpCodes.java
rg/apache/xpath/compiler/OpMap.java
rg/apache/xpath/compiler/OpMapVector.java
rg/apache/xpath/compiler/PsuedoNames.java
rg/apache/xpath/compiler/XPathDumper.java
rg/apache/xpath/compiler/XPathParser.java
rg/apache/xpath/compiler/package.html
rg/apache/xpath/domapi/XPathStylesheetDOM3Exception.java
rg/apache/xpath/functions/FuncBoolean.java
rg/apache/xpath/functions/FuncCeiling.java
rg/apache/xpath/functions/FuncConcat.java
rg/apache/xpath/functions/FuncContains.java
rg/apache/xpath/functions/FuncCount.java
rg/apache/xpath/functions/FuncCurrent.java
rg/apache/xpath/functions/FuncDoclocation.java
rg/apache/xpath/functions/FuncExtElementAvailable.java
rg/apache/xpath/functions/FuncExtFunction.java
rg/apache/xpath/functions/FuncExtFunctionAvailable.java
rg/apache/xpath/functions/FuncFalse.java
rg/apache/xpath/functions/FuncFloor.java
rg/apache/xpath/functions/FuncGenerateId.java
rg/apache/xpath/functions/FuncId.java
rg/apache/xpath/functions/FuncLang.java
rg/apache/xpath/functions/FuncLast.java
rg/apache/xpath/functions/FuncLocalPart.java
rg/apache/xpath/functions/FuncNamespace.java
rg/apache/xpath/functions/FuncNormalizeSpace.java
rg/apache/xpath/functions/FuncNot.java
rg/apache/xpath/functions/FuncNumber.java
rg/apache/xpath/functions/FuncPosition.java
rg/apache/xpath/functions/FuncQname.java
rg/apache/xpath/functions/FuncRound.java
rg/apache/xpath/functions/FuncStartsWith.java
rg/apache/xpath/functions/FuncString.java
rg/apache/xpath/functions/FuncStringLength.java
rg/apache/xpath/functions/FuncSubstring.java
rg/apache/xpath/functions/FuncSubstringAfter.java
rg/apache/xpath/functions/FuncSubstringBefore.java
rg/apache/xpath/functions/FuncSum.java
rg/apache/xpath/functions/FuncSystemProperty.java
rg/apache/xpath/functions/FuncTranslate.java
rg/apache/xpath/functions/FuncTrue.java
rg/apache/xpath/functions/FuncUnparsedEntityURI.java
rg/apache/xpath/functions/Function.java
rg/apache/xpath/functions/Function2Args.java
rg/apache/xpath/functions/Function3Args.java
rg/apache/xpath/functions/FunctionDef1Arg.java
rg/apache/xpath/functions/FunctionMultiArgs.java
rg/apache/xpath/functions/FunctionOneArg.java
rg/apache/xpath/functions/ObjectFactory.java
rg/apache/xpath/functions/SecuritySupport.java
rg/apache/xpath/functions/SecuritySupport12.java
rg/apache/xpath/functions/WrongNumberArgsException.java
rg/apache/xpath/functions/package.html
rg/apache/xpath/jaxp/JAXPExtensionsProvider.java
rg/apache/xpath/jaxp/JAXPPrefixResolver.java
rg/apache/xpath/jaxp/JAXPVariableStack.java
rg/apache/xpath/jaxp/XPathExpressionImpl.java
rg/apache/xpath/jaxp/XPathFactoryImpl.java
rg/apache/xpath/jaxp/XPathImpl.java
rg/apache/xpath/objects/DTMXRTreeFrag.java
rg/apache/xpath/objects/XBoolean.java
rg/apache/xpath/objects/XBooleanStatic.java
rg/apache/xpath/objects/XMLStringFactoryImpl.java
rg/apache/xpath/objects/XNodeSet.java
rg/apache/xpath/objects/XNodeSetForDOM.java
rg/apache/xpath/objects/XNull.java
rg/apache/xpath/objects/XNumber.java
rg/apache/xpath/objects/XObject.java
rg/apache/xpath/objects/XObjectFactory.java
rg/apache/xpath/objects/XRTreeFrag.java
rg/apache/xpath/objects/XRTreeFragSelectWrapper.java
rg/apache/xpath/objects/XString.java
rg/apache/xpath/objects/XStringForChars.java
rg/apache/xpath/objects/XStringForFSB.java
rg/apache/xpath/objects/package.html
rg/apache/xpath/operations/And.java
rg/apache/xpath/operations/Bool.java
rg/apache/xpath/operations/Div.java
rg/apache/xpath/operations/Equals.java
rg/apache/xpath/operations/Gt.java
rg/apache/xpath/operations/Gte.java
rg/apache/xpath/operations/Lt.java
rg/apache/xpath/operations/Lte.java
rg/apache/xpath/operations/Minus.java
rg/apache/xpath/operations/Mod.java
rg/apache/xpath/operations/Mult.java
rg/apache/xpath/operations/Neg.java
rg/apache/xpath/operations/NotEquals.java
rg/apache/xpath/operations/Number.java
rg/apache/xpath/operations/Operation.java
rg/apache/xpath/operations/Or.java
rg/apache/xpath/operations/Plus.java
rg/apache/xpath/operations/Quo.java
rg/apache/xpath/operations/String.java
rg/apache/xpath/operations/UnaryOperation.java
rg/apache/xpath/operations/Variable.java
rg/apache/xpath/operations/VariableSafeAbsRef.java
rg/apache/xpath/operations/package.html
rg/apache/xpath/package.html
rg/apache/xpath/patterns/ContextMatchStepPattern.java
rg/apache/xpath/patterns/FunctionPattern.java
rg/apache/xpath/patterns/NodeTest.java
rg/apache/xpath/patterns/NodeTestFilter.java
rg/apache/xpath/patterns/StepPattern.java
rg/apache/xpath/patterns/UnionPattern.java
rg/apache/xpath/patterns/package.html
rg/apache/xpath/res/XPATHErrorResources.java
rg/apache/xpath/res/XPATHMessages.java
rg/apache/xpath/res/package.html
38e90abbe4ec0a889cb16dc673cf892274c18a01 09-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge "Remove the ExpatPullParser." into dalvik-dev
1c45ea38a7df88c22df805d048654d77d49a333d 09-Jan-2011 Jesse Wilson <jessewilson@google.com> Remove the ExpatPullParser.

Change-Id: Ie10697ed917e3f4b162b668096ced90c90f79c67
http://b/3090550
rg/apache/harmony/xml/ExpatParser.java
rg/apache/harmony/xml/ExpatPullParser.java
01b4a53b856a0f988cfc40608b26774aaa5da7de 08-Jan-2011 Elliott Hughes <enh@google.com> am 19779a98: am ce54529e: am 2532ef97: am 1c76910f: Fix libcore javadoc errors.

* commit '19779a982a2da5b928c54785b87815f829312635':
Fix libcore javadoc errors.
19779a982a2da5b928c54785b87815f829312635 08-Jan-2011 Elliott Hughes <enh@google.com> am ce54529e: am 2532ef97: am 1c76910f: Fix libcore javadoc errors.

* commit 'ce54529ec7b3b9bc278e4f97f23723680a220ace':
Fix libcore javadoc errors.
ce54529ec7b3b9bc278e4f97f23723680a220ace 08-Jan-2011 Elliott Hughes <enh@google.com> am 2532ef97: am 1c76910f: Fix libcore javadoc errors.

* commit '2532ef971058b37372bc388d8d8c8bd5eed7ecf6':
Fix libcore javadoc errors.
2f2001f2f769c710ce7ee63412d3e2580388bf4d 07-Jan-2011 Elliott Hughes <enh@google.com> Remove redundant "throws SecurityException" clauses.

These were unchecked exceptions anyway, and now they can't even be thrown.

Bug: 2585285
Change-Id: Ifc8048262fe4b1699924241944beaa6a5bf09e0a
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
ava/lang/Class.java
ava/lang/reflect/AccessibleObject.java
ava/util/logging/Handler.java
ava/util/logging/StreamHandler.java
1c4b8eb0aebfe7f99c10fb1d01716946e8e74ad7 07-Jan-2011 Elliott Hughes <enh@google.com> Remove @SuppressWarnings("nls") cruft.

Also rewrite a couple of toString methods for clarity.

Change-Id: Ic6e8c474ef87e0c0550eea2daed611ae41118229
ava/io/File.java
ava/lang/reflect/Modifier.java
ava/net/SocketImpl.java
ava/net/SocketPermission.java
ava/net/URLConnection.java
ava/nio/channels/FileLock.java
ava/security/Identity.java
ava/security/KeyFactory.java
ava/security/Provider.java
ava/text/DecimalFormat.java
ava/util/Calendar.java
ava/util/ResourceBundle.java
ava/util/logging/ErrorManager.java
ava/util/logging/FileHandler.java
ava/util/logging/Logger.java
ava/util/logging/XMLFormatter.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnectionImpl.java
87548e8585334658c3ee89050ec917a10ca35e5a 07-Jan-2011 Elliott Hughes <enh@google.com> More SecurityManager cleanup.

Bug: 2585285
Change-Id: Ib9c5fdadc1361d67227b6f82a774b76c53840ff0
ava/lang/Class.java
ava/lang/ClassLoader.java
ava/lang/SecurityManager.java
ava/lang/reflect/AccessibleObject.java
ava/net/Authenticator.java
ava/net/HttpURLConnection.java
ava/net/InetAddress.java
ava/net/URLClassLoader.java
ava/net/URLConnection.java
ava/security/AuthProvider.java
ava/security/SecureClassLoader.java
ava/security/Signer.java
ava/util/concurrent/atomic/AtomicIntegerFieldUpdater.java
ava/util/concurrent/atomic/AtomicLongFieldUpdater.java
ava/util/concurrent/atomic/AtomicReferenceFieldUpdater.java
avax/net/ssl/SSLSession.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnectionPool.java
ad41624e761bcf1af9c8008eb45187fc13983717 07-Jan-2011 Elliott Hughes <enh@google.com> Retire SecurityManager.

This change removes all the code that was calling getSecurityManager, and
removes all use of AccessController.doPrivileged. It also changes the
implementation of AccessController so it doesn't actually do anything; it's
only there for source-level compatibility.

Bug: 2585285
Change-Id: I1f0295a4f12bce0316d8073011d8593fee116f71
ava/io/BufferedWriter.java
ava/io/File.java
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/FilePermission.java
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/io/RandomAccessFile.java
ava/lang/Class.java
ava/lang/ClassLoader.java
ava/lang/Enum.java
ava/lang/ProcessBuilder.java
ava/lang/ProcessManager.java
ava/lang/Runtime.java
ava/lang/RuntimePermission.java
ava/lang/SecurityManager.java
ava/lang/System.java
ava/lang/Thread.java
ava/lang/ThreadGroup.java
ava/lang/reflect/AccessibleObject.java
ava/lang/reflect/Member.java
ava/net/AddressCache.java
ava/net/Authenticator.java
ava/net/CookieHandler.java
ava/net/DatagramSocket.java
ava/net/HttpURLConnection.java
ava/net/InetAddress.java
ava/net/InetSocketAddress.java
ava/net/MulticastSocket.java
ava/net/NetPermission.java
ava/net/NetworkInterface.java
ava/net/ProxySelector.java
ava/net/ResponseCache.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketPermission.java
ava/net/URL.java
ava/net/URLClassLoader.java
ava/net/URLConnection.java
ava/nio/DatagramChannelImpl.java
ava/nio/ServerSocketChannelImpl.java
ava/nio/SocketChannelImpl.java
ava/nio/channels/DatagramChannel.java
ava/nio/channels/ServerSocketChannel.java
ava/nio/channels/SocketChannel.java
ava/nio/channels/spi/AbstractInterruptibleChannel.java
ava/nio/channels/spi/SelectorProvider.java
ava/nio/charset/Charset.java
ava/nio/charset/spi/CharsetProvider.java
ava/security/AccessControlContext.java
ava/security/AccessController.java
ava/security/BasicPermission.java
ava/security/DomainCombiner.java
ava/security/Identity.java
ava/security/IdentityScope.java
ava/security/KeyStore.java
ava/security/Permission.java
ava/security/Policy.java
ava/security/PrivilegedAction.java
ava/security/PrivilegedActionException.java
ava/security/PrivilegedExceptionAction.java
ava/security/Provider.java
ava/security/Security.java
ava/security/Signer.java
ava/security/cert/CertPathBuilder.java
ava/security/cert/CertPathValidator.java
ava/security/cert/CertStore.java
ava/security/package.html
ava/sql/DriverManager.java
ava/util/Currency.java
ava/util/Formatter.java
ava/util/Locale.java
ava/util/Properties.java
ava/util/ResourceBundle.java
ava/util/ServiceLoader.java
ava/util/concurrent/ExecutorService.java
ava/util/concurrent/ThreadPoolExecutor.java
ava/util/jar/Pack200.java
ava/util/logging/FileHandler.java
ava/util/logging/Handler.java
ava/util/logging/LogManager.java
ava/util/logging/Logger.java
ava/util/logging/LoggingMXBean.java
ava/util/logging/LoggingPermission.java
ava/util/logging/MemoryHandler.java
ava/util/logging/SocketHandler.java
ava/util/logging/StreamHandler.java
ava/util/logging/XMLFormatter.java
ava/util/prefs/FilePreferencesImpl.java
ava/util/prefs/Preferences.java
ava/util/prefs/XMLParser.java
ava/util/zip/ZipFile.java
avax/net/ssl/KeyManagerFactory.java
avax/net/ssl/SSLServerSocketFactory.java
avax/net/ssl/SSLSocketFactory.java
avax/net/ssl/TrustManagerFactory.java
avax/security/auth/Subject.java
avax/security/auth/SubjectDomainCombiner.java
avax/security/cert/X509Certificate.java
ibcore/net/MimeUtils.java
rg/apache/harmony/lang/annotation/AnnotationFactory.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnectionPool.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnectionImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/util/PriviAction.java
rg/apache/harmony/security/fortress/DefaultPolicy.java
rg/apache/harmony/security/fortress/DefaultPolicyParser.java
rg/apache/harmony/security/fortress/PolicyUtils.java
rg/apache/harmony/security/fortress/SecurityUtils.java
rg/apache/harmony/security/fortress/Services.java
rg/apache/harmony/security/provider/cert/DRLCertFactory.java
rg/apache/harmony/security/provider/crypto/CryptoProvider.java
rg/apache/harmony/security/provider/crypto/RandomBitsSupplier.java
rg/apache/harmony/security/provider/crypto/SHA1_Data.java
rg/apache/harmony/xnet/provider/jsse/DelegatedTask.java
rg/apache/harmony/xnet/provider/jsse/JSSEProvider.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/Logger.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerFactoryImpl.java
328267d484411da5399c582d93dbabd7d4220b62 07-Jan-2011 Jesse Wilson <jessewilson@google.com> am b9f4eb77: Don\'t short-circuit Inflater.inflate() on zero-length requests.

* commit 'b9f4eb77cf7c5937fcd33d839c749900112874bd':
Don't short-circuit Inflater.inflate() on zero-length requests.
b9f4eb77cf7c5937fcd33d839c749900112874bd 07-Jan-2011 Jesse Wilson <jessewilson@google.com> Don't short-circuit Inflater.inflate() on zero-length requests.

Change-Id: I2d207ee16dd432ba4211990da21a345f81375039
http://code.google.com/p/android/issues/detail?id=11755
ava/util/zip/Inflater.java
70f0b2ce80cf20f38ed47dbf7116b16ae55b29fd 07-Jan-2011 Jesse Wilson <jessewilson@google.com> am 1c1007df: Merge "Return HTTP headers even if there is no HTTP response body."

* commit '1c1007df57b41662e60d650db918f1581b20fc45':
Return HTTP headers even if there is no HTTP response body.
1c1007df57b41662e60d650db918f1581b20fc45 06-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge "Return HTTP headers even if there is no HTTP response body."
f14bee4dbf9f724a177a85a7b73f7b0bc6df1ec0 06-Jan-2011 Jesse Wilson <jessewilson@google.com> Return HTTP headers even if there is no HTTP response body.

Also add a test to demonstrate that we've bug 7787.
http://code.google.com/p/android/issues/detail?id=7787

Change-Id: I4e320835516c05ec9e305661b5bbb1e59b278183
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
1c76910f0a0fb0cb761a4505f3be1204d6be012b 06-Jan-2011 Elliott Hughes <enh@google.com> Fix libcore javadoc errors.

Random's javadoc was pretty random, and Pattern was missing some escaping
in code samples.

Also work round droiddoc bugs that were messing up Formatter and classes
that inherited documentation from Object.

Bug: http://code.google.com/p/android/issues/detail?id=13264
Bug: 3318601
Change-Id: Iddb0c807398840191ee003bc1644d611aef4d61d
ava/lang/Object.java
ava/util/Formatter.java
ava/util/Random.java
ava/util/regex/Pattern.java
c1501e6dd3700540c8e4ecfa6afc3d66d804c057 06-Jan-2011 Elliott Hughes <enh@google.com> am 27c11c7c: Remove the last vestiges of the external allocation cruft.

* commit '27c11c7c7b1fc023cb6464bd551aceef300e39b6':
Remove the last vestiges of the external allocation cruft.
27c11c7c7b1fc023cb6464bd551aceef300e39b6 06-Jan-2011 Elliott Hughes <enh@google.com> Remove the last vestiges of the external allocation cruft.

"Missed a bit". The underlying code has gone (though the
interface is still there for now, backed by a do-nothing implementation).

Bug: 2604080
Change-Id: Iba64d1c193819560423285334dc08015fbc105b1
ava/nio/MemoryBlock.java
ava/nio/ReadWriteDirectByteBuffer.java
rg/apache/harmony/luni/platform/OSMemory.java
90aec9a1985a9c40e5e59bebbc22b574fbbf1e4a 05-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> Fix @see links

Change-Id: I432c3e402ff6a97651959891a8581be229c4b958
ava/lang/Class.java
f53b826963e357787e6eadc80af7f22e4302e54b 05-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge "Just use String for upper case/lower case operations." into dalvik-dev
a695e8fafadd2591cd148e78f19bc6d7c15121bb 05-Jan-2011 Jesse Wilson <jessewilson@google.com> Just use String for upper case/lower case operations.

Change-Id: If686975f659412c555684ed0032694e854e3aa8c
http://b/2183747
ava/lang/String.java
ava/net/URL.java
ava/security/Provider.java
ava/security/Security.java
ava/util/Locale.java
ava/util/PropertyPermission.java
ava/util/jar/JarInputStream.java
ava/util/jar/JarVerifier.java
rg/apache/harmony/luni/util/Util.java
rg/apache/harmony/security/DefaultPolicyScanner.java
rg/apache/harmony/security/Util.java
rg/apache/harmony/security/fortress/Engine.java
rg/apache/harmony/security/fortress/PolicyUtils.java
rg/apache/harmony/security/fortress/Services.java
rg/apache/harmony/security/utils/AlgNameMapper.java
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
b87641ec071d590794d7cebefaf0e8fd7fa92d7a 05-Jan-2011 Jesse Wilson <jessewilson@google.com> Merge "Fix serialization in CopyOnWriteArrayList."
803e7dbaa65a62ec77596d5ebb7218a21c4cbfaf 05-Jan-2011 Jesse Wilson <jessewilson@google.com> Fix serialization in CopyOnWriteArrayList.

Previously we were double-serializing the elements field. The behavior was
correct but the serialized data was larger than necessary.

This also addresses martinrb's other comments on the new CopyOnWriteArrayList.

Change-Id: I191e84793301e81b89718330d897bdf990c8daa6
ava/util/concurrent/CopyOnWriteArrayList.java
19a270e90b1e992c1f6639f355ae13564c2f3a6a 22-Dec-2010 Jesse Wilson <jessewilson@google.com> Fix PropertyChangeSupport problems.

The fire methods weren't delegating as the spec requires them to.

The serialization was absolutely broken. Serialization for this class
is completely wacky.

Handling of PropertyChangeEventProxy instances was also broken. This
fixes that also. The name of an added proxy filters the events that
are received by the listener.

http://b/2224874

Change-Id: I609f7bf65492264849b511e99b98092008c505d8
ava/beans/PropertyChangeSupport.java
d7fd1b88b89ca762afe5609d84a8eedfb611cbe1 07-Dec-2010 Brian Carlstrom <bdc@google.com> Adding binary hprof support to SamplingProfiler

SamplingProfiler refactored:
- HprofData is now a separate class, the common data structure
- SamplingProfiler uses HprofData as its runtime format
- AsciiHprofWriter refactored from profiler, takes an HprofData
- new BinaryHprofWriter to output HprofData in binary format
- new BinaryHprofReader can recreate HprofData from binary file
- new HprofBinaryToAscii command line tool to convert formats

dalvik/src/main/java/dalvik/system/SamplingProfiler.java

SamplingProfilerTest expanded to cover new HprofData class
directly. Includes testing of conversion from various hand constructed
HprofData to ascii and binary formats as well as from binary back to
HprofData with out loss of data.

dalvik/src/test/java/dalvik/system/SamplingProfilerTest.java

Change-Id: I6fe06f5dbdbf2f0bf2de228d9761f84d75290ba7
ibcore/base/Objects.java
6767bdbe6bb1d4542c97868d8df1f71d2414fc62 18-Dec-2010 Jesse Wilson <jessewilson@google.com> Optimize DefaultHostnameVerifier.

The only behavior change should be a bug fix. There was a heck
"cn.lastIndexOf('.') >= 0" that was always true. This has been
fixed to match the comment "require two dots".

Don't call getDNSSubjectAlts unless necessary.

Errors were created and then dropped. Now they're not created.

strictWithSubDomains was supported but unused. Now it isn't supported.

IP address parsing is now left up to the experts (InetAddress).

No more unnecessary conversions to arrays.

Before & After performance saves ~40% for google.com, which was the
only host that took more than 150 microseconds to verify:

host run us linear runtime %
www.amazon.com baseline 92.6 = 4%
www.amazon.com optimized 26.7 1%
www.google.com baseline 2,457.0 ============================== 100%
www.google.com optimized 1,421.2 ================= 58%
www.ubs.com baseline 143.2 = 6%
www.ubs.com optimized 24.4 1%

Change-Id: I42782bec6a86b95e8fa089aa6edeca45110c2fc4
http://b/2811070
avax/net/ssl/DefaultHostnameVerifier.java
54c8a07db3c2d1670c2867ba864d351cb30fecfa 17-Dec-2010 Brian Carlstrom <bdc@google.com> resolved conflicts for merge of 5fc737eb to master

Change-Id: Ifc2a4fd44cef525709a3b9dc0a502b1a0690c6fd
2915378e253f08e47fe5a9bfd026cd1ca7c6c351 16-Dec-2010 Brian Carlstrom <bdc@google.com> HttpsURLConnection retry should not invoke X509TrustManager and HostnameVerifier more than once

Summary:

In 2.3, HttpsURLConnection was change to retry TLS connections as SSL
connections w/o compression to deal with servers that are TLS
intolerant. However, if the handshake proceeded to the point of
invoking the X509TrustManager, we should not retry. Similarly, if we
should not invoke the HostnameVerifier repeatedly, and need to wait
until the SSL handshake has completed.

Tested with (includes two new tests for this issue):
libcore/luni/src/test/java/libcore/javax/net/ssl/
libcore/luni/src/test/java/libcore/java/net/URLConnectionTest.java
libcore/luni/src/test/java/org/apache/harmony/luni/tests/internal/net/www/protocol/https/HttpsURLConnectionTest.java

Details:

HttpConnection.setupSecureSocket has been broken into two
pieces. setupSecureSocket now just does the SSL
handshaking. verifySecureSocketHostname now does the
verification. The old HttpConnection code was careful never to
assign its sslSocket field until verification was complete. A new
unverifiedSocket field is added to store the sslSocket before
verification is completed by verifySecureSocketHostname.

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java

HttpsEngine.makeConnection now skips TLS intolerant retry if the
reason for the makeSslConnection failure was a
CertificateException, since that implies that we failed during
certification validation after initial handshaking. We also
prevent retrying hostname verification by moving it out of
makeSslConnection and only doing it on new SSL connections,
tracking the changes to HttpConnection.setupSecureSocket mentioned
above. We also now skip the redundant call to setUpTransportIO in
makeSslConnection on reused SSLSockets.

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java

Instead of throwing away the underlying CertificateExceptions, set
them as the cause of the SSLExceptions. This is what the RI does
in the case of X509TrustManager failures and is now used by
HttpsEngine.makeConnection.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Added new testConnectViaHttpsToUntrustedServer which makes sure
that connections are not retried on certificate verification
failure.

luni/src/test/java/libcore/java/net/URLConnectionTest.java

Added new test_SSLSocket_untrustedServer that verifies that an
SSLHandshakeException is thown containing a CertificateException
is thrown on certificate verification problems.

luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java

Added second test CA and a new TestKeyStore.getClientCA2 test key
store that does not trust the primary test key stores. This is
useful for negative testing and is used in the above two new
tests.

support/src/test/java/libcore/java/security/TestKeyStore.java

Issue: http://code.google.com/p/android/issues/detail?id=13178
Bug: 3292412

Change-Id: I37136bb65f04d2bceaf2f32f542d6432c8b76ad4
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
4f34d272f494d5b2d30e36556f1584fcc4471a83 16-Dec-2010 Elliott Hughes <enh@google.com> Merge "MappedByteBuffer get(byte[]) and get(byte[], int, int) weren't updating 'position'."
5a1e8cc38e1cc6c3f2fc66f039ca0fc5309a0dc3 16-Dec-2010 Elliott Hughes <enh@google.com> MappedByteBuffer get(byte[]) and get(byte[], int, int) weren't updating 'position'.

The majority of this change is work to extend our tests to cover
MappedByteBuffer too, plus new tests to check that 'position' is
always updated correctly by ByteBuffer's relative get/put methods.

Bug: 3291927
Change-Id: I58217de45ba65675730f30771fba592cb2af28ff
ava/nio/MappedByteBufferAdapter.java
e0cda69a87d2d429bae6c8e30d4d8ba44d889f25 16-Dec-2010 Jesse Wilson <jessewilson@google.com> More work arounds for the droiddoc bug where @links cannot point to parameterized methods.

This catches the fixes missing in change 85477.

Change-Id: Ib1a4f851148bd675f68e0d49c23a8e8e24633d89
ava/util/concurrent/BlockingDeque.java
ava/util/concurrent/BlockingQueue.java
ava/util/concurrent/PriorityBlockingQueue.java
e270027a8e421200a6af45f066c3a6aabe03aa30 16-Dec-2010 Elliott Hughes <enh@google.com> Fix a long-standing serialization bug.

Fixes a harmony test.

This patch touches two very similar-looking methods that are sadly just
different enough that we can't factor the duplication out until we can
rely on inlining.

Change-Id: I9c47f08911fea1472c2cb36b7cf94ab6a4e630aa
ava/io/EmulatedFieldsForDumping.java
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
f24bce74a497ed281de23b7e997549725557b730 16-Dec-2010 Elliott Hughes <enh@google.com> Fix a regression I introduced in serialization.

Although the serialization specification strongly implies that there
are no gaps in the allocated handles, it's not actually true of the RI
or -- presumably for bug-compatibility reasons -- of us. Serializing
anything with a field of type Class skips a handle; our EnumMapTest
found this.

By way of apology, I've thrown in a one-line fix for a long-standing
bug (no support for void).

Change-Id: I6104f8cb8e5a1476448ad65669e54f191c1a60e3
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
0d0d74323f72410d0ddc95b632c2b2fa7373ada5 16-Dec-2010 Jesse Wilson <jessewilson@google.com> Merge "Work around droiddoc bug where @links cannot point to parameterized methods."
204a5af3784bc9a69c4ffa0b412dd751af61ca7f 16-Dec-2010 Jesse Wilson <jessewilson@google.com> Work around droiddoc bug where @links cannot point to parameterized methods.

The work around is simple but unfortunate: omit the parameters. As a
consequence, some of the links will point to the wrong overload.

Change-Id: Ib0bfb82bf8fdef79e3532012b91128f680c01b6c
ava/util/concurrent/BlockingDeque.java
ava/util/concurrent/LinkedBlockingDeque.java
d7806194431c008c2ae2b546b988c0e819f7b47b 16-Dec-2010 Jesse Wilson <jessewilson@google.com> Fix java.util.concurrent to not @link to unpublished APIs.

Change-Id: I14ae9dfcf8073a86165d779fefe245c4f7fcf4e5
ava/util/concurrent/ScheduledThreadPoolExecutor.java
ava/util/concurrent/locks/AbstractQueuedSynchronizer.java
4edaaab4e1a2da9049f16d8d81b9214d589e9091 16-Dec-2010 Jesse Wilson <jessewilson@google.com> Merge "Update java.util.concurrent to the latest."
bb69cfb6798356699e34ab4fbac23938ad0fdeef 15-Dec-2010 Jesse Wilson <jessewilson@google.com> Merge "Recover from the 'null' system class loader gracefully."
59e38eb9704248b92554ce907ab7e26ddb525da2 15-Dec-2010 Elliott Hughes <enh@google.com> Use iteration rather than recursion in writeHierarchy.

There's no convincing performance difference either way in my benchmarks, but
we're using iteration in readHierarchy, and both should use the same style
unless there's a convincing reason not to.

Bug: http://code.google.com/p/android/issues/detail?id=13138
Change-Id: I857b1fa47255368ba4c5f9cc556fb9dc7f8fce6a
ava/io/ObjectOutputStream.java
9ef23e5d7f45cf120abb0e140d657bf7c79b3721 15-Dec-2010 Jesse Wilson <jessewilson@google.com> Recover from the 'null' system class loader gracefully.

Change-Id: I879f3b2ace3e22a3add83f3e4ae7749de5394a1e
http://b/3288102
ava/util/ResourceBundle.java
af338385e1cfb40a856bf11d8ddd682ea7602164 15-Dec-2010 Elliott Hughes <enh@google.com> Speed up serialization.

Rather than pay the boxing costs of using IdentityHashMap<Object, int>,
use our own specialization.

Bug: http://code.google.com/p/android/issues/detail?id=13138
Change-Id: I1f3dcc2f2c1c35fd8d8cd1b0572d809c27824bf0
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamField.java
ava/io/SerializationHandleMap.java
8eb35c835be1345d3873a82cc9e42f944d698afd 15-Dec-2010 Jesse Wilson <jessewilson@google.com> Update java.util.concurrent to the latest.

The most recent change to the upstream CVS tree was on Mon Dec 13 05:46:08 2010 UTC.

Change-Id: If863f0d501e5bb66a73e8a9a17b2853f012326e6
http://b/3090858
ava/util/concurrent/AbstractExecutorService.java
ava/util/concurrent/ArrayBlockingQueue.java
ava/util/concurrent/BlockingDeque.java
ava/util/concurrent/BlockingQueue.java
ava/util/concurrent/ConcurrentHashMap.java
ava/util/concurrent/ConcurrentLinkedDeque.java
ava/util/concurrent/ConcurrentLinkedQueue.java
ava/util/concurrent/ConcurrentNavigableMap.java
ava/util/concurrent/ConcurrentSkipListMap.java
ava/util/concurrent/ConcurrentSkipListSet.java
ava/util/concurrent/CopyOnWriteArraySet.java
ava/util/concurrent/CountDownLatch.java
ava/util/concurrent/CyclicBarrier.java
ava/util/concurrent/DelayQueue.java
ava/util/concurrent/Delayed.java
ava/util/concurrent/Exchanger.java
ava/util/concurrent/Executor.java
ava/util/concurrent/ExecutorCompletionService.java
ava/util/concurrent/ExecutorService.java
ava/util/concurrent/Executors.java
ava/util/concurrent/Future.java
ava/util/concurrent/FutureTask.java
ava/util/concurrent/LinkedBlockingDeque.java
ava/util/concurrent/LinkedBlockingQueue.java
ava/util/concurrent/PriorityBlockingQueue.java
ava/util/concurrent/ScheduledExecutorService.java
ava/util/concurrent/ScheduledThreadPoolExecutor.java
ava/util/concurrent/Semaphore.java
ava/util/concurrent/SynchronousQueue.java
ava/util/concurrent/ThreadPoolExecutor.java
ava/util/concurrent/TimeUnit.java
ava/util/concurrent/atomic/AtomicIntegerArray.java
ava/util/concurrent/atomic/AtomicIntegerFieldUpdater.java
ava/util/concurrent/atomic/AtomicLong.java
ava/util/concurrent/atomic/AtomicLongArray.java
ava/util/concurrent/atomic/AtomicLongFieldUpdater.java
ava/util/concurrent/atomic/AtomicMarkableReference.java
ava/util/concurrent/atomic/AtomicReferenceArray.java
ava/util/concurrent/atomic/AtomicReferenceFieldUpdater.java
ava/util/concurrent/atomic/AtomicStampedReference.java
ava/util/concurrent/locks/AbstractQueuedLongSynchronizer.java
ava/util/concurrent/locks/AbstractQueuedSynchronizer.java
ava/util/concurrent/locks/Condition.java
ava/util/concurrent/locks/LockSupport.java
ava/util/concurrent/locks/ReentrantLock.java
ava/util/concurrent/locks/ReentrantReadWriteLock.java
ava/util/concurrent/package-info.java
736e9fcc8bab781702e4a417b64981a8d1fa6ef3 15-Dec-2010 Jesse Wilson <jessewilson@google.com> am b84e9595: am c6dae581: Throw the expected exception after the response failed.

* commit 'b84e9595d2dff0d473be0699f3c8b06be2337712':
Throw the expected exception after the response failed.
6c9fda83af2a99ab25cf5ad0487c6d4c6f1e7cb1 15-Dec-2010 Elliott Hughes <enh@google.com> A last bit of serialization performance on the deserialization side.

There's no point converting a Class<?> to a char and then doing (effectively)
an if-else on the char when we can do it on the Class<?> directly. With this
change, the profile for deserialization is quite reasonable: mostly object
creation and ploughing through the bytes. We'll benefit from future Arrays
work, but that's for another day.

Bug: http://code.google.com/p/android/issues/detail?id=13138
Change-Id: I67aa237c4176e443f7ecdc12f0534cc2f3df5076
ava/io/ObjectInputStream.java
c6dae581716b9362a5c7f166c80a7f2b46ed1124 06-Nov-2010 Jesse Wilson <jessewilson@google.com> Throw the expected exception after the response failed.

Change-Id: I4c2ed726d41d6b55e27a503467a412fa05242383
http://b/3172197
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
08d5f1955b94e07e337c59b63a7051879fa3bbef 15-Dec-2010 Elliott Hughes <enh@google.com> More serialization performance.

Similar to caching the ObjectStreamClass hierarchy, cache the Class<?>
hierarchy.

Bug: http://code.google.com/p/android/issues/detail?id=13138
Change-Id: Idb115f2d80224ee9809461b58d0fef1abfc7ac30
ava/io/ObjectInputStream.java
46241f2f67d7b90e20f3301861f807f330687821 14-Dec-2010 Elliott Hughes <enh@google.com> More serialization performance work.

Cache the ObjectStreamClass hierarchy. Serialization needs to traverse this
from root to leaf but we don't have links in that direction. This patch
ensures we at least only compute it once.

Bug: http://code.google.com/p/android/issues/detail?id=13138
Change-Id: Ia7e8f5cc431ddba5db72ef3cb2d24bdf8e263de2
ava/io/ObjectInputStream.java
ava/io/ObjectStreamClass.java
78a12feba0024bddcf229c15c108ae73f3854ada 14-Dec-2010 Elliott Hughes <enh@google.com> Merge "More serialization performance improvements."
6523532145f06d8c208ed7a9374d3ab6d8132e66 14-Dec-2010 Elliott Hughes <enh@google.com> More serialization performance improvements.

Cache more work and don't use a Map of Integers for a range of
integers that's defined to be dense, just because they don't start at 0.

Bug: http://code.google.com/p/android/issues/detail?id=13138
Change-Id: Ie73d0bb946892f86165fca78da10bbcf64322570
ava/io/ObjectInputStream.java
ava/io/ObjectStreamClass.java
618a6252728c65b1d4b1577b308bcc33c095325d 14-Dec-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix a couple of failing ResourceBundle tests."
2c98427a50610d4991e9b0ada6cbc7aceb194580 14-Dec-2010 Jesse Wilson <jessewilson@google.com> Fix a couple of failing ResourceBundle tests.

We weren't clearing the cache when the default locale changed.

We were attempting to re-parse the locale string after we'd
converted it to a file extension like "_en_US". This was failing.
The new code doesn't parse the locale string. It also simplifies
("strips") the locale as a locale and not as a string.

Change-Id: I1512b105f2af1ac66e54edd82ae55630258dae31
ava/util/ResourceBundle.java
0234a78c135aeb3f5682a16a69a19a8964dfc0c2 14-Dec-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix two {@link} problems in CopyOnWriteArrayList."
a57abd43935b5d1ee8e226ceb0c8f3c3c9da8f59 14-Dec-2010 Jesse Wilson <jessewilson@google.com> Fix two {@link} problems in CopyOnWriteArrayList.

One @link was supposed to point to lastIndexOf; that was a typo.

DroidDoc is choking on the #indexOf(Object,int) overload; I'll drop
the method list which should make it happy.

Change-Id: I79cc3548d628ad3380b9f3d0d7c03f606a3c8801
ava/util/concurrent/CopyOnWriteArrayList.java
32ef29bcbfdce08d58ea72bd15a12a96065bdbb6 13-Dec-2010 Elliott Hughes <enh@google.com> Make deserialization 30% faster.

Cache the constructor we need, rather than looking it up each time.

Bug: http://code.google.com/p/android/issues/detail?id=13138
Change-Id: I33f34d2e566c8a39296b7e820cab2d2c535d84e8
ava/io/ObjectInputStream.java
ava/io/ObjectStreamClass.java
3ce783438eccf18d0ad538d911585043b5d1b2b4 11-Dec-2010 Jesse Wilson <jessewilson@google.com> Rewrite CopyOnWriteArrayList from scratch.

The previous implementation has many structural problems motivating
this rewrite. In particular, changes to sublists behaved quite
inconsistently with the RI.

This passes the tests in the Google Collections test suite.

Change-Id: I49c4a50659ef1f35dbff4abdd596d7fda815bcfe
http://b/3270784
ava/util/concurrent/CopyOnWriteArrayList.java
9b255360071b7e07bf5ce68010b0497ff7ce61e7 13-Dec-2010 Elliott Hughes <enh@google.com> Merge "Lots more bounds-checking/exception-throwing consistency."
a1603838fe9e865575c87982e32c6343740e464c 11-Dec-2010 Elliott Hughes <enh@google.com> Lots more bounds-checking/exception-throwing consistency.

Overflow-safe checks all round, plus better detail messages. This isn't
quite everything, but it's a large chunk of the work. Most notably, this
is all of io and nio.

There are numerous changes of exception priority here, and the harmony
tests noticed a subset of them in the nio code. I've modified our checked-out
copy of the tests to accept any of the throwable exceptions.

Change-Id: Id185f1228fb9a1d5fc9494e78375b5623fb0fe14
ava/io/BufferedInputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/io/ByteArrayInputStream.java
ava/io/ByteArrayOutputStream.java
ava/io/CharArrayWriter.java
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/InputStreamReader.java
ava/io/LineNumberReader.java
ava/io/OutputStream.java
ava/io/OutputStreamWriter.java
ava/io/PipedInputStream.java
ava/io/PipedReader.java
ava/io/PipedWriter.java
ava/io/PushbackReader.java
ava/io/RandomAccessFile.java
ava/io/Reader.java
ava/io/SequenceInputStream.java
ava/io/StringWriter.java
ava/lang/AbstractStringBuilder.java
ava/lang/Character.java
ava/lang/StringBuffer.java
ava/net/DatagramPacket.java
ava/nio/Buffer.java
ava/nio/ByteBuffer.java
ava/nio/CharArrayBuffer.java
ava/nio/CharBuffer.java
ava/nio/CharSequenceAdapter.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DatagramChannelImpl.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleArrayBuffer.java
ava/nio/DoubleBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FileChannelImpl.java
ava/nio/FloatArrayBuffer.java
ava/nio/FloatBuffer.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/HeapByteBuffer.java
ava/nio/IntArrayBuffer.java
ava/nio/IntBuffer.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongArrayBuffer.java
ava/nio/LongBuffer.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/ReadOnlyCharArrayBuffer.java
ava/nio/ReadOnlyFileChannel.java
ava/nio/ReadWriteCharArrayBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ReadWriteDoubleArrayBuffer.java
ava/nio/ReadWriteFloatArrayBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
ava/nio/ReadWriteIntArrayBuffer.java
ava/nio/ReadWriteLongArrayBuffer.java
ava/nio/ReadWriteShortArrayBuffer.java
ava/nio/ShortArrayBuffer.java
ava/nio/ShortBuffer.java
ava/nio/ShortToByteBufferAdapter.java
ava/nio/SocketChannelImpl.java
ava/nio/WriteOnlyFileChannel.java
ava/util/Arrays.java
ava/util/BitSet.java
ava/util/zip/DeflaterInputStream.java
ava/util/zip/InflaterOutputStream.java
ava/util/zip/ZipOutputStream.java
ibcore/base/Streams.java
rg/apache/harmony/security/provider/crypto/SHA1_MessageDigestImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
36c57efebc58bc840d4ce8946b56b8a29e8884b5 11-Dec-2010 Stan Chesnutt <chesnutt@google.com> Export ANY and ALL as constant InetAddress objects for use by framework
classes. ALL is newly-created in this CL.

Change-Id: I7e896a8d0ce7d897643bb2b878981e8c90760419
ava/net/Inet4Address.java
1294cc5f777bce3fbc88e65d8c67cdf9b8d433c1 10-Dec-2010 Stan Chesnutt <chesnutt@google.com> DatagramSocket.setNetworkInterface() allows a socket to be bound to a
network interface using the SO_BINDTODEVICE socket option.

Change-Id: I9598981f0d8f633de0b591db858960b1fea2e4e8
ava/net/DatagramSocket.java
ava/net/SocketOptions.java
77c63119661ac0aa3bda02a94e5f4a10de145d8a 10-Dec-2010 Jesse Wilson <jessewilson@google.com> am b51a2385: am fcd6cf98: Fix various issues in CopyOnWriteArrayList discovered by Google Collections\' test suite:

* commit 'b51a23852b6e974fc0029e0fbb7c74e333dcfeaa':
Fix various issues in CopyOnWriteArrayList discovered by Google Collections' test suite:
5bbfa5c19740eceffe0defb3062ccf7393bce922 10-Dec-2010 Elliott Hughes <enh@google.com> Merge "Adds new RawSocket class (and underlying jni implementation). This is a utility class for an experimental Java implementation of dhcp. The client DHCP implementation needs to construct, send, receive, and parse raw L2 packets before the network interface is configured with an IP address. Current Java networking classes do not work with unconfigured network interfaces."
fcd6cf989712aabe2826655df490d73e2240fb21 10-Dec-2010 Jesse Wilson <jessewilson@google.com> Fix various issues in CopyOnWriteArrayList discovered by Google Collections' test suite:

Fixed CopyOnWriteArrayList problems:
- addAll() doesn't return true if the collection is empty
- clear() fails on an empty list
- containsAll() doesn't return true if the collection is empty
- subList() fails on an empty range
- subList() doesn't implement equals(), hashCode() or toString()

Fixed CopyOnWriteArraySet problems:
- addAll() adds duplicates if the added collection contains duplicates
- equals() throws NullPointerException if this is empty

The following issues aren't fixed:
- the iterator throws UnsupportedOperationException when it should throw
IllegalStateException
- sublists don't reflect non-structural changes in the underlying list

http://b/3270784
Change-Id: I8c174e4ceda1ff964e2ad8224fa7338dac552288
ava/util/concurrent/CopyOnWriteArrayList.java
975dc421bdf9f207ed88b3fbedbba558f0f62c3c 10-Dec-2010 Stan Chesnutt <chesnutt@google.com> Adds new RawSocket class (and underlying jni implementation). This is a
utility class for an experimental Java implementation of dhcp. The client
DHCP implementation needs to construct, send, receive, and parse raw L2
packets before the network interface is configured with an IP address. Current
Java networking classes do not work with unconfigured network interfaces.

Change-Id: I4dd0133868da5b84bd2a471c33173d4c056c34e8
ibcore/net/RawSocket.java
9ae5315ae9d993fc099e98d25f42a42e6be80ee0 09-Dec-2010 Elliott Hughes <enh@google.com> am b46dab34: Rewrite all backwards comparisons.

* commit 'b46dab348e2007bc08abaf7ecae34d89a2474e50':
Rewrite all backwards comparisons.
b46dab348e2007bc08abaf7ecae34d89a2474e50 09-Dec-2010 Elliott Hughes <enh@google.com> Rewrite all backwards comparisons.

Strictly, all the ones I could find. This is everything with 0 or null on the
left-hand side.

Note that this touches several incorrect bounds checks, which I haven't fixed:
I'm going to come back and finish that independent cleanup separately.

Change-Id: Ibdb054b53df9aace47c7d2a00ff19122190053e8
ava/io/CharArrayWriter.java
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/io/Reader.java
ava/io/StreamTokenizer.java
ava/io/StringWriter.java
ava/io/Writer.java
ava/lang/AbstractStringBuilder.java
ava/lang/Character.java
ava/lang/String.java
ava/net/Authenticator.java
ava/net/CookieHandler.java
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/JarURLConnection.java
ava/net/MulticastSocket.java
ava/net/Proxy.java
ava/net/Socket.java
ava/net/SocketOptions.java
ava/nio/DatagramChannelImpl.java
ava/nio/FileChannelImpl.java
ava/nio/ReadOnlyFileChannel.java
ava/nio/SelectorImpl.java
ava/nio/ServerSocketChannelImpl.java
ava/nio/SocketChannelImpl.java
ava/nio/WriteOnlyFileChannel.java
ava/nio/channels/SocketChannel.java
ava/nio/channels/spi/AbstractSelectableChannel.java
ava/nio/channels/spi/SelectorProvider.java
ava/nio/charset/CharsetDecoder.java
ava/nio/charset/CoderResult.java
ava/security/KeyStore.java
ava/security/Provider.java
ava/sql/DriverManager.java
ava/text/AttributedString.java
ava/text/DecimalFormat.java
ava/util/AbstractList.java
ava/util/Calendar.java
ava/util/Collections.java
ava/util/EnumMap.java
ava/util/FormatFlagsConversionMismatchException.java
ava/util/Formatter.java
ava/util/LinkedList.java
ava/util/MissingFormatArgumentException.java
ava/util/MissingFormatWidthException.java
ava/util/PriorityQueue.java
ava/util/ResourceBundle.java
ava/util/Scanner.java
ava/util/TreeSet.java
ava/util/Vector.java
ava/util/jar/JarEntry.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
ava/util/logging/FileHandler.java
ava/util/logging/Formatter.java
ava/util/logging/Handler.java
ava/util/logging/LogManager.java
ava/util/logging/LogRecord.java
ava/util/logging/MemoryHandler.java
ava/util/logging/SimpleFormatter.java
ava/util/logging/SocketHandler.java
ava/util/logging/StreamHandler.java
ava/util/logging/XMLFormatter.java
ava/util/prefs/AbstractPreferences.java
ava/util/prefs/FilePreferencesImpl.java
ava/util/prefs/Preferences.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/util/TwoKeyHashMap.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
daae09bafc06badb3c2d7e088cc216e511bcb8e4 09-Dec-2010 Elliott Hughes <enh@google.com> am ccedfac1: Merge "Fix a bunch of javac -Xlint warnings in our code."

* commit 'ccedfac1d04b7f9c4df4a144f80283f7af69a9d6':
Fix a bunch of javac -Xlint warnings in our code.
866e7ae17a3da81a02b0b144e0c9c2b3196d293a 09-Dec-2010 Elliott Hughes <enh@google.com> Fix a bunch of javac -Xlint warnings in our code.

I think "fallthrough" uncovered a couple of real bugs in the kxml code, but
other than that there's nothing very exciting here. This addresses all but
one of the non-xml warnings. I'm assuming that we'll move the xml cruft out
into external at some point (since we're deliberately not maintaining it).

Change-Id: Ice81253b019df7b19d6557e719663b7bdc11fb22
ava/lang/Class.java
ava/lang/reflect/AccessibleObject.java
ava/security/cert/PKIXParameters.java
ava/security/cert/X509CertSelector.java
ava/text/RuleBasedCollator.java
ava/util/Properties.java
ava/util/concurrent/atomic/AtomicReferenceArray.java
ava/util/zip/InflaterInputStream.java
ibcore/icu/CharsetDecoderICU.java
ibcore/icu/CharsetEncoderICU.java
ibcore/icu/CollationElementIteratorICU.java
ibcore/icu/NativeBreakIterator.java
ibcore/icu/NativeDecimalFormat.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
rg/apache/harmony/luni/util/FloatingPointParser.java
rg/apache/harmony/security/PolicyEntry.java
rg/apache/harmony/security/fortress/DefaultPolicy.java
rg/apache/harmony/security/provider/crypto/SHA1_MessageDigestImpl.java
rg/apache/harmony/security/x501/AttributeValue.java
rg/apache/harmony/security/x501/Name.java
rg/apache/harmony/security/x509/DNParser.java
rg/apache/harmony/security/x509/Extensions.java
rg/apache/harmony/security/x509/ReasonCode.java
3ba7d47a9f7a745c2bb6943764617db308a38fa6 09-Dec-2010 Jesse Wilson <jessewilson@google.com> am c8104b03: Merge "Change TextAttribute constants to be consistent with the test and RI."

* commit 'c8104b0342382481704c6662af33968595ad6ab6':
Change TextAttribute constants to be consistent with the test and RI.
b35a6e9a1bb646c39a838d8cadbd12db0719b745 09-Dec-2010 Jesse Wilson <jessewilson@google.com> Change TextAttribute constants to be consistent with the test and RI.

Change-Id: I0550bb7ef4701685ef9bf87874789c3d441fc701
ava/awt/font/TextAttribute.java
97db5b18334137e198322e5497e3e8842d21cda1 09-Dec-2010 Elliott Hughes <enh@google.com> am f21135bc: Go with Class<?> for Object.getClass after all...

* commit 'f21135bc13bc7db3a291ffa5a98255963873324a':
Go with Class<?> for Object.getClass after all...
f21135bc13bc7db3a291ffa5a98255963873324a 09-Dec-2010 Elliott Hughes <enh@google.com> Go with Class<?> for Object.getClass after all...

We'll update-api to track this non-change.

Change-Id: Ia6a0ef29d80b8dafd08fe7b29cdd69a7341d7f17
ava/lang/Object.java
a292a6ac8be17c2bdc9af1060d7f5aa57b28107c 09-Dec-2010 Elliott Hughes <enh@google.com> am 69257cc2: Work around droiddoc lossage.

* commit '69257cc25dfdb409d311c18a130c1992eb2ce421':
Work around droiddoc lossage.
69257cc25dfdb409d311c18a130c1992eb2ce421 09-Dec-2010 Elliott Hughes <enh@google.com> Work around droiddoc lossage.

Change-Id: I571f94c9d78f6dd069290a14559391a82a38c690
ava/lang/Object.java
25744ea2da208119434c6b938539506c670add07 09-Dec-2010 Jesse Wilson <jessewilson@google.com> am ce2da1ca: Merge "Fix an IndexOutOfBounds error found by OldBigDecimalScaleOperationsTest."

* commit 'ce2da1ca8ec9081cfc685f53f708ab1f62e79a4c':
Fix an IndexOutOfBounds error found by OldBigDecimalScaleOperationsTest.
ce2da1ca8ec9081cfc685f53f708ab1f62e79a4c 09-Dec-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix an IndexOutOfBounds error found by OldBigDecimalScaleOperationsTest."
8892d3288ea20a71608691fbc014d0c9033f4791 09-Dec-2010 Elliott Hughes <enh@google.com> am 2fc5dcd5: Apply various Intellij quick fixes to java.lang.

* commit '2fc5dcd5614f910f25d794d272834752a72e63b1':
Apply various Intellij quick fixes to java.lang.
2fc5dcd5614f910f25d794d272834752a72e63b1 09-Dec-2010 Elliott Hughes <enh@google.com> Apply various Intellij quick fixes to java.lang.

There's one real bug here: our Integer.toString was supposed to have a cache
for small negative values, but an accidentally-introduced temporary meant we
were never using the cached values. Other than that, this is just cleanup.

Change-Id: I457f9bd166c9a029ba8b439f3bbfa926f9b84cc9
ava/lang/Byte.java
ava/lang/CaseMapper.java
ava/lang/Character.java
ava/lang/Class.java
ava/lang/ClassCache.java
ava/lang/ClassCastException.java
ava/lang/ClassLoader.java
ava/lang/Compiler.java
ava/lang/EmptyEnumeration.java
ava/lang/Enum.java
ava/lang/Integer.java
ava/lang/IntegralToString.java
ava/lang/Long.java
ava/lang/Math.java
ava/lang/Object.java
ava/lang/Package.java
ava/lang/ProcessBuilder.java
ava/lang/ProcessManager.java
ava/lang/RealToString.java
ava/lang/Runtime.java
ava/lang/StackOverflowError.java
ava/lang/StrictMath.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
ava/lang/System.java
ava/lang/ThreadDeath.java
ava/lang/ThreadLocal.java
ava/lang/VMClassLoader.java
ava/lang/VMThread.java
ava/lang/Void.java
2850a53dfbd0c172aedaec3493aad572a5ec023d 09-Dec-2010 Jesse Wilson <jessewilson@google.com> Fix an IndexOutOfBounds error found by OldBigDecimalScaleOperationsTest.

Change-Id: I60476fd07e1a985af2d9238d4f425fab84bd59b5
ava/math/BigDecimal.java
434c4bd65a469623136004ab930856820e7e14c9 09-Dec-2010 Elliott Hughes <enh@google.com> am 44a9f03a: Improve StringIndexOutOfBoundsException throwing.

* commit '44a9f03a2d602c7179112284d878b0db9284eb30':
Improve StringIndexOutOfBoundsException throwing.
44a9f03a2d602c7179112284d878b0db9284eb30 08-Dec-2010 Elliott Hughes <enh@google.com> Improve StringIndexOutOfBoundsException throwing.

Better, more-consistent detail messages, more regular naming, plus use of
the one true bounds-checking idiom (including reversal of sense to reduce
unnecessary indentation).

(The lack of an inlining JIT means that I couldn't factor the bounds checking
out, but at least we're working towards full duplicates rather than
near-duplicates!)

Change-Id: I59ded68169067305e747d30801c79a4c13f521b2
ava/io/BufferedWriter.java
ava/io/CharArrayWriter.java
ava/io/OutputStreamWriter.java
ava/io/Writer.java
ava/lang/AbstractStringBuilder.java
ava/lang/String.java
ava/lang/StringIndexOutOfBoundsException.java
bf28725d4e9eb3767abbbf48b8c342ff643f806a 08-Dec-2010 Elliott Hughes <enh@google.com> am 0515ea0a: Fix a flipped detail message thrown by Collections.copy.

* commit '0515ea0a581f329bce4f8174e098b653fb04979e':
Fix a flipped detail message thrown by Collections.copy.
0515ea0a581f329bce4f8174e098b653fb04979e 08-Dec-2010 Elliott Hughes <enh@google.com> Fix a flipped detail message thrown by Collections.copy.

Change-Id: I2e57959e7267607d484cfe177e5619de960ba0fb
ava/util/Collections.java
20edd9ea27e17cbcb211ea025194161e372906fb 08-Dec-2010 Elliott Hughes <enh@google.com> Fix build (javadoc).

Change-Id: Iaa633e677035a527228d1de6f24e30fceb08965b
ava/io/FilterReader.java
10de12115591b8fa0c3814aac8a3df7b51ffa8bb 08-Dec-2010 Elliott Hughes <enh@google.com> Slightly improved javadoc for FilterInputStream.skip.

Change-Id: I673088ef13e082657ba27dd9f1c44574ba0e4bdf
ava/io/FilterInputStream.java
67d38e62ce505fb37b205d89485a91af7862b4ef 08-Dec-2010 Elliott Hughes <enh@google.com> Merge "Fix InflaterInputStream and ZipInputStream's skip methods' behavior with negative counts." into dalvik-dev
f9480f317cddcec859025833b748f096247a40aa 08-Dec-2010 Elliott Hughes <enh@google.com> Fix InflaterInputStream and ZipInputStream's skip methods' behavior with negative counts.

This fixes a couple of harmony tests. I've also cleaned up all the names to be
of the form <x>Count. I haven't made much of an effort to improve the
documentation because these methods aren't all identical and I don't have a
good tool for doing large-scale javadoc consolidation.

Change-Id: Ia11f78cbe7c17959d50709af03042aa7541733a0
ava/io/BufferedInputStream.java
ava/io/BufferedReader.java
ava/io/ByteArrayInputStream.java
ava/io/CharArrayReader.java
ava/io/FilterReader.java
ava/io/InputStream.java
ava/io/LineNumberInputStream.java
ava/io/LineNumberReader.java
ava/io/ObjectInput.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/Reader.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/ZipFile.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLInputStream.java
d255e73a1f4801c744cc85a07bde7c8e9df8741e 08-Dec-2010 Brian Carlstrom <bdc@google.com> Merge "KeyManager.choose* methods should tolerate null key types"
8272b935bd238a37846ea76b8fcfe297abe1c7ee 08-Dec-2010 Brian Carlstrom <bdc@google.com> KeyManager.choose* methods should tolerate null key types

This regression was found by X509KeyManagerTest and now
KeyManagerFactoryTest covers it as well. The underlying problem was
introduced recently when KeyManagerImpl was updated to support key
types with specific signature algorithms like EC_RSA and EC_EC.

Change-Id: Ic99ab10e5ba07e990dc0e8a2d257c2167f2d33bb
rg/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java
57192e68f53e80ac1effae04f23d91f4cf162eea 08-Dec-2010 Elliott Hughes <enh@google.com> Improve a comment.

Including the identifier that must not be renamed in the comment
explaining that it must not be renamed is my standard trick for
increasing the chances that the comment will actually be read
when someone does a global find/replace. I should have done that
here.

Change-Id: I39f9bab628beea7e5b32a71e23d348a3c75f5a6a
ava/util/zip/Deflater.java
fa9647657b7c3ebb13d6e5e7dace3cf23f7189fd 08-Dec-2010 Elliott Hughes <enh@google.com> Rename a java.util.zip.Deflater field for RI compatibility.

This caused trouble for GSF.

Change-Id: Icbc041664ae7e365e4bdf658b33b26ee2aeb2048
ava/util/zip/Deflater.java
f275cbd60bd57e7bccefb521685c2f05c0dafbb4 08-Dec-2010 Elliott Hughes <enh@google.com> Minor cleanup of java.lang.Character.

Change-Id: Ib010ae1e125583738ac4985c94f65d4e223db41b
ava/lang/Character.java
2fcd1d20dae01349a5ed10689afef412f3950c96 07-Dec-2010 Elliott Hughes <enh@google.com> Merge "Throw better exceptions if an Inflater or Deflater is used after calling end."
aee3e4d2e0a2830fc2ef8e96a13796d012becab2 07-Dec-2010 Elliott Hughes <enh@google.com> Throw better exceptions if an Inflater or Deflater is used after calling end.

Bug: 3217912
Change-Id: I480c92d2f97b530f17b9b8daf2549d2f06384219
ava/util/zip/Deflater.java
ava/util/zip/Inflater.java
8e14d32ce621c7a48aa4d72db5bfda6b3079944a 07-Dec-2010 Glenn Kasten <gkasten@google.com> Merge "Fix documentation error"
1f0c4ff5de23e466032f1810172f16ad0077fa65 07-Dec-2010 Jesse Wilson <jessewilson@google.com> Fix InetAddress tests that fail on the host.

Most of the fixes are to the tests. The InetAddress.getByAddress()
method has been changed to keep the user-reported host name.

Change-Id: I204caa5b975693144096e4ae1960682018c254d8
http://b/3238788
ava/net/InetAddress.java
31b86dc55b7ef76d7d0ac47132c7f1cd4a45ee58 15-Nov-2010 Glenn Kasten <gkasten@google.com> Fix documentation error

Change-Id: I1026a2ad0ff91823835b139e999fa5f21299a5a4
ava/util/Random.java
8fd0225a5c3918fe0cd4680258388985c25533e5 06-Dec-2010 Jesse Wilson <jessewilson@google.com> Fix some of the most obvious bugs in URLStreamHandler's URL parsing.

Change-Id: I73ce6ccc169405e993d572ac3bf3af9ba39699c9
http://b/2753295
http://code.google.com/p/android/issues/detail?id=12724
ava/net/URLStreamHandler.java
b9cc455ed89df1a0cf4186c92b352c9649995d96 04-Dec-2010 Elliott Hughes <enh@google.com> Use our canonical Arrays range-checking methods.

There are a handful of manual range-checkers left, thanks to specified
API that throws IllegalArgumentException instead, and a few other weird
cases.

Change-Id: I80914c2257288fc184100545aff4fd6f57bf32c9
ava/io/BufferedOutputStream.java
ava/io/CharArrayReader.java
ava/io/FilterOutputStream.java
ava/io/InputStream.java
ava/io/LineNumberInputStream.java
ava/io/ObjectInputStream.java
ava/io/PrintStream.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/lang/AbstractStringBuilder.java
ava/util/ArrayList.java
ava/util/Arrays.java
ava/util/Collections.java
ava/util/ComparableTimSort.java
ava/util/DualPivotQuicksort.java
ava/util/TimSort.java
ava/util/Vector.java
ava/util/zip/Adler32.java
ava/util/zip/CRC32.java
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/GZIPInputStream.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/ZipInputStream.java
avax/crypto/spec/IvParameterSpec.java
avax/crypto/spec/RC5ParameterSpec.java
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/ChunkedInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/ChunkedOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/FixedLengthInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/FixedLengthOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/RetryableOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/UnknownLengthHttpInputStream.java
rg/apache/harmony/luni/net/SocketInputStream.java
rg/apache/harmony/luni/net/SocketOutputStream.java
4e872ddaa8763051bcabe5ab804e677a39fa94dd 03-Dec-2010 Brian Carlstrom <bdc@google.com> Fix javadoc typo

Change-Id: I3091e65c04c582e633bddbe0674f5e26814a7057
ava/util/zip/Deflater.java
5501a3d4b3d7657c183ed5446fe67fa011fbf70b 03-Dec-2010 Elliott Hughes <enh@google.com> Comments/javadoc should be in en_US, not en_CA.

Change-Id: Ie9dde4971e0a6a8dadd14af43d631158fc488cd8
ava/io/ByteArrayInputStream.java
ava/net/URI.java
ava/nio/FileChannelImpl.java
ava/text/DecimalFormat.java
avax/xml/transform/ErrorListener.java
avax/xml/transform/Transformer.java
avax/xml/validation/SchemaFactory.java
ibcore/icu/CharsetDecoderICU.java
ibcore/icu/CharsetEncoderICU.java
rg/apache/harmony/luni/internal/net/www/protocol/file/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/xml/dom/DOMConfigurationImpl.java
7bf1b45888a5e48919abc720942be648ea3c6b1a 03-Dec-2010 Elliott Hughes <enh@google.com> Merge "Slight cleanup of java.util.zip code, plus a bug fix." into dalvik-dev
2d9c5fa8ce0182cd8c14736241b709fd50cab6f8 23-Nov-2010 Elliott Hughes <enh@google.com> Slight cleanup of java.util.zip code, plus a bug fix.

The key fix is switching to zstream's next_in and next_out fields (the
pointers into the input and output buffers) rather than relying on the
integer "accounting" fields. If turns out in the Z_NEED_DICT case that
the accounting goes slightly awry. (We shouldn't have been using the
accounting anyway, because we were silently coercing longs to ints.)
The new code is simpler, clearer, and doesn't need a special case for
Z_NEED_DICT at all.

I've also removed yet another hand-written UTF-8 encoder, made Inflater
throw ArrayIndexOutOfBoundsExceptions with useful detail messages (factored
out into Arrays so we can make this change more widely), and
rewritten the Inflater and Deflater documentation.

The unit test reproduces the problem (and tests as many other cases as
it can too). Critical for testing this bug is that we needed to limit
the size of the input buffer so that zlib has to ask us for more input.

Bug: 3220923
Change-Id: I39e5456620eaa7f75d12d885db279f009ee3e8ef
ava/util/Arrays.java
ava/util/zip/Deflater.java
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/Inflater.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/ZipInputStream.java
ava/util/zip/ZipOutputStream.java
35eef71e8ce721c4199c525890ecc1a263054596 02-Dec-2010 Jesse Wilson <jessewilson@google.com> Fix two bugs with HTTPS + file uploads.

Firstly, we weren't echoing calls to setFixedLengthStreamingMode
and setChunkedStreamingMode from the HTTPS adapter down to the
real HTTP client.

Secondly, we were calling setTransportIO twice, and the second
call destroyed the buffer of our request body stream. That buffer
has only existed since change Id22a8449118a4b8dd13e71915700ac78803d2d9f,
(November 2, 2010) so the impact of that problem is limited.

Change-Id: Icb0eb2e0ca4e201a629bd74c3b98e852f6cc0fd3
http://code.google.com/p/android/issues/detail?id=12860
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
e4bffb86e1105470e6f99affb377716e34b53c71 02-Dec-2010 Jesse Wilson <jessewilson@google.com> Fix enum serialization.

We were looking up the declared field, which didn't look at the supertype recursively.

Change-Id: I65b13d08de021fedbe95e5b1cd8be15c8873483a
http://b/3246570
ava/io/ObjectOutputStream.java
ffeba5dd766602f6e2be9caa9081744348a53c04 01-Dec-2010 Brian Carlstrom <bdc@google.com> Add support for TLS_EMPTY_RENEGOTIATION_INFO_SCSV cipher suite

"TLS_EMPTY_RENEGOTIATION_INFO_SCSV" is RFC 5746's renegotiation
indication signaling cipher suite value. It is not a real cipher
suite. It is just an indication in the default and supported cipher
suite lists indicates that the implementation supports secure
renegotiation.

In the RI, its presence means that the SCSV is sent in the cipher
suite list to indicate secure renegotiation support and its absence
means to send an empty TLS renegotiation info extension instead.

However, OpenSSL doesn't provide an API to give this level of control,
instead always sending the SCSV and always including the empty
renegotiation info if TLS is used (as opposed to SSL). So we simply
allow TLS_EMPTY_RENEGOTIATION_INFO_SCSV to be passed for compatibility
as to provide the hint that we support secure renegotiation.

Change-Id: I0850bea47568edcfb1f7df99d4e8a747f938406d
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
4ae3fd787741bfe1b808f447dcb0785250024119 19-Nov-2010 Brian Carlstrom <bdc@google.com> Elliptic Crypto support for OpenSSLSocketImpl

Summary:
- Enable Elliptic Crypto support for OpenSSL based SSLSocket instances
- More RI compliant usage of key types, client auth types, and server auth types
- Steps toward TLS_EMPTY_RENEGOTIATION_INFO_SCSV support, currently test updates

Details:

Elliptic Curve changes

CipherSuite updates for EC
- Adding KEY_EXCHANGE_EC* and corresponding CipherSuites Updated
isAnonymous, getKeyType (now renamed getServerKeyType) to handle
new EC cases. Added new getAuthType for use by
checkServerTrusted callers.
- Restructured code to handle two SUITES_BY_CODE_* arrays
- Remove KEY_EXCHANGE_DH_* definitions which unused because the
corresponding CipherSuites were previously disabled.
- Changed AES CipherSuites definitions to use "_CBC" to match other definitions.
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CipherSuite.java

openssl EC
- NativeCrypto now registers TLS_EC_* cipher suites and has update default list
- Improved auth type arguments to checkClientTrusted/checkServerTrusted
- NativeCrypto support for emphemeral EC keys
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
luni/src/main/native/NativeCrypto.cpp

non-openssl SSL/TLS cleanups

- cleanup around code trying to cope with DiffieHellman vs DH since either should work.
- changed client to use new CipherSuite.getAuthType shared with NativeCrypto implementation
- changed server to use CipherSuite.getKeyType
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java

Consolidate CertificateRequestType code into CipherSuite so that its
shared between java and openssl implementations. This includes the
KEY_TYPE_ string constants, TLS_CT_* byte constants and the 'String
keyType(byte)' (now renamed getClientKeyType) code that depends on them.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CertificateRequest.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CipherSuite.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java

Tests

Differentiate between supported list of cipher suites openssl-based
SSLSocket and SSLEngine based, since the SSLEngine code does not support EC.

luni/src/test/java/libcore/javax/net/ssl/SSLEngineTest.java
luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java

Added testing for expected default cipher suites. Before we just ensured the values were valid.
luni/src/test/java/libcore/javax/net/ssl/SSLSocketFactoryTest.java
support/src/test/java/libcore/java/security/StandardNames.java

Updated to handle new EC cipher suites codes. Added test for new getClientKeyType.
luni/src/test/java/org/apache/harmony/xnet/provider/jsse/CipherSuiteTest.java

Better use of "standard names" particularly to correctly deal with
the subtle differences between key types, client auth types, and
server auth types. TestKeyManager and TestTrustManager now verify
the values they are passed are acceptable.

support/src/test/java/libcore/java/security/StandardNames.java
support/src/test/java/libcore/javax/net/ssl/TestKeyManager.java
support/src/test/java/libcore/javax/net/ssl/TestTrustManager.java

Changed to timeout after 30 seconds and to log to reveal both client and server issues.
support/src/test/java/libcore/javax/net/ssl/TestSSLSocketPair.java

Bug: 3058375
Change-Id: I14d1d0285d591c99cc211324f3595a5be682cab1
rg/apache/harmony/xnet/provider/jsse/CertificateRequest.java
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
7d71a13aa0cb794f14152b36b3873bf8ca595cdc 01-Dec-2010 Brian Carlstrom <bdc@google.com> SecureRandom should be thread safe

Random is documented to be thread safe and our implementation appears
to be. However, the SecureRandom subclass implementation was not. This
was quite reproducible with the javax.net.ssl unit tests when run on a
multicore device, but not seen on a uniprocessor.

Details:

Actual bug fix by adding synchronized to engine* methods

luni/src/main/java/org/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java

New testSecureRandomThreadSafety based on generateSeed errors in javax.net.ssl tests.

luni/src/test/java/tests/security/SecureRandomTest.java

Removing dalvik.annotation.* from assorted SecureRandom tests.

luni/src/test/java/org/apache/harmony/security/tests/java/security/SecureRandom2Test.java
luni/src/test/java/org/apache/harmony/security/tests/java/security/SecureRandomSpiTest.java
luni/src/test/java/tests/java/security/SecureRandomTest.java
luni/src/test/java/tests/security/SecureRandomTest.java

Change-Id: I5e8ece4c0836b02277d7cac1b9b2f60b3c4a7755
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
253851cdb2904082c205949da273c455d197c083 01-Dec-2010 Jesse Wilson <jessewilson@google.com> Do not merge: Fix a bug where we weren't pooling connections due to mismatched URLs.

Already committed to master as change 78504.

Change-Id: Ib883e92bb03b142f34449ef1314c57878dcc00f0

http://b/3169861
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
086fd0244a54fa5ecf13ea66d49b22b36d7d456e 30-Nov-2010 Jesse Wilson <jessewilson@google.com> Fix XML DOM test failures and close guard warnings.

Fix KxmlParser to capture the DTD's root element name, system ID and
public ID. This is more robust than capturing the same in the pull-to-DOM
adapter.

Fix close guard warnings in XML tests. Close input streams of resource
files. Don't catch exceptions only to call fail().

http://b/3090550
Change-Id: I7cfafde58cc28af79c48386a4d124803c8791328
ibcore/base/Streams.java
rg/apache/harmony/xml/parsers/DocumentBuilderImpl.java
1a3dfbe49a3dcd7c855972dadccb9226468359d5 29-Nov-2010 Brian Carlstrom <bdc@google.com> am 6c78b7b9: Toward EC TLS support

* commit '6c78b7b94c232063ec559436b48b33751373ecf1':
Toward EC TLS support
6c78b7b94c232063ec559436b48b33751373ecf1 19-Nov-2010 Brian Carlstrom <bdc@google.com> Toward EC TLS support

Summary:
- javax.net.ssl tests are now working on the RI
- KeyManager can now handle EC_EC and EC_RSA
- OpenSSLSocketImpl.startHandshake now works if KeyManager contains EC certificates

Details:

Add CipherSuite.getKeyType to provide X509KeyManager key type strings,
refactored from OpenSSLServerSocketImpl.checkEnabledCipherSuites.
getKeyType is now also used in OpenSSLSocketImpl.startHandshake to
avoid calling setCertificate for unnecessary key types.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CipherSuite.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

New CipherSuiteTest to cover new getKeyType as well as existing functionality

luni/src/test/java/org/apache/harmony/xnet/provider/jsse/CipherSuiteTest.java

Add support to KeyManager implementation for key types of the form
EC_EC and EC_RSA. The first part implies the KeyPair algorithm (EC in
these new key types) with a potentially different signature algorithm
(EC vs RSA in these)

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java

Update NativeCrypto.keyType to support EC_EC and EC_RSA in addition to
EC which was added earlier. Change from array of KEY_TYPES to named
KEY_TYPE_* constants.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java

Overhauled KeyManagerFactoryTest to cover EC, EC_EC, EC_RSA cases

luni/src/test/java/libcore/javax/net/ssl/KeyManagerFactoryTest.java
support/src/test/java/libcore/java/security/StandardNames.java

Changed TestKeyStore.createKeyStore from always using BKS to now use
JKS on the RI between BC EC Keys and RI X509 certificates. Because JKS
requires a password, we now default "password" on the RI.

support/src/test/java/libcore/java/security/TestKeyStore.java
luni/src/test/java/libcore/javax/net/ssl/SSLContextTest.java
support/src/test/java/libcore/java/security/StandardNames.java

TestKeyStore.create now accepts key types like EC_RSA. Changed
TestKeyStore.createKeys to allow a PrivateKeyEntry to be specified for
signing to enable creation of EC_RSA test certificate. Added
getRootCertificate/rootCertificate to allow lookup of PrivateKeyEntry
for signing. Changed TestKeyStore.getPrivateKey to take explicit
signature algorithm to retrieve EC_EC vs EC_RSA entries.

support/src/test/java/libcore/java/security/TestKeyStore.java
luni/src/test/java/libcore/java/security/KeyStoreTest.java
luni/src/test/java/libcore/javax/net/ssl/KeyManagerFactoryTest.java
luni/src/test/java/libcore/java/security/cert/PKIXParametersTest.java
luni/src/test/java/libcore/javax/net/ssl/TrustManagerFactoryTest.java
luni/src/test/java/org/apache/harmony/xnet/provider/jsse/NativeCryptoTest.java
support/src/test/java/libcore/java/security/StandardNames.java

Added support for EC cipher suites on the RI. Also test with and
without new TLS_EMPTY_RENEGOTIATION_INFO_SCSV cipher suite which is
used to specify the new TLS secure renegotiation.

luni/src/test/java/libcore/javax/net/ssl/SSLEngineTest.java
luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
support/src/test/java/libcore/java/security/StandardNames.java

New TestKeyManager and additional logging in TestTrustManager. Logging
in both is disabled by default using DevNullPrintStream.

support/src/test/java/libcore/javax/net/ssl/TestKeyManager.java
support/src/test/java/libcore/javax/net/ssl/TestTrustManager.java
support/src/test/java/libcore/java/io/DevNullPrintStream.java

Bug: 3058375
Change-Id: Ia5e2a00a025858e10d1076b900886994b481e05a
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
f87e23abe42f2914755225133bd7cedce8a6fedb 12-Nov-2010 Jesse Wilson <jessewilson@google.com> End the deflater when closing a ZipOutputStream.

I'm not particularly happy with ZipOutputStream.close() because it
doesn't call super.close(). Fixing it to call super.close() has two
problems: finish() will be called conditionally (we want it always)
and it won't null out 'out', which is observable to subclasses.

git cherry-pick -e 1d5c4e84a256e76de529b27e7e28ed48f126fe7b
http://b/3187485

Bug: 3223687
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/ZipOutputStream.java
102b3a86bde04a4cffcbecd5b6d175d7790b132a 19-Nov-2010 Elliott Hughes <enh@google.com> Include zdump(1)-like output in ZoneInfo.toString.

Bug: 3172097
Change-Id: Ifb6d6703421e30ce6b7e5dddd1ac583f590cd2b7
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
415c7497ec02890a73eb293f98f69c1f6983389b 18-Nov-2010 Elliott Hughes <enh@google.com> Throw ClassCastExceptions with good detail messages from the library.

Fix Class' methods to produce the same detail messages as the VM, remove
cruft from Arrays (so we throw the exceptions direct from the VM, like the RI
does), and fix a handful of classes that need to simulate casting because
of erasure.

Bug: 3210374
Change-Id: Ie8d1b48e069174bac60899a0530dbc8cf55fd023
ava/lang/Class.java
ava/util/Arrays.java
ava/util/EnumMap.java
ava/util/EnumSet.java
ava/util/HugeEnumSet.java
ava/util/MiniEnumSet.java
ava/util/TreeMap.java
ava/util/jar/Attributes.java
adae04bf57516f03a13045882eb04f7c479e7097 18-Nov-2010 Elliott Hughes <enh@google.com> Merge "Reflection documentation improvements." into dalvik-dev
8da55422ed93013260c1536080b14661bfecfefb 18-Nov-2010 Elliott Hughes <enh@google.com> Reflection documentation improvements.

Don't say "wrap" when we mean "box", and explicitly mention (Object[]) null in
the Method.invoke documentation.

Change-Id: I984c92f3310a08da05645a3a73b9912d08eea986
ava/lang/reflect/Array.java
ava/lang/reflect/Constructor.java
ava/lang/reflect/Field.java
ava/lang/reflect/InvocationHandler.java
ava/lang/reflect/Method.java
9d615f25f7576314ec6473b143b13d00ce52e805 18-Nov-2010 Brian Carlstrom <bdc@google.com> am 57f2cc03: Test updates for Elliptic Curve

* commit '57f2cc03ff2cf5d2f6413c5410680b4908d7301d':
Test updates for Elliptic Curve
57f2cc03ff2cf5d2f6413c5410680b4908d7301d 05-Nov-2010 Brian Carlstrom <bdc@google.com> Test updates for Elliptic Curve

Updated with Elliptic Curve (EC) (and SunPKCS11-NSS) names for use by ProviderTest

support/src/test/java/libcore/java/security/StandardNames.java

Enhance test_KeyStore_cacerts_bks to verify PublicKey can be
retreived. Before this the test would pass even though an
ECPublicKey could not be accessed. With EC support in
external/bouncycastle, this test now passes.

luni/src/test/java/libcore/java/security/KeyStoreTest.java

New SignatureTest to cover ECDSA, replaces the old one that
required a subclass per tested algorithm.

luni/src/test/java/libcore/java/security/SignatureTest.java
support/src/test/java/tests/security/SignatureTest.java
luni/src/test/java/tests/targets/security/SignatureTestMD5withRSA.java
luni/src/test/java/tests/targets/security/SignatureTestNONEwithDSA.java
luni/src/test/java/tests/targets/security/SignatureTestSHA1withDSA.java
luni/src/test/java/tests/targets/security/SignatureTestSHA1withRSA.java
luni/src/test/java/tests/targets/security/SignatureTestSHA256withRSA.java
luni/src/test/java/tests/targets/security/SignatureTestSHA384withRSA.java
luni/src/test/java/tests/targets/security/SignatureTestSHA512withRSA.java
luni/src/test/java/tests/targets/security/AllTests.java

Improve ProviderTest logging while debugging SunPKCS11-NSS
provider issues. Added some exceptions for RI missing classes.

luni/src/test/java/libcore/java/security/ProviderTest.java

Changed style slightly to match KeyPairGeneratorTest, where +N is
used to indicated when multiples of a increments of a certain
amount are required for valid key sizes.

luni/src/test/java/libcore/javax/crypto/KeyGeneratorTest.java

Fix test CloseGuard issues

luni/src/test/java/libcore/java/security/KeyStoreTest.java

Fix readability

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java

Bug: 3058375
Change-Id: I99cd93ad66372e8512d993168550cc1d471d3248
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
8c22baab6e43ced1ac2f28379fbdabcfe402ad36 17-Nov-2010 Kenny Root <kroot@google.com> am 910544a7: Fix some doc links in Arrays

* commit '910544a773fa8be76ae1fd7d27c15ad6e775082c':
Fix some doc links in Arrays
910544a773fa8be76ae1fd7d27c15ad6e775082c 17-Nov-2010 Kenny Root <kroot@google.com> Fix some doc links in Arrays

Some doc links had duplicated brackets that show up in the final parsed
result. Remove them so they don't look out-of-place.

Change-Id: Ie998e02246cef8bebaad3c5981abb2706bcbe394
ava/util/Arrays.java
13ceab7064bc46f36e278535d96ed29a627c0c23 17-Nov-2010 Jesse Wilson <jessewilson@google.com> Merge "Use JSR 166's AbstractQueue, ArrayDeque, Deque, Queue and Navigable classes." into dalvik-dev
dbc42ad94ce37b3178e14b50496914c267d6cea6 16-Nov-2010 Brian Carlstrom <bdc@google.com> HttpsURLConnection fixes to pass URLConnectionTest and HttpsURLConnectionTest

Add public getSecureSocket so that HttpsURLConnection can reset its sslSocket field on reused connections.

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java

discardIntermediateResponse now maintain old values for
intermediateReponse, which is necessary when retrying the CONNECT
method with proxy authorization.

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java

Clear sslSocket before retrying makeSslConnection to ensure we reconnect.
makeSslConnection now resets sslSocket on resumed connection.
makeSslConnection now exits early on existing connection.

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java

git cherry-pick -e 4df5be29bdffc09e7368c03423a0bef85fa26ac5
Bug: 3184701
Change-Id: Ida3c027f79e5e29968263ac761d4f4f79d063a27
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
3825a7f63f6bf49d55e742f19f9b76cc9adc5e6f 05-Nov-2010 Brian Carlstrom <bdc@google.com> Propagate pending exception from cert_client_cb

There can be a pending exception in the cert_client_cb if the server
certificate failed verification and the server requested a client
certificate. Since the handshake is going to be terminated, just
return from client_cert_cb immediately indicating no client cert will be
provided, allowing the existing exception to propagate.

Bug: 3149826
git cherry-pick 30a77f316c03906ca59d6ebe5b6c7f0ff734aadb

Bug: 3184701
Change-Id: I58b038267f66d6b5f80e9f3d81ff1c0f8052ef27
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
41ff09c89e1deebc22d0d833e0169a35be43d8a5 16-Nov-2010 Jesse Wilson <jessewilson@google.com> Merge "Add interning to KxmlPullParser." into dalvik-dev
a78c2aac2a73f001aa00971adfae90af4d6726fb 14-Nov-2010 Jesse Wilson <jessewilson@google.com> Add interning to KxmlPullParser.

Adding just a small interning pool improves performance even further.
Combined with the first round of optimizations, total improvement for
three large files is 51% 56% and 42%. Performance on a small file
improved 3%. When interning is checked in, Kxml will be significantly
faster than Expat's pull parser for everything but very small files.

/sdcard/xml/com.amazon.mp3.meta /sdcard/xml/com.cooliris.picasa /sdcard/xml/com.rhapsody.Deauth /sdcard/xml/com.snoggdoggler.r
benchmark run us linear runtime % us linear runtime % us linear runtime % us linear runtime %
Dom baseline / master 210,256 ============================== 184% 53,227 ============================== 171% 2,183 ============================== 151% 164,708 ============================= 200%
Dom first optimizations 174,580 ======================== 153% 40,964 ======================= 132% 1,968 =========================== 136% 130,814 ======================= 159%
Dom new interning 163,366 ======================= 143% 35,736 ==================== 115% 2,116 ============================= 147% 121,870 ====================== 148%
ExpatPull baseline / master 130,078 ================== 114% 21,700 ============ 70% 759 ========== 53% 85,578 =============== 104%
ExpatPull first optimizations 129,776 ================== 114% 21,621 ============ 70% 734 ========== 51% 86,799 =============== 105%
ExpatPull new interning 130,971 ================== 115% 21,627 ============ 70% 723 ========= 50% 86,555 =============== 105%
KxmlPull baseline / master 114,317 ================ 100% 31,040 ================= 100% 1,443 =================== 100% 82,478 =============== 100%
KxmlPull first optimizations 88,716 ============ 78% 20,578 =========== 66% 1,560 ===================== 108% 58,567 ========== 71%
KxmlPull new interning 55,773 ======= 49% 13,692 ======= 44% 1,394 =================== 97% 48,068 ======== 58%

http://b/3090550
Change-Id: I4515546abbbcf940de7be22f26925c4334e59146
ava/lang/String.java
ibcore/internal/StringPool.java
056611da6dba28eb1dbbaebe897187fc5834d155 16-Nov-2010 Brian Carlstrom <bdc@google.com> am 4df5be29: HttpsURLConnection fixes to pass URLConnectionTest and HttpsURLConnectionTest

* commit '4df5be29bdffc09e7368c03423a0bef85fa26ac5':
HttpsURLConnection fixes to pass URLConnectionTest and HttpsURLConnectionTest
4df5be29bdffc09e7368c03423a0bef85fa26ac5 16-Nov-2010 Brian Carlstrom <bdc@google.com> HttpsURLConnection fixes to pass URLConnectionTest and HttpsURLConnectionTest

Add public getSecureSocket so that HttpsURLConnection can reset its sslSocket field on reused connections.

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java

discardIntermediateResponse now maintain old values for
intermediateReponse, which is necessary when retrying the CONNECT
method with proxy authorization.

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java

Clear sslSocket before retrying makeSslConnection to ensure we reconnect.
makeSslConnection now resets sslSocket on resumed connection.
makeSslConnection now exits early on existing connection.

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java

Change-Id: I6862a092e2584398f7aa1d2a8b66ad074775b6b3
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
fbc39aedfce3521b61a8cdaa4e6170ea87d1aad9 16-Nov-2010 Elliott Hughes <enh@google.com> Merge "Switch ObjectInputStream over to reflection." into dalvik-dev
de8ebcab83d48d4edc28fced9d0a8382f1ef1436 16-Nov-2010 Brian Carlstrom <bdc@google.com> am 8a720cce: TrustManager should include PrivateKeyEntry CAs, OpenSSLSocketImpl close fix, and debugging improvements

* commit '8a720cceee7ce319d647738dfeda3f302879f370':
TrustManager should include PrivateKeyEntry CAs, OpenSSLSocketImpl close fix, and debugging improvements
8a720cceee7ce319d647738dfeda3f302879f370 16-Nov-2010 Brian Carlstrom <bdc@google.com> TrustManager should include PrivateKeyEntry CAs, OpenSSLSocketImpl close fix, and debugging improvements

Revert to older behavior of creating TrustAnchors from both
PrivateKeyEntry and TrustedCertificateEntry values from the
KeyStore. Added tests to better ensure this slighlt different
behavior from PKIXParameters. Also create the acceptedIssuers
proactively since the real memory cost is the X509Certificates
which are already found in the params.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
luni/src/test/java/libcore/javax/net/ssl/TrustManagerFactoryTest.java
luni/src/test/java/libcore/java/security/cert/PKIXParametersTest.java

Don't just free native state on issue with startHandshake, close
the SSLSocket. While the former addressed a CloseGuard issue, the
latter make sure that checkOpen throws SocketExceptions and we don't
leak a NullPointerException from NativeCrypto.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Debugging improvements including minor refinements to recently
added NativeCrypto logging, more verbose TestKeyStore.dump output,
and a new TestTrustManager proxy class for logging X509TrustManager
behavior.

luni/src/main/native/NativeCrypto.cpp
support/src/test/java/libcore/java/security/TestKeyStore.java
support/src/test/java/libcore/javax/net/ssl/TestTrustManager.java

Change-Id: I317e1ca34d8e20c77e5cb9c5a5a58cb4ae98d829
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
b854a55df2475a4e9acc96c271cd88da7559f019 16-Nov-2010 Elliott Hughes <enh@google.com> Switch ObjectInputStream over to reflection.

Reduces the amount of (native) code, and improves perfromance.

We can't entirely remove the native code this time because we
rely on the ability to create an instance of one class while
calling a constructor from another, which we can't do via
reflection.

Bug: 3158451
Change-Id: I896e23a6ffd7b7f1a016ff9d30cea0b2b9df7574
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
7d0d108593ac30e19b8f2a5a157f697f3f46c041 13-Nov-2010 Elliott Hughes <enh@google.com> Switch ObjectOutputStream over to reflection.

Reduces the amount of (native) code, and improves performance. I've also
improved some of the detail messages from the reflection code (to help in
my own debugging).

I'll do ObjectInputStream next...

Bug: 3158451
Change-Id: Icf06a17507f9d011d120f2d704e084a103a400c7
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/ObjectStreamField.java
ava/lang/Class.java
ava/lang/ClassCache.java
87987208b0e225bc2022190e57b01e8d57d29193 12-Nov-2010 Jesse Wilson <jessewilson@google.com> Merge "End the deflater when closing a ZipOutputStream." into dalvik-dev
1d5c4e84a256e76de529b27e7e28ed48f126fe7b 12-Nov-2010 Jesse Wilson <jessewilson@google.com> End the deflater when closing a ZipOutputStream.

I'm not particularly happy with ZipOutputStream.close() because it
doesn't call super.close(). Fixing it to call super.close() has two
problems: finish() will be called conditionally (we want it always)
and it won't null out 'out', which is observable to subclasses.

Change-Id: If565b2a94e4dff8cbc4815e971ab8b42b3663a84
http://b/3187485
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/ZipOutputStream.java
fd2d7c4f244a78ee74db4944acf2a6378b65d43b 12-Nov-2010 Elliott Hughes <enh@google.com> More java.util.zip documentation improvements.

Follow-on to https://android-git.corp.google.com/g/79392.

Change-Id: I7ebdb5f0824d30e0b86d4e1ac236377bbda1cd08
ava/util/zip/GZIPInputStream.java
ava/util/zip/ZipInputStream.java
bbf2c7d0462bb2c612e5a1a28e6d0ce5413d746d 12-Nov-2010 Elliott Hughes <enh@google.com> Tidy up some jar-related code.

...and kill InputStreamHelper by inlining all that's left into the sole caller.

Change-Id: Iadddba9f067a1af2a2a66803aa9ef26ea6dc3396
ava/util/jar/JarFile.java
ava/util/jar/Manifest.java
ibcore/base/Streams.java
rg/apache/harmony/luni/util/InputStreamHelper.java
a5d31fa2ea5c9d3de6ac05ae4250f931bed2d445 12-Nov-2010 Elliott Hughes <enh@google.com> Slightly better Checksum documentation.

Change-Id: Ic4c3b94d435522f8b14698d228d9e61c06ce96ae
ava/util/zip/Adler32.java
ava/util/zip/CRC32.java
ava/util/zip/Checksum.java
d42697f6a5bac5d8789c82f45f79f7dd195dc768 11-Nov-2010 Elliott Hughes <enh@google.com> Better documentation for GZIPInputStream/GZIPOutputStream/ZipInputStream/ZipOutputStream.

I didn't know how to use ZipInputStream/ZipOutputStream off the top of my
head; that's a sign we need an example in the documentation.

Change-Id: I0410927a4a784991ff183c30c4cf59752b7ed8e8
ava/util/zip/GZIPInputStream.java
ava/util/zip/GZIPOutputStream.java
ava/util/zip/ZipInputStream.java
ava/util/zip/ZipOutputStream.java
2f03027aaa09158ac70ebf9c6b53f7bb8c495541 11-Nov-2010 Jesse Wilson <jessewilson@google.com> Use JSR 166's AbstractQueue, ArrayDeque, Deque, Queue and Navigable classes.

These are better documented, better exercised and more consistent with other
platforms.

Change-Id: Ic17f1b492f637263b19281f99cd2c163e6586c8a
http://b/3131028
ava/util/AbstractQueue.java
ava/util/ArrayDeque.java
ava/util/Deque.java
ava/util/NavigableMap.java
ava/util/NavigableSet.java
ava/util/Queue.java
e4fe401cfde1d77126b20e1273c741addde18abc 10-Nov-2010 Elliott Hughes <enh@google.com> am e0201e2c: Merge "Fix a bug I introduced, and do more zip cleanup."

* commit 'e0201e2c65d67b516d45076da0879330d3b0e31a':
Fix a bug I introduced, and do more zip cleanup.
e0201e2c65d67b516d45076da0879330d3b0e31a 10-Nov-2010 Elliott Hughes <enh@google.com> Merge "Fix a bug I introduced, and do more zip cleanup."
e43b3f6c7b343f4b6c738120a2ac2f93c5bd9a8e 10-Nov-2010 Elliott Hughes <enh@google.com> Fix a bug I introduced, and do more zip cleanup.

This code's quite hairy in its use of int/long. I can't just change the fields
to int because they seem to use -1L to mean "unset" while still allowing the
whole int range of values (including -1). We'll have to look at the zip
specification to see whether that's right, but for now, let's just avoid sign
extension.

I've also cleaned up some of the other code, most notably throwing more
detailed exception messages where it's easy, and removing hand-made readFully
implementations.

Bug: 3181430
Change-Id: I382568a8975c9b8b2ee5b344817134472369d308
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
693eacca9fa67ad79d1b35dbaad61c5ac1ac457c 10-Nov-2010 Elliott Hughes <enh@google.com> Stop allocating empty arrays.

Bug: 3166662
Change-Id: I151de373b2bf53786d19824336fa434c02b0b0e8
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/lang/AbstractStringBuilder.java
ava/lang/String.java
ava/lang/Thread.java
ava/lang/Void.java
ava/lang/reflect/Constructor.java
ava/lang/reflect/Method.java
ava/net/Inet6Address.java
ava/net/NetworkInterface.java
ava/nio/DatagramChannelImpl.java
ava/nio/SelectorImpl.java
ava/nio/ServerSocketChannelImpl.java
ava/security/cert/X509CertSelector.java
ava/text/ChoiceFormat.java
ava/text/MessageFormat.java
ava/util/ArrayList.java
ava/util/concurrent/SynchronousQueue.java
ava/util/prefs/AbstractPreferences.java
ava/util/prefs/XMLParser.java
ava/util/zip/Deflater.java
avax/crypto/spec/PBEKeySpec.java
avax/crypto/spec/PSource.java
avax/net/ssl/DefaultSSLServerSocketFactory.java
avax/net/ssl/DefaultSSLSocketFactory.java
ibcore/base/EmptyArray.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/util/Base64.java
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
rg/apache/harmony/xnet/provider/jsse/ClientHello.java
rg/apache/harmony/xnet/provider/jsse/ClientKeyExchange.java
rg/apache/harmony/xnet/provider/jsse/DigitalSignature.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/Logger.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerFactoryImpl.java
rg/apache/xml/serializer/ToHTMLStream.java
rg/xml/sax/ext/Attributes2Impl.java
170e14d7d695e79958427fae9432953c95318370 09-Nov-2010 Elliott Hughes <enh@google.com> Ensure that changes to an IdentityHashMap entrySet mutate the underlying map.

Harmony's patch, plus a missing "private final".

Bug: https://issues.apache.org/jira/browse/HARMONY-6419
Change-Id: I92846810a1cda76b6101161a79ed25d9df503c01
ava/util/IdentityHashMap.java
610ea23f06ae8a11d64806ef85367f2b8ac4ac8e 09-Nov-2010 Jesse Wilson <jessewilson@google.com> am f5aabec4: am 8fbee008: am b365037f: Add @Deprecated to match @deprecated where it\'s missing in libcore.

* commit 'f5aabec4b1fe54f495a88aeff17f0c950675a056':
Add @Deprecated to match @deprecated where it's missing in libcore.
aee3b0eced54d6cb63ceee085e12cc7ff3b02645 09-Nov-2010 Elliott Hughes <enh@google.com> Merge "Improve SocketOptions.IP_TOS documentation." into dalvik-dev
f5aabec4b1fe54f495a88aeff17f0c950675a056 09-Nov-2010 Jesse Wilson <jessewilson@google.com> am 8fbee008: am b365037f: Add @Deprecated to match @deprecated where it\'s missing in libcore.

* commit '8fbee008f35fa08642a11a728b6d3699ff933efc':
Add @Deprecated to match @deprecated where it's missing in libcore.
9b0da29275a49266f3518aa490372965432e4219 09-Nov-2010 Jesse Wilson <jessewilson@google.com> Merge "Provide indices and length when reporting StringIndexOutOfBoundsExceptions." into dalvik-dev
f3b4a80f2ecd6dd1a0df51bb74a01042b11fad97 09-Nov-2010 Jesse Wilson <jessewilson@google.com> Provide indices and length when reporting StringIndexOutOfBoundsExceptions.

Change-Id: Ib7e52678fd2aad0e15bd04b2db4b191670cd4703
ava/io/BufferedWriter.java
ava/io/CharArrayWriter.java
ava/io/OutputStreamWriter.java
ava/io/Writer.java
ava/lang/AbstractStringBuilder.java
ava/lang/String.java
75108771bf4b7de62e05f3f6da23ff7e02f7595f 09-Nov-2010 Elliott Hughes <enh@google.com> Track Java 6 Proxy.toString change.

This fixes a harmony test.

Change-Id: Id824fe62f11b0b80ce4e266ca71cbb1a675a142e
ava/net/Proxy.java
70c145d9e9dd2a0244f813c217501a1b84189a43 09-Nov-2010 Elliott Hughes <enh@google.com> Apply a couple of trivial harmony patches.

These fix a couple of test failures.

Change-Id: Ifb0aef1822891069217fbedc450d8264d4f6b7c9
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
811a5c01400cf923c1827753a73297434d69fa43 09-Nov-2010 Elliott Hughes <enh@google.com> Don't eagerly resolve the hostname when doing a datagram receive.

Bug: http://code.google.com/p/android/issues/detail?id=12328
Change-Id: I850efb021b3cdcbc6c8278e9ff3cd8d34e85b1dc
ava/net/InetSocketAddress.java
744af09bbda66a2b918a2d6b82abc8b72790f5d8 09-Nov-2010 Elliott Hughes <enh@google.com> Merge "Rewrite File.getCanonicalPath." into dalvik-dev
95101d3d5a3417755c88fded1600e039fb363019 05-Nov-2010 Elliott Hughes <enh@google.com> Rewrite File.getCanonicalPath.

My original plan was to just rely on the fixed realpath(3), but it turns out
that Java's behavior is quite different from the C library's in cases where
path elements don't exist. I also wasn't particularly excited about introducing
a fixed-length buffer. To that end, I've added a native implementation of
getCanonicalPath.

I've also improved the getAbsolutePath and getCanonicalPath documentation.

This patch also makes File.absolutePath transient, a regression in gingerbread
which uselessly bloated File's serialized form.

Bug: 2281992
Change-Id: Iff94eee07fe574251c1188b2b2eb71f585c81c6a
ava/io/File.java
8d7078b3aec245ed151a31584b190fcfb6b2ede0 08-Nov-2010 Brian Carlstrom <bdc@google.com> am 43c8c9d4: Merge "Make OpenSSLSocketFactory and SSLSocketFactory fields final"

* commit '43c8c9d466293851bd7f4f4438628176e278ced7':
Make OpenSSLSocketFactory and SSLSocketFactory fields final
43c8c9d466293851bd7f4f4438628176e278ced7 08-Nov-2010 Brian Carlstrom <bdc@google.com> Merge "Make OpenSSLSocketFactory and SSLSocketFactory fields final"
5e4835e455f6a6510d63e664b44b040169e1b8d7 08-Nov-2010 Jesse Wilson <jessewilson@google.com> am 06e15e6c: Fix a bug where we weren\'t pooling connections due to mismatched URLs.

* commit '06e15e6c528fcb773bedb43e34b0577312570927':
Fix a bug where we weren't pooling connections due to mismatched URLs.
41ea5dcbab2b53238434831d2365fa65d6e911ff 08-Nov-2010 Brian Carlstrom <bdc@google.com> Make OpenSSLSocketFactory and SSLSocketFactory fields final

Bug: 2954292
Change-Id: I4cad068d4da39a9c55ca25fad698f3ea136f2e24
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketFactoryImpl.java
06e15e6c528fcb773bedb43e34b0577312570927 05-Nov-2010 Jesse Wilson <jessewilson@google.com> Fix a bug where we weren't pooling connections due to mismatched URLs.

Change-Id: I13bebc94189192c3f8d959e521989591d2fca3e2
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
8c7421af3859862e60f95629176023226d89eb85 08-Nov-2010 Brian Carlstrom <bdc@google.com> am 9a356d01: TrustManagerImpl.cleanupCertChain should not modify original the original chain

* commit '9a356d010cadf3bb3d5cf4b5502010751f602fa1':
TrustManagerImpl.cleanupCertChain should not modify original the original chain
9a356d010cadf3bb3d5cf4b5502010751f602fa1 08-Nov-2010 Brian Carlstrom <bdc@google.com> TrustManagerImpl.cleanupCertChain should not modify original the original chain

The original frameworks/base code this was based on unconditionally
copied the chain before cleaning it which I missed on initial
refactoring. The code lazily makes the copy only it actually needs to
modify the chain.

Change-Id: I29bea6f8064d338bd625ab8ed7a89f5d96a75dfd
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
cc5fb4b5c651fe453d1319f8c47da91a65ee436c 08-Nov-2010 Jesse Wilson <jessewilson@google.com> Merge "Explicitly specify the content encoding when parsing preferences." into dalvik-dev
eae0b615a8f9aba8e8e789f0fb941ee27a0833c2 08-Nov-2010 Jesse Wilson <jessewilson@google.com> Explicitly specify the content encoding when parsing preferences.

Without this the XML parser needs to guess the encoding, which
turns out to be a fairly block of code. Avoid that since we know
the encoding is always UTF-8.

Change-Id: I265d602e7e3ba2cd8ee3e3aa564dab24a636ad85
ava/util/prefs/XMLParser.java
05a0b1a0ef75b16a87f8e3490bb2b58040eb794a 06-Nov-2010 Elliott Hughes <enh@google.com> Improve SocketOptions.IP_TOS documentation.

Explain that this field covers both IPv4 and IPv6.

Bug: 3167335
Change-Id: I9541ac63281b7ee010897cb2dbd65a5fdcc7d9ca
ava/net/SocketOptions.java
59e2fd2654b4501dd6a3409db086f1cabb3716e2 05-Nov-2010 Brian Carlstrom <bdc@google.com> am bd3f08d9: Remove CloseGuard warnings for FileInputStream/FileOutputStream created from FileDescriptors

* commit 'bd3f08d95b31543b5f1fe3d93594efc9c8a2879b':
Remove CloseGuard warnings for FileInputStream/FileOutputStream created from FileDescriptors
bd3f08d95b31543b5f1fe3d93594efc9c8a2879b 05-Nov-2010 Brian Carlstrom <bdc@google.com> Remove CloseGuard warnings for FileInputStream/FileOutputStream created from FileDescriptors

Change-Id: Ie3c0b9926810136fbbf48294e50f8a4f63f1eb0e
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
93e4ce5e8ee6c424c172aed17ce081fa49918ad6 04-Nov-2010 Jesse Wilson <jessewilson@google.com> Merge "Style cleanup of some XML code." into dalvik-dev
b365037fb5723ecd2810ac2dc4ec45fc570764b6 04-Nov-2010 Jesse Wilson <jessewilson@google.com> Add @Deprecated to match @deprecated where it's missing in libcore.

Change-Id: Icd07496c4d1371215a2153198d45d6aa719b26b7
rg/xml/sax/AttributeList.java
rg/xml/sax/DocumentHandler.java
rg/xml/sax/HandlerBase.java
rg/xml/sax/Parser.java
rg/xml/sax/helpers/AttributeListImpl.java
rg/xml/sax/helpers/ParserFactory.java
ccd79e2bb784cdbd89e90a0e4301a707091d446d 04-Nov-2010 Jesse Wilson <jessewilson@google.com> Style cleanup of some XML code.

Motivation: in preparation to refactor the Kxml code I'd like
to bring this code to a style consistent with the rest of
Android. This code style currently disagrees with my toolchain.

Change-Id: Ibd24570c131e792532e46f7f44c64abac3a6979a
http://b/3090550
rg/apache/harmony/xml/ExpatPullParser.java
096f877a77e0913849288837b8abac4bdafceca4 04-Nov-2010 Elliott Hughes <enh@google.com> Fix sign-extension issues in GZIPInputStream.

Bug: 3164285
Change-Id: Ic46a8d9a0ca23904fde85e70f4a8c218d4eb58f7
ava/util/zip/GZIPInputStream.java
0d93c38cc3c7a5001aece8a18cafc6d1fc7551f3 04-Nov-2010 Elliott Hughes <enh@google.com> Add a public @hide InetAddress.isNumeric.

Some frameworks/base callers want to know whether they can call
getAllByName/getByName without incurring a DNS lookup. Rather than have them
write their own JNI to do the AI_NUMERICHOST getaddrinfo(3) call, let's just
offer them ours.

Why don't I fully expose getaddrinfo(3)? Because it doesn't map to Java API
very well, and no-one needs that yet. So for now, let's take the easy way out.

Also improve some misleading javadoc.

Bug: 3073384
Change-Id: Ia1990313306254598a4e1480cae356f68ceaaf22
ava/net/DatagramSocket.java
ava/net/HttpCookie.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/NetworkInterface.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/URI.java
b4bb9aba620d8a363fb3617b25839093caf39cf4 03-Nov-2010 Brian Carlstrom <bdc@google.com> resolved conflicts for merge of a5c608e5 to dalvik-dev

Change-Id: I0319c132ec8f42782475906da267439938308e77
a5c608e59f9d574ea4bc65e9dff44aae2f34fd26 01-Nov-2010 Brian Carlstrom <bdc@google.com> TrustManager improvements

Overhaul of TrustManagerImpl
- PKIXParameters can now be final in TrustManagerImpl because we
always immediately create an IndexedPKIXParameters instead of only
doing it in SSLParametersImpl.createDefaultTrustManager.
- Use new KeyStore constructor for IndexedPKIXParameters to remove
duplicate logic for creating set of TrustAnchors from a KeyStore.
- Improved checkTrusted/cleanupCertChain to remove special cases for
directly trusting the end cert or pruning only self signed certs. To
support b/2530852, we need to stop prune the chain as soon as we
find any trust anchor (using newly improved
TrustManagerImpl.isTrustAnchor), which could be at the beginning,
middle, or end. That means cleanupCertChain can return an empty
chain if everything was trusted directly. (and we don't need to do
extra checks on exception cases to see if the problem was just that
the trust anchor was in the chain)
- isDirectlyTrusted -> isTrustAnchor here as well, using new
IndexedPKIXParameters.isTrustAnchor APIs
- Fix incorrect assumption in getAcceptedIssuers that all TrustAnchor
instances have non-null results for getTrustedCert.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java

Removed indexing in createDefaultTrustManager since we always index now

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java

Overhaul of IndexedPKIXParameters
- Single map from subject X500Principal to TrustAnchors
instead of two different X500Principal keyed maps to check
- Removed map based on encoded cert. For b/2530852, we want to treat
certs as equal if they have the same name and public key, not
byte-for-byte equality, which can be done with the remaining map.
Revamped isDirectlyTrusted into isTrustAnchor(cert) to perform this
new name/key based comparison.
- Added helper isTrustAnchor(cert, anchors) to reuse code in
non-IndexedPKIXParameters case in TrustManagerImpl.
- Added constructor from KeyStore
- Moved anchor indexing code to index() from old constructor

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/IndexedPKIXParameters.java

TestKeyStore.getPrivateKey allowed some existing test simplification.

luni/src/test/java/libcore/java/security/KeyStoreTest.java
luni/src/test/java/org/apache/harmony/xnet/provider/jsse/NativeCryptoTest.java
support/src/test/java/libcore/java/security/TestKeyStore.java

Added missing "fail()" before catching expected exceptions.

luni/src/test/java/libcore/java/security/KeyStoreTest.java

Expanded KeyManagerFactoryTest to excercise ManagerFactoryParameters b/1628001

luni/src/test/java/libcore/javax/net/ssl/KeyManagerFactoryTest.java

Added KeyStoreBuilderParametersTest because I thought I saw a bug in
KeyStoreBuilderParameters, but this convinced me otherwise.

luni/src/test/java/libcore/javax/net/ssl/KeyStoreBuilderParametersTest.java

New TrustManagerFactory test modeled on expanded KeyManagerFactoryTest.
test_TrustManagerFactory_intermediate specifically is targeting the
new functionality of b/2530852 to handling trust anchors within the
chain.

luni/src/test/java/libcore/javax/net/ssl/TrustManagerFactoryTest.java
support/src/test/java/libcore/java/security/StandardNames.java

Some initial on tests for Elliptic Curve (b/3058375) after the RI
started reporting it was supported. Removed old @KnownFailure
tags. Skipped a test on the RI that it can't handle. Improved some
assert messages.

luni/src/test/java/libcore/javax/net/ssl/SSLEngineTest.java
luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
support/src/test/java/libcore/java/security/StandardNames.java
support/src/test/java/libcore/java/security/TestKeyStore.java

Removed unneeded bytes->javax->bytes->java case of which can just go bytes->java directly.
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Removed super()
luni/src/main/java/javax/net/ssl/KeyStoreBuilderParameters.java

Made Security.secprops final
luni/src/main/java/java/security/Security.java

Pulled SamplingProfiler fix from dalvik-dev branch
git cherry-pick --no-commit f9dc3450e8f23cab91efc9df99bb860221ac3d6c
dalvik/src/main/java/dalvik/system/SamplingProfiler.java

Bug: 2530852
Change-Id: I95e0c7ee6a2f66b6986b3a9da9583d1ae52f94dd
ava/security/Security.java
avax/net/ssl/KeyStoreBuilderParameters.java
rg/apache/harmony/xnet/provider/jsse/IndexedPKIXParameters.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
a30033bf368e4f1adac3c597f9f0a1db8bcf87fb 03-Nov-2010 Jesse Wilson <jessewilson@google.com> Merge "Save packets by writing header+body as one packet where feasible." into dalvik-dev
0efebd8c734d30ed798b80166290b904fa357ee0 02-Nov-2010 Jesse Wilson <jessewilson@google.com> Save packets by writing header+body as one packet where feasible.

We were previously writing the HTTP header as one byte array and
then the HTTP body as a series of byte arrays, even if the body
was quite small. With this change we prefer to write header plus
body as a single write. The downside of this approach is that in
the worst case we need to allocate 32K more bytes.

In the best case we save a packet. On my test this saved 40ms for
the roundtrip.

Is this the right approach? Allocating a right-sized buffer saves
memory and minimizes the number of packets sent. But it does make
this complex code more complex.

benchmark postBodySize run ms linear runtime
HttpURLConnection none Before 10.8 ======
HttpURLConnection none After 11.0 ======
HttpURLConnection 0 Before 10.9 ======
HttpURLConnection 0 After 11.1 ======
HttpURLConnection 1 Before 51.3 =============================
HttpURLConnection 1 After 11.0 ======
HttpURLConnection 1024 Before 51.7 ==============================
HttpURLConnection 1024 After 11.3 ======
HttpURLConnection 8192 Before 51.2 =============================
HttpURLConnection 8192 After 12.8 =======

http://b/3143475

Change-Id: Id22a8449118a4b8dd13e71915700ac78803d2d9f
ava/io/BufferedOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
b5bde2fd72189192b52e726a2d606d70c3c8a34b 02-Nov-2010 Elliott Hughes <enh@google.com> More shift removal.

A few more customers for OSMemory's peek/poke abilities, and a bunch of shifts
that should have been multiplications.

Bug: 3032515
Change-Id: Ic518fd8f7565d67523ea10e3f5afca3a9c8501b8
ava/io/ObjectStreamClass.java
ava/lang/AbstractStringBuilder.java
ava/lang/ThreadLocal.java
ava/math/BigDecimal.java
ava/util/ArrayDeque.java
ava/util/HashMap.java
ava/util/Hashtable.java
ava/util/IdentityHashMap.java
ava/util/TimSort.java
ava/util/UUID.java
ava/util/WeakHashMap.java
ava/util/zip/GZIPInputStream.java
ava/util/zip/ZipEntry.java
ava/util/zip/ZipInputStream.java
ibcore/io/BufferIterator.java
ibcore/io/HeapBufferIterator.java
ibcore/io/NioBufferIterator.java
rg/apache/harmony/luni/net/Socks4Message.java
rg/apache/harmony/luni/util/Base64.java
aa37a8aa3af5a638cdf4e67f9273fb8118a11dee 01-Nov-2010 Brian Carlstrom <bdc@google.com> Avoid races between OpenSSLSocketImpl I/O and close()

The previous change:

commit 5f2e6872311240319509aed64d9f58cd5b64719b
Author: Brian Carlstrom <bdc@google.com>
Date: Mon Aug 23 14:06:51 2010 -0700

SSLSocket.read should throw SocketException not NullPointerException

added checkOpen() to throw SocketException instead of
NullPointerException, but there was still a race between read/write on
one thread and close on another that could allow a
NullPointerException to escape. This change moves checkOpen() calls to
be protected by the existing writeLock/readLock/handshakeLock
synchronzied blocks to avoid this case.

byte buffer error checking for read/write is also moved into the to
lock region to preserve compatability as measured by the test:
libcore.javax.net.ssl.SSLSocketTest#test_SSLSocket_close

Bug: 3153162
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
bc40740e2e9e982908696ec666cc19c77663d0b2 01-Nov-2010 Brian Carlstrom <bdc@google.com> am 12e7cb01: Avoid races between OpenSSLSocketImpl I/O and close()

* commit '12e7cb011c48b228cdeb2b799fff54d7fbfc6d85':
Avoid races between OpenSSLSocketImpl I/O and close()
12e7cb011c48b228cdeb2b799fff54d7fbfc6d85 01-Nov-2010 Brian Carlstrom <bdc@google.com> Avoid races between OpenSSLSocketImpl I/O and close()

The previous change:

commit 5f2e6872311240319509aed64d9f58cd5b64719b
Author: Brian Carlstrom <bdc@google.com>
Date: Mon Aug 23 14:06:51 2010 -0700

SSLSocket.read should throw SocketException not NullPointerException

added checkOpen() to throw SocketException instead of
NullPointerException, but there was still a race between read/write on
one thread and close on another that could allow a
NullPointerException to escape. This change moves checkOpen() calls to
be protected by the existing writeLock/readLock/handshakeLock
synchronzied blocks to avoid this case.

byte buffer error checking for read/write is also moved into the to
lock region to preserve compatability as measured by the test:
libcore.javax.net.ssl.SSLSocketTest#test_SSLSocket_close

Bug: 3153162
Change-Id: I16299f09dc91871407e88eb718073d21a816f683
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
ba44e4b26f34d195054ae0ee880abe4ea1d8737d 30-Oct-2010 Dan Bornstein <danfuzz@android.com> am 93e0cbb1: am d6103319: am aeeaa64f: Replace the implementation of this class.

* commit '93e0cbb1c2d34f5ba3af704f4f62dd3fe1a73b1d':
Replace the implementation of this class.
93e0cbb1c2d34f5ba3af704f4f62dd3fe1a73b1d 30-Oct-2010 Dan Bornstein <danfuzz@android.com> am d6103319: am aeeaa64f: Replace the implementation of this class.

* commit 'd6103319a2a78f2bbc1e880c17565a54ee59c5f5':
Replace the implementation of this class.
aeeaa64fb691606d39bd24305001a4f4c71acdc3 30-Oct-2010 Dan Bornstein <danfuzz@android.com> Replace the implementation of this class.

Use the Apache Harmony version.

Change-Id: I5b9d6fac10dcaf20e16fccb73cfc2ae7110a683d
ava/util/concurrent/CopyOnWriteArrayList.java
c1a675c80c69decadb736b245f0366f93a94a462 29-Oct-2010 Jesse Wilson <jessewilson@google.com> Remove the tree map in the HTTP headers.

This map is intended make looking up headers faster, but for real-world
sized datasets we spend more energy maintaining the map than we save from
using it.

I benchmarked the Android Market's HTTP connections' header use and it's
significantly faster to skip the map:

run us linear runtime
map+list 413.1 ==============================
list only 65.8 ====

Change-Id: I5b8fef6f999eb1bfe53eea2781f63cdd1002a273
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpHeaders.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
0eb70e31581a977afa5df3292d1c96e42e548821 28-Oct-2010 Elliott Hughes <enh@google.com> Optimize DataInputStream and a few friends.

Also ensure that we're doing a correct readFully when reading
shorts/ints/longs.

Bug: 3032515
Change-Id: I39e6f926537f5d55063db8fc1c5a1b4b794746d4
ava/io/DataInput.java
ava/io/DataInputStream.java
ava/io/DataOutput.java
ava/io/DataOutputStream.java
ava/io/ObjectInputStream.java
ava/io/RandomAccessFile.java
ava/net/Inet4Address.java
ava/net/InetAddress.java
ava/security/SecureRandom.java
ibcore/base/Streams.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
c6c6c5d5176f739e0ceecedbdf277513bf4854b1 28-Oct-2010 Elliott Hughes <enh@google.com> Optimize DataOutputStream and RandomAccessFile.

Use OSMemory's byte[] peek/poke routines, and reuse a single buffer in
RandomAccessFile, as DataOutputStream was already doing.

Bug: 3032515
Change-Id: I50f34be9a9e126965759a221b21b05baf4b56083
ava/io/DataOutputStream.java
ava/io/RandomAccessFile.java
30edef6fcb6e442f6cb9a11a058f7d50366fe383 28-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix broken interactions between HTTP response caches and redirects." into dalvik-dev
8ac847a52e72f0cefbb20a6850ae04468d433a9e 28-Oct-2010 Jesse Wilson <jessewilson@google.com> Fix broken interactions between HTTP response caches and redirects.

This fixes several specific problems:
- HTTP header map didn't contain the status line (under the null key)
- response code, message and version weren't set by caches
- caches didn't work with redirects

This change also makes some significant cleanup to the Headers class.
We might be able to simplify this further by dropping the map, should
that prove efficient enough.

Change-Id: Ib79ec17bef5978b3234f68102114eee7d4b7cda2
http://b/3139211
http://b/3139211
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
fbbae9740d65620b417b85576aa0d6c7daf4ba34 28-Oct-2010 Elliott Hughes <enh@google.com> Improve UnknownHostException detail messages.

Bug: 2542766
Change-Id: I7de3c8326508294fb5d9f17f65b3f36c8fa856fa
ava/net/AddressCache.java
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/InterfaceAddress.java
ava/net/UnknownHostException.java
2dcd7e784e98faf21190a6431aa1dbff7212eb80 27-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix ResponseCache to support caching of HTTPS responses." into dalvik-dev
37dcf5581f177229ca6c8e7d0d640361640bfb00 27-Oct-2010 Jesse Wilson <jessewilson@google.com> Fix ResponseCache to support caching of HTTPS responses.

Previously it would fail with an internal error because of
inconsistencies because HttpURLConnectionImpl claimed to be
'connected' when it had a cache hit, and HttpsURLConnection
acted upon this by talking to its sockets.

Change-Id: I51f4215ceb9c5fd851223a501488306fa6d382b1
http://b/3043966
ava/net/ResponseCache.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
d29fddcf333997fc2d7429d531e4d934dc705c88 27-Oct-2010 Jesse Wilson <jessewilson@google.com> Flip 'abstract public' to 'public abstract'.

Change-Id: Ice9b81c63cea4a3c08f697a28180c161a13e640e
ava/lang/Process.java
ava/util/Calendar.java
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
31741c01ddb025995692d3c46155b0626b55a389 26-Oct-2010 Jesse Wilson <jessewilson@google.com> Fixing process documentation.

This is to address enh's comments to change 76199.

Change-Id: Ie5cccab4aa212f647bb16b821518a4ab79e5c175
ava/lang/Process.java
ava/lang/ProcessManager.java
8890504f824eca28560987cc23d0b18e8a62bbaa 26-Oct-2010 Elliott Hughes <enh@google.com> Fix Float.parseFloat (et cetera) javadoc.

None of these constructors or decode/parse.*/valueOf methods throw
NumberFormatException when passed null, so they shouldn't claim to do so.

Bug: http://code.google.com/p/android/issues/detail?id=12114
Change-Id: I813cad4457d5db11617b615488efa8f5b4beb1cf
ava/lang/Byte.java
ava/lang/Double.java
ava/lang/Float.java
ava/lang/Integer.java
ava/lang/Long.java
ava/lang/Short.java
ava/math/BigDecimal.java
b594e8d2778666a10d645c7cd897d4029defb838 26-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Close process-spawned streams when the process is destroyed." into dalvik-dev
cb161112da7d3d332b6ea80ae4751c62d06e7ce5 26-Oct-2010 Nick Kralevich <nnk@google.com> am 76fe13de: am 06f64732: am 96f748a2: Merge "fix operator precedence bug when calculating bits." into gingerbread

Merge commit '76fe13dee6dad5589871cd66b1c9e0e734027be6' into dalvik-dev

* commit '76fe13dee6dad5589871cd66b1c9e0e734027be6':
fix operator precedence bug when calculating bits.
2353846b64570fa5932028143a0af507d41a85c5 25-Oct-2010 Jesse Wilson <jessewilson@google.com> Close process-spawned streams when the process is destroyed.

This is consistent with the RI's behavior. I can't come up with
a reasonable approach to closing these streams if they are never
requested; that's presumably a finalizer problem anyway because
only the finalizer knows that the streams won't be needed.

This change also adds test infrastructure around CloseGuard.
My approach hooks into the logger rather than reflection because
I can't be sure where the CloseGuard instance would be in the
object hierarchy. This approach also degrades reasonably when
run on the reference implementation (where it passes).

Change-Id: I08e882494d69d4245e40fb1035edbc6d3df23fbc
http://b/3111120
ava/lang/Process.java
ava/lang/ProcessBuilder.java
ava/lang/ProcessManager.java
76fe13dee6dad5589871cd66b1c9e0e734027be6 26-Oct-2010 Nick Kralevich <nnk@google.com> am 06f64732: am 96f748a2: Merge "fix operator precedence bug when calculating bits." into gingerbread

Merge commit '06f64732e3035e0d2ba69dbd3c6c0257ff462601'

* commit '06f64732e3035e0d2ba69dbd3c6c0257ff462601':
fix operator precedence bug when calculating bits.
96f748a207e41e2131744d57d6476985ade258dd 26-Oct-2010 Nick Kralevich <nnk@google.com> Merge "fix operator precedence bug when calculating bits." into gingerbread
f068eee140c94a10a0d80c1369ea30820d8e30d9 25-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Change ThreadGroup to no longer hold strong references to threads." into dalvik-dev
be013ce620f6d3bd24f7f0b631a36f70197ac3e3 23-Oct-2010 Jesse Wilson <jessewilson@google.com> Change ThreadGroup to no longer hold strong references to threads.

This is intended to fix an issue where threads were leaking when
they weren't started.

This changes a lot of the internals of ThreadGroup, taking advantage
of a new utility method dereferenceIterable that turns a collection
of references into the corresponding iterable of referents.

Change-Id: I8d96c79b4ee30c557276854b38149b9131b656ee
http://b/1937448
ava/lang/ThreadGroup.java
ibcore/base/CollectionUtils.java
492c22b53424685e8bf127964e6e12078f412bdc 23-Oct-2010 Jesse Wilson <jessewilson@google.com> am 386bfdcf: am 409630d7: am 50458469: Merge "Documenting WiFi sign in and SSL fallback with HttpURLConnection." into gingerbread

Merge commit '386bfdcfd822fcb1a5ae0c0b15bacbffbdbf3560' into dalvik-dev

* commit '386bfdcfd822fcb1a5ae0c0b15bacbffbdbf3560':
Documenting WiFi sign in and SSL fallback with HttpURLConnection.
386bfdcfd822fcb1a5ae0c0b15bacbffbdbf3560 23-Oct-2010 Jesse Wilson <jessewilson@google.com> am 409630d7: am 50458469: Merge "Documenting WiFi sign in and SSL fallback with HttpURLConnection." into gingerbread

Merge commit '409630d709ac74a8d560b173d199d272472db022'

* commit '409630d709ac74a8d560b173d199d272472db022':
Documenting WiFi sign in and SSL fallback with HttpURLConnection.
50458469af0166724e3ce58ad0d84b7a5dd22535 23-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Documenting WiFi sign in and SSL fallback with HttpURLConnection." into gingerbread
23e3c8dad87724420bad70e9e9c4e8b94a565f14 23-Oct-2010 Jesse Wilson <jessewilson@google.com> Documenting WiFi sign in and SSL fallback with HttpURLConnection.

Change-Id: Ibb0f86aefd4d4db8d1560608f62735a357da73ea
http://b/2860493
ava/net/HttpURLConnection.java
caea65e6c3a5b69bc485ca73808df659df251b2d 20-Oct-2010 Nick Kralevich <nnk@google.com> fix operator precedence bug when calculating bits.

Change-Id: I521cdb82f7ad9b2d5ec983716770dac218c49478
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
5d1dfcb5e1e9a0a93a36d7d42a0270af408ef4b3 22-Oct-2010 Brian Carlstrom <bdc@google.com> am 57f2ec9d: Merge "Move improved cert chain handling from CertificateChainValidator to TrustManagerImpl"
36e52396b09eabea12fd511a75aa37c835c658dd 22-Oct-2010 Jesse Wilson <jessewilson@google.com> am 28013f56: am 2e5cc6ce: am 4506af08: Merge "Improving the documentation around SecureRandom.setSeed()." into gingerbread
57f2ec9d5a9ea653345754862df84fd2f29473bf 22-Oct-2010 Brian Carlstrom <bdc@google.com> Merge "Move improved cert chain handling from CertificateChainValidator to TrustManagerImpl"
28013f560fb3c0757cc1fcbb1f752511aa68afb6 22-Oct-2010 Jesse Wilson <jessewilson@google.com> am 2e5cc6ce: am 4506af08: Merge "Improving the documentation around SecureRandom.setSeed()." into gingerbread
e52c164448e5420f4d094799d5af813e2ab696c7 22-Oct-2010 Jesse Wilson <jessewilson@google.com> Improving the documentation around SecureRandom.setSeed().

Change-Id: Ica6f2814702a90faf96da6fb96de9f7d295102a7
http://b/3036439
ava/security/SecureRandom.java
9ff0e556917fd66ea30224ac89f6dea7958eda1f 20-Oct-2010 Brian Carlstrom <bdc@google.com> Move improved cert chain handling from CertificateChainValidator to TrustManagerImpl

Bug: 2658463

Change-Id: I014ebfee1f6e2f46b7a842b5bbf6549bf484f3c0
rg/apache/harmony/security/provider/cert/X509CertPathImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
9559e748729ef1deb6400f31d0407543cbff3566 21-Oct-2010 Elliott Hughes <enh@google.com> Improve our modified UTF-8 implementation.

I was out looking for customers for the new OSMemory peek/poke for byte[]s,
and ran into this mess. I also noticed we didn't have any real tests for
DataOutputStream. This patch rewrites DataOuputStream and ObjectOutputStream
to be simpler and cleaner, pulls modified UTF-8 encoding support out into
ModifiedUtf8 where it belongs, and adds a new special ICU-avoiding case for
String.getBytes("UTF-16BE"). And adds tests.

Bug: 3032515
Change-Id: I618c8b1bda13138feed7710e29aee0f96f2e9b95
ava/io/DataOutputStream.java
ava/io/ObjectOutputStream.java
ava/io/RandomAccessFile.java
ava/lang/String.java
ava/nio/charset/Charsets.java
ava/nio/charset/ModifiedUtf8.java
e465a415ae1876cf5c46e4492e0253de96afaff5 20-Oct-2010 Brian Carlstrom <bdc@google.com> am ef6370c1: Fix initialization races in X509CertImpl

Merge commit 'ef6370c1b62edf75dc7c3e5411468b55627e037d' into dalvik-dev

* commit 'ef6370c1b62edf75dc7c3e5411468b55627e037d':
Fix initialization races in X509CertImpl
ef6370c1b62edf75dc7c3e5411468b55627e037d 20-Oct-2010 Brian Carlstrom <bdc@google.com> Fix initialization races in X509CertImpl

X509CertImpl instances can be shared between threads without a caller
knowing due to the CERT_CACHE in X509CertFactoryImpl. In some cases,
initialization of pairs of fields such as notBefore/notAfter and
sigAlgOID/sigAlgName were protected by checking if only was one of the
two values were initialized. This could lead to one thread half
initializing a pair and a second thread seeing the half initialized
pair, would assume both halves were initialized, returning an
uninitialized value. Even in the lazy initialization of single fields
there was no use of volatile or synchonized to be properly safe.

Change-Id: Ia7d6238927d0e77f4f2a512458eac66e97f2abbb
http://code.google.com/p/android/issues/detail?id=11870
Bug: 2295023
rg/apache/harmony/security/provider/cert/X509CertImpl.java
e0cf017e333b2c529d9bd7d4ad5492f0118d773e 20-Oct-2010 Elliott Hughes <enh@google.com> Improve Data(Input|Output)(Stream)? documentation.

Bug: 3032515
Change-Id: I2e9574507a05ff5fa48ee6c85f0ce619c230baa6
ava/io/DataInput.java
ava/io/DataInputStream.java
ava/io/DataOutput.java
ava/io/DataOutputStream.java
43a9f774d075e0e441d8b996e3f6c81ea483ec89 19-Oct-2010 Elliott Hughes <enh@google.com> BufferIterator support for byte[].

Bug: 3032515
Change-Id: I040a92c3ce241aa97719ff94e3cc31c62473bf46
ava/io/DataInput.java
ava/nio/Buffer.java
ava/nio/ByteOrder.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/HeapByteBuffer.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
ava/nio/ShortToByteBufferAdapter.java
ava/util/zip/ZipFile.java
ibcore/io/BufferIterator.java
ibcore/io/HeapBufferIterator.java
ibcore/io/MemoryMappedFile.java
ibcore/io/NioBufferIterator.java
ibcore/io/SizeOf.java
1b3761e5761862ec05d7aa283605012e236f17d1 19-Oct-2010 Elliott Hughes <enh@google.com> Merge "Factor out the code that peeks/pokes ints/longs/shorts from a byte[]." into dalvik-dev
af301fb0e674665dae3e9cb94344558923ec8e0a 19-Oct-2010 Elliott Hughes <enh@google.com> Factor out the code that peeks/pokes ints/longs/shorts from a byte[].

My intention here is that I'll want to reuse this code in my BufferIterator
for byte[]s (http://b/3032515).

This actually makes a noticeable nio benchmark improvement, presumably because
of the switch to static methods, so this helps http://b/2985452 too.

I plan on experimenting with native implementations for the new OSMemory
methods, but that can wait.

Change-Id: Ie5b34910b1e99930ba1f13c0e7002245b901039b
ava/nio/HeapByteBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
rg/apache/harmony/luni/platform/OSMemory.java
1c5aa9ad334fb7ddda5a5b2347ee4d3c67313235 19-Oct-2010 Brian Carlstrom <bdc@google.com> am 8ae047f5: Merge "Change Engine.getInstance interfaces to make usage less error prone"

Merge commit '8ae047f5329f8bc216e3fe377c068fd8457966f4' into dalvik-dev

* commit '8ae047f5329f8bc216e3fe377c068fd8457966f4':
Change Engine.getInstance interfaces to make usage less error prone
6cdb6b7e6939270ccd21790ec95e42197cefc0c3 19-Oct-2010 Brian Carlstrom <bdc@google.com> Change Engine.getInstance interfaces to make usage less error prone

Change-Id: I4c58c95ab4216b52aa8af4fbce7a8d7f4860c2b7
ava/security/AlgorithmParameterGenerator.java
ava/security/AlgorithmParameters.java
ava/security/KeyFactory.java
ava/security/KeyPairGenerator.java
ava/security/KeyStore.java
ava/security/MessageDigest.java
ava/security/Policy.java
ava/security/SecureRandom.java
ava/security/Signature.java
ava/security/cert/CertPathBuilder.java
ava/security/cert/CertPathValidator.java
ava/security/cert/CertStore.java
ava/security/cert/CertificateFactory.java
avax/crypto/Cipher.java
avax/crypto/ExemptionMechanism.java
avax/crypto/KeyAgreement.java
avax/crypto/KeyGenerator.java
avax/crypto/Mac.java
avax/crypto/SecretKeyFactory.java
avax/net/ssl/KeyManagerFactory.java
avax/net/ssl/SSLContext.java
avax/net/ssl/TrustManagerFactory.java
rg/apache/harmony/security/fortress/Engine.java
3fdb2c6ffd3cf9434e51a0a37cc53b519a2c6cbb 19-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Follow up on HTTP proxy selector docs." into dalvik-dev
ce23c2dff2f5ad5b3ada0a6a58aba65ac87ed08b 19-Oct-2010 Brian Carlstrom <bdc@google.com> am 0a480846: Remove Engine.spi memory leak by clearing after access

Merge commit '0a480846a9798c763b088a122ab0dcd3dc3a17b6' into dalvik-dev

* commit '0a480846a9798c763b088a122ab0dcd3dc3a17b6':
Remove Engine.spi memory leak by clearing after access
0a480846a9798c763b088a122ab0dcd3dc3a17b6 19-Oct-2010 Brian Carlstrom <bdc@google.com> Remove Engine.spi memory leak by clearing after access

Also other minor code cleanup such as:
- made assorted fields final
- fixed lazy initialization without volatile or sync

Bug: 1322442
Change-Id: I34e428dff5f07a7291d635c724111d44f2deff1c
ava/security/AlgorithmParameterGenerator.java
ava/security/AlgorithmParameters.java
ava/security/KeyFactory.java
ava/security/KeyPairGenerator.java
ava/security/KeyStore.java
ava/security/MessageDigest.java
ava/security/Policy.java
ava/security/SecureRandom.java
ava/security/Signature.java
ava/security/cert/CertPathBuilder.java
ava/security/cert/CertPathValidator.java
ava/security/cert/CertStore.java
ava/security/cert/CertificateFactory.java
avax/crypto/Cipher.java
avax/crypto/ExemptionMechanism.java
avax/crypto/KeyAgreement.java
avax/crypto/KeyGenerator.java
avax/crypto/Mac.java
avax/crypto/SecretKeyFactory.java
avax/net/ssl/KeyManagerFactory.java
avax/net/ssl/SSLContext.java
avax/net/ssl/TrustManagerFactory.java
rg/apache/harmony/security/fortress/Engine.java
ac29aad40bb1ffc25e5e66c9705cea8468021093 19-Oct-2010 Jesse Wilson <jessewilson@google.com> Follow up on HTTP proxy selector docs.

Change-Id: Ib1e5071f112deb5129ea721836e028a26045fb91
http://b/3097518
ava/net/ProxySelector.java
90224a5fd4a49b519039bd29d72c0a6a06a2752b 19-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Rewrite ProxySelector and write a test to go with it." into dalvik-dev
3b0348d1081a4645aa38da97ee299fadc040c1b4 19-Oct-2010 Jesse Wilson <jessewilson@google.com> Rewrite ProxySelector and write a test to go with it.

http://b/3097518

Change-Id: Ic6b28ab21e00b6b55a01ae7927b87ac0d0375b44
ava/net/ProxySelector.java
ava/net/ProxySelectorImpl.java
9efa300c26865520498c0ed132ff9ebe499e7d84 18-Oct-2010 Elliott Hughes <enh@google.com> Remove more tabs.

Missed these in the big cleanup because they didn't look like code we were maintaining. The
xalan/xpath/et cetera stuff is all still tab-filled, and there are a few package.html files
too (for which I've raised http://b/3107546).

Change-Id: I7ad956f3c410701fec13731c9affbcedd24a4a9a
rg/apache/harmony/security/asn1/ASN1Choice.java
rg/apache/harmony/security/provider/crypto/DSAPrivateKeyImpl.java
rg/apache/harmony/security/provider/crypto/DSAPublicKeyImpl.java
rg/apache/harmony/security/x501/AttributeTypeAndValueComparator.java
rg/apache/harmony/security/x509/AlgorithmIdentifier.java
rg/apache/harmony/security/x509/Extension.java
rg/apache/harmony/security/x509/Extensions.java
rg/apache/harmony/security/x509/GeneralName.java
rg/apache/harmony/security/x509/TBSCertList.java
1f07ea29bc2d334c55c16227582a7795b8c117c1 18-Oct-2010 Elliott Hughes <enh@google.com> Give every NumberFormatException a useful detail message.

Bug: 3095335
Change-Id: If0409c6328c2fa2a35e5027e20b4786fe87e693b
ava/lang/Byte.java
ava/lang/Integer.java
ava/lang/Long.java
ava/lang/Short.java
ava/math/BigDecimal.java
ava/math/BigInt.java
ava/math/BigInteger.java
ava/sql/Timestamp.java
rg/apache/harmony/luni/util/FloatingPointParser.java
rg/apache/harmony/luni/util/HexStringParser.java
de72f0f4d03ac884c98ff039d0c80f8f8a8fe7db 15-Oct-2010 Jesse Wilson <jessewilson@google.com> am 12dad512: am 2545edd2: am 5b539e57: Merge "Fix HTTPS hostname verification to use the URL host, not the proxy host." into gingerbread

Merge commit '12dad512f75d1b669b36f2dad7bc4d7a90a3b38e' into dalvik-dev

* commit '12dad512f75d1b669b36f2dad7bc4d7a90a3b38e':
Fix HTTPS hostname verification to use the URL host, not the proxy host.
845da92c372adcc47dae414da5ae2f87893fbe4b 15-Oct-2010 Jesse Wilson <jessewilson@google.com> am 00e115ca: am 4aa863a0: Fix Class.getMethods() for visibility bridge methods.

Merge commit '00e115caecc5fadf010f1677d7b0cb3e83065461' into dalvik-dev

* commit '00e115caecc5fadf010f1677d7b0cb3e83065461':
Fix Class.getMethods() for visibility bridge methods.
12dad512f75d1b669b36f2dad7bc4d7a90a3b38e 15-Oct-2010 Jesse Wilson <jessewilson@google.com> am 2545edd2: am 5b539e57: Merge "Fix HTTPS hostname verification to use the URL host, not the proxy host." into gingerbread

Merge commit '2545edd22e32e1d2e1cd3c70543fcef112c9d66a'

* commit '2545edd22e32e1d2e1cd3c70543fcef112c9d66a':
Fix HTTPS hostname verification to use the URL host, not the proxy host.
00e115caecc5fadf010f1677d7b0cb3e83065461 15-Oct-2010 Jesse Wilson <jessewilson@google.com> am 4aa863a0: Fix Class.getMethods() for visibility bridge methods.

Merge commit '4aa863a08a4fed2f8b8967f63e0df61d72f28b79'

* commit '4aa863a08a4fed2f8b8967f63e0df61d72f28b79':
Fix Class.getMethods() for visibility bridge methods.
1d95ed8cdeeb023281dc855aa26a444aeccd1c11 15-Oct-2010 Brian Carlstrom <bdc@google.com> am 49a52427: am 7e39eff6: am ed72e08a: Change SSLParametersImpl.getDefaultTrustManager to not throw checked exceptions

Merge commit '49a52427c960328491105cbb08d6c3167ed34d97' into dalvik-dev

* commit '49a52427c960328491105cbb08d6c3167ed34d97':
Change SSLParametersImpl.getDefaultTrustManager to not throw checked exceptions
7f43cc3f91d9322ef85137fb25986d67f838856f 15-Oct-2010 Brian Carlstrom <bdc@google.com> am f97a046b: am 0dc94964: am d6e53e42: SSLParameters.getDefaultTrustManager() should lazily initialize its value

Merge commit 'f97a046bfb36b5bfee49fd527d4de7cb21b211e2' into dalvik-dev

* commit 'f97a046bfb36b5bfee49fd527d4de7cb21b211e2':
SSLParameters.getDefaultTrustManager() should lazily initialize its value
49a52427c960328491105cbb08d6c3167ed34d97 15-Oct-2010 Brian Carlstrom <bdc@google.com> am 7e39eff6: am ed72e08a: Change SSLParametersImpl.getDefaultTrustManager to not throw checked exceptions

Merge commit '7e39eff6d4fea3af79d9fff32e620ee86ba700b4'

* commit '7e39eff6d4fea3af79d9fff32e620ee86ba700b4':
Change SSLParametersImpl.getDefaultTrustManager to not throw checked exceptions
f97a046bfb36b5bfee49fd527d4de7cb21b211e2 15-Oct-2010 Brian Carlstrom <bdc@google.com> am 0dc94964: am d6e53e42: SSLParameters.getDefaultTrustManager() should lazily initialize its value

Merge commit '0dc949645456739af3cbb8e3bc6221798abb00c5'

* commit '0dc949645456739af3cbb8e3bc6221798abb00c5':
SSLParameters.getDefaultTrustManager() should lazily initialize its value
5b539e574f03fd07a03d8b9acfdad1599f947918 14-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix HTTPS hostname verification to use the URL host, not the proxy host." into gingerbread
ea8132734c35a1bb011dbd56c2eb5d94e0a14e04 14-Oct-2010 Jesse Wilson <jessewilson@google.com> Fix HTTPS hostname verification to use the URL host, not the proxy host.

Change-Id: I1a0de6f650b89ce0eed908567a04d2e86f76f889
http://b/3097277
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
4aa863a08a4fed2f8b8967f63e0df61d72f28b79 14-Oct-2010 Jesse Wilson <jessewilson@google.com> Fix Class.getMethods() for visibility bridge methods.

We had a bug where we couldn't find synthetic methods added by
subclasses to boost visibility of their superclass methods.

The old logic appeared to work fine with the covariant return
type synthetic methods, but broke down on these visibility
synthetic methods.

For reference, the general rules are:
- when there is a synthetic method for a covariant return type,
include it in getMethods() but prefer the natural method on
getMethod() calls.
- when there is a synthetic method for a visibility boost, prefer
it over the superclass method on getMethods() and getMethod()
calls.

Change-Id: Ied1f9fc9892d211647da87959746839f7e0e1140
http://b/2908173
ava/lang/ClassCache.java
ava/lang/reflect/Method.java
69a0026b7f1f3d5840440dca045dd6cbdd67fdcc 14-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix Class.getMethods() for visibility bridge methods." into gingerbread
7e27918cf43b2e095cd10540185ffed81b843fa2 14-Oct-2010 Jesse Wilson <jessewilson@google.com> Fix Class.getMethods() for visibility bridge methods.

We had a bug where we couldn't find synthetic methods added by
subclasses to boost visibility of their superclass methods.

The old logic appeared to work fine with the covariant return
type synthetic methods, but broke down on these visibility
synthetic methods.

For reference, the general rules are:
- when there is a synthetic method for a covariant return type,
include it in getMethods() but prefer the natural method on
getMethod() calls.
- when there is a synthetic method for a visibility boost, prefer
it over the superclass method on getMethods() and getMethod()
calls.

Change-Id: Ied1f9fc9892d211647da87959746839f7e0e1140
http://b/2908173
ava/lang/ClassCache.java
ava/lang/reflect/Method.java
ed72e08ad6ee16694681c8c2317f97de6d9f4323 13-Oct-2010 Brian Carlstrom <bdc@google.com> Change SSLParametersImpl.getDefaultTrustManager to not throw checked exceptions

Change-Id: Id5a042873acc0a8185567ca18ce009c06e54f38d
rg/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
d6e53e42867824f97c9fb9c427cc188897ea9315 13-Oct-2010 Brian Carlstrom <bdc@google.com> SSLParameters.getDefaultTrustManager() should lazily initialize its value

Make SSLParametersImpl's defaultKeyManager, defaultTrustManager,
defaultSecureRandom, and defaultParameters all use the single check
idiom for initialization. Move such initialization for
defaultKeyManager and defaultTrustManager out of SSLParametersImpl
constructor into static functions, replacing original
getDefaultTrustManager simple accessor with code that performs lazy
initialization.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java

dirrect -> direct
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java

hanshake -> handshake
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLRecordProtocol.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java

Bug: 2954292
Change-Id: I19bae541613666903b57fccf3e8bfef65b74d6cf
rg/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
rg/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLRecordProtocol.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java
b744a7edf23c14216698ad69ea59151e07cc50b8 13-Oct-2010 Elliott Hughes <enh@google.com> Add a hidden method to clear our Java-level DNS cache.

So the network guys can call this when the network changes, in case addresses
that were valid on that network aren't valid on the new network.

Change-Id: I07175b9b754bb4745a2f78b43f024723891c3f05
ava/net/AddressCache.java
ava/net/InetAddress.java
12f2d8e2760b78c673b7a187b9062b3938a03147 12-Oct-2010 Brian Carlstrom <bdc@google.com> Revised CloseGuard usage pattern

- CloseGuard.get() instants are now "unopened"
- In constructor cases, guard.open("...") is now at the end
- In metod cases, guard.open("...") is now after resource acquisition
- guard null pointer checks in finalizers in case constructor threw exception

Bug: 2645458
Change-Id: Ieb874a8c33b347768a9fa7437b3dd16f3d56d886
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
ava/math/BigInt.java
ava/util/zip/Deflater.java
ava/util/zip/Inflater.java
ava/util/zip/ZipFile.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
6a27d01d76bb3ea7472e55aa275c0a1377b97003 10-Oct-2010 Jesse Wilson <jessewilson@google.com> am 058c0764: am 765c2139: Drop a proper finalizer in RandomAccessFile to catch resource leaks.

Merge commit '058c07643f09975c4361634984babbbf6e5bd157'

* commit '058c07643f09975c4361634984babbbf6e5bd157':
Drop a proper finalizer in RandomAccessFile to catch resource leaks.
e7610327dfb896959dd0a634c7e2363bbb927114 10-Oct-2010 Elliott Hughes <enh@google.com> am a8e7b5e9: am ee3152da: am 0e8cadc6: java.io.File javadoc improvements.

Merge commit 'a8e7b5e9f115615fbe63be23827589c1744e4076' into dalvik-dev

* commit 'a8e7b5e9f115615fbe63be23827589c1744e4076':
java.io.File javadoc improvements.
a8e7b5e9f115615fbe63be23827589c1744e4076 10-Oct-2010 Elliott Hughes <enh@google.com> am ee3152da: am 0e8cadc6: java.io.File javadoc improvements.

Merge commit 'ee3152daa9742c7cde95926efea58da2b5e8daeb'

* commit 'ee3152daa9742c7cde95926efea58da2b5e8daeb':
java.io.File javadoc improvements.
868f92a4063a41ab51190a4ad1a118f359a327d1 10-Oct-2010 Elliott Hughes <enh@google.com> am cc27a457: am 290e262c: am 575c2a63: Merge "Fix and improve Matcher.group(int) documentation." into gingerbread

Merge commit 'cc27a457bf6d3e20f03b7ab9c2767dc79b47a666' into dalvik-dev

* commit 'cc27a457bf6d3e20f03b7ab9c2767dc79b47a666':
Fix and improve Matcher.group(int) documentation.
cc27a457bf6d3e20f03b7ab9c2767dc79b47a666 10-Oct-2010 Elliott Hughes <enh@google.com> am 290e262c: am 575c2a63: Merge "Fix and improve Matcher.group(int) documentation." into gingerbread

Merge commit '290e262c8507f0a95bd732e1ee1e3b8eedc3667e'

* commit '290e262c8507f0a95bd732e1ee1e3b8eedc3667e':
Fix and improve Matcher.group(int) documentation.
0df59ae1c7d720dc6263760a0802aded41793f90 08-Oct-2010 Elliott Hughes <enh@google.com> Fix getLong/getDouble for byte[]-backed nio Buffers.

A regression I introduced. Happily, the correct version doesn't sacrifice speed.

Bug: 3066167
Change-Id: Idef17012b8d84a05644ba161bfdc462a38cf3326
ava/nio/HeapByteBuffer.java
68dc77f11ac04a34b797d4af716f81505c2f6fa5 08-Oct-2010 Elliott Hughes <enh@google.com> Merge "Fix our byte order behavior for slice and wrap operations." into dalvik-dev
17b2f493468764dc1f237c02d94747d122dbd101 08-Oct-2010 Elliott Hughes <enh@google.com> Fix our byte order behavior for slice and wrap operations.

Our documentation was correct, but our implementation was not. Includes
extensive new tests.

Bug: 3066167
Change-Id: Ie7d6e6432f1d675f20af020cc662dab6eb181a50
ava/nio/BaseByteBuffer.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/ReadOnlyCharArrayBuffer.java
ava/nio/ReadOnlyDirectByteBuffer.java
ava/nio/ReadOnlyDoubleArrayBuffer.java
ava/nio/ReadOnlyFloatArrayBuffer.java
ava/nio/ReadOnlyHeapByteBuffer.java
ava/nio/ReadOnlyIntArrayBuffer.java
ava/nio/ReadOnlyLongArrayBuffer.java
ava/nio/ReadOnlyShortArrayBuffer.java
ava/nio/ReadWriteCharArrayBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ReadWriteDoubleArrayBuffer.java
ava/nio/ReadWriteFloatArrayBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
ava/nio/ReadWriteIntArrayBuffer.java
ava/nio/ReadWriteLongArrayBuffer.java
ava/nio/ReadWriteShortArrayBuffer.java
ava/nio/ShortToByteBufferAdapter.java
765c2139fde183fc60e6fcb22a6b75378d7dbcb5 08-Oct-2010 Jesse Wilson <jessewilson@google.com> Drop a proper finalizer in RandomAccessFile to catch resource leaks.

Submitted to dalvik-dev as https://android-git.corp.google.com/g/72685
http://b/3015023

Change-Id: I30635aab91774f5eaecd354e8418ba6401705757
ava/io/RandomAccessFile.java
0cde4bd97ee2c3e24cf8bc5356b0e83b776e310b 08-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Drop a proper finalizer in RandomAccessFile to catch resource leaks." into dalvik-dev
91e624a56a11f7235ca328429b6bf2da356a7896 07-Oct-2010 Brian Carlstrom <bdc@google.com> am 44b0fe09: am fc15fc0f: am 7b4e6828: Merge "Favor Harmony\'s CertificateFactory.X509 over BouncyCastle\'s" into gingerbread

Merge commit '44b0fe099dae10a9908194af0aebf2849adce785' into dalvik-dev

* commit '44b0fe099dae10a9908194af0aebf2849adce785':
Favor Harmony's CertificateFactory.X509 over BouncyCastle's
44b0fe099dae10a9908194af0aebf2849adce785 07-Oct-2010 Brian Carlstrom <bdc@google.com> am fc15fc0f: am 7b4e6828: Merge "Favor Harmony\'s CertificateFactory.X509 over BouncyCastle\'s" into gingerbread

Merge commit 'fc15fc0f9902bdecd1c535e6e06ea52669695fce'

* commit 'fc15fc0f9902bdecd1c535e6e06ea52669695fce':
Favor Harmony's CertificateFactory.X509 over BouncyCastle's
fbe7f04ba384cb7ea7aca7d291b2596622ff1b0e 07-Oct-2010 Jesse Wilson <jessewilson@google.com> Drop a proper finalizer in RandomAccessFile to catch resource leaks.

http://b/3015023
Change-Id: Ic938c82d3353a2231619f2bd87e4480a2b57c622
ava/io/RandomAccessFile.java
0e8cadc6caf397fdfca97505978defdc6953a714 07-Oct-2010 Elliott Hughes <enh@google.com> java.io.File javadoc improvements.

Bug: http://code.google.com/p/android/issues/detail?id=5929
Change-Id: Ie24c1060a968e3da611aef000ff29762f6f7101a
ava/io/File.java
575c2a638dd8ad8ca4a548b394bd3a938ab49c1d 07-Oct-2010 Elliott Hughes <enh@google.com> Merge "Fix and improve Matcher.group(int) documentation." into gingerbread
4dfae7b3e2b56160646c17d93b32b3ff495c0053 07-Oct-2010 Elliott Hughes <enh@google.com> Finish (for now) the icu4jni cleanup.

This is the most interesting change, now all the pieces are in place. The
concrete Collator implementation (now called RuleBasedCollatorICU for clarity)
becomes quite a bit simpler.

Bug: 3045778
Change-Id: I98fb5b78c42a13584e541818aa4427c78add79d0
om/ibm/icu4jni/text/CollationAttribute.java
om/ibm/icu4jni/text/Collator.java
om/ibm/icu4jni/text/RuleBasedCollator.java
ava/text/Collator.java
ava/text/RuleBasedCollator.java
ava/util/SimpleTimeZone.java
ibcore/icu/CollationKey.java
ibcore/icu/CollationKeyICU.java
ibcore/icu/RuleBasedCollatorICU.java
5850271b4ab93ebc27c1d49169a348c6be3c7f04 06-Oct-2010 Elliott Hughes <enh@google.com> Fix and improve Matcher.group(int) documentation.

Bug: http://code.google.com/p/android/issues/detail?id=11723
Change-Id: Idd1c9009f1267ca7624ba8492a162bd72232f2cc
ava/util/regex/Matcher.java
ava/util/regex/Pattern.java
cdce865a463ec17f35c4cc1a6f71813c78e3a566 06-Oct-2010 Brian Carlstrom <bdc@google.com> resolved conflicts for merge of 33cb9824 to dalvik-dev

Change-Id: I36508876ffcda358379a0955f107c8706e6130e2
33cb9824c6950db2b6c76d7fddec9fb471316b42 06-Oct-2010 Brian Carlstrom <bdc@google.com> Remove OpenSSLSocketImpl.instanceCount

Its use in ActivityThread is being replaced with Debug.countInstancesOfClass(OpenSSLSocketImpl.class)

Bug: 3015791
Change-Id: I26ece579f8e0fce62f17f398055b16aceaaf1b08
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8a 30-Sep-2010 Brian Carlstrom <bdc@google.com> CloseGuard: finalizers for closeable objects should log complaints

Introducing CloseGuard which warns when resources are implictly
cleaned up by finalizers when an explicit termination method, to use
the Effective Java "Issue 7: Avoid finalizers" terminology, should
have been used by the caller.

libcore classes that can use CloseGuard now do so.

Bug: 3041575
Change-Id: I4a4e3554addaf3075c823feb0a0ff0ad1c1f6196
ava/io/Closeable.java
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/math/BigInt.java
ava/util/zip/Deflater.java
ava/util/zip/Inflater.java
ava/util/zip/ZipFile.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerFactoryImpl.java
735f93475d1d54ad7b2d1c2376adc0fcf4d4c7a1 05-Oct-2010 Brian Carlstrom <bdc@google.com> Favor Harmony's CertificateFactory.X509 over BouncyCastle's

Bug: 2225935
Change-Id: Ibca92c9fa34fc539ebb8ea86fb0ced62e3dbe5de
ava/security/Security.java
ava/security/security.properties
avax/net/ssl/DefaultHostnameVerifier.java
cf686df19a9f52169247b06b09587eafcdc9960a 04-Oct-2010 Elliott Hughes <enh@google.com> Fix the default decomposition mode of Collators.

It's unclear why we thought it shouldn't be NO_DECOMPOSITION. That's the
default for both ICU and the RI. This patch undoes the part of the change that
introduced this discrepancy, and undoes a change we made to silence a test
that was warning us about the discrepancy.

Bug: 1635883
Change-Id: Ic0e121e9b10e4f332b04b3cca1946d8bce32c06e
ava/text/RuleBasedCollator.java
86cb0db2efb36be32cf7da0384525c1e0d2a6438 04-Oct-2010 Elliott Hughes <enh@google.com> Merge "More package-jiggling for our ICU-related code." into dalvik-dev
cfa6ffebf3a63db7a125c4d9abe7e661fac5cc1f 04-Oct-2010 Elliott Hughes <enh@google.com> More package-jiggling for our ICU-related code.

Bug: 3045778
Change-Id: Ia9b29b28512deca6bd9dad806468238f8db2a8b9
om/ibm/icu4jni/text/CollationAttribute.java
om/ibm/icu4jni/text/CollationElementIterator.java
om/ibm/icu4jni/text/CollationKey.java
om/ibm/icu4jni/text/NativeCollation.java
om/ibm/icu4jni/text/RuleBasedCollator.java
ava/text/CollationElementIterator.java
ibcore/icu/CollationElementIteratorICU.java
ibcore/icu/CollationKey.java
ibcore/icu/NativeCollation.java
fcc5c4e8e84b6d486de73fbd16bee04bd1869956 04-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Save unnecessary close() and flush() calls in HTTP uploads." into dalvik-dev
d63678c46aa74720b2a9feb25aeba03b9697475b 04-Oct-2010 Jesse Wilson <jessewilson@google.com> Save unnecessary close() and flush() calls in HTTP uploads.

The calls weren't hurting anything, but the only caller of
this method already closes the output stream and flushes the
socket stream.

Change-Id: Ib57c997d7ed6cf21091211b2eb005bbabac8363c
rg/apache/harmony/luni/internal/net/www/protocol/http/RetryableOutputStream.java
970ed793b308c2c2ba099b6bed52a7a68af1c450 04-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Use LogManager.class.getResourceAsStream to defend against subclasses." into dalvik-dev
8ced42eaddbe441db51cf5538f15ec746c180936 03-Oct-2010 Jesse Wilson <jessewilson@google.com> Use LogManager.class.getResourceAsStream to defend against subclasses.

Previuosly we were using getClass().getResourceAsStream() which caused
the resource to be unavailable when LogManager was subclassed.

Change-Id: I4ebe13a2bb7f50ebaa3b4a458310d0c397a80aea
http://b/2487364
ava/util/logging/LogManager.java
a7a70410e26802f3ab480b08a1ab499338cb6f7e 03-Oct-2010 Jesse Wilson <jessewilson@google.com> Use IoUtils.closeQuietly where possible.

Change-Id: I354c1e00b7068108032d09c0a1c38e29f6283fb0
ava/net/URLClassLoader.java
ava/security/KeyStore.java
ava/util/Formatter.java
ava/util/Scanner.java
ava/util/ServiceLoader.java
ava/util/logging/FileHandler.java
ava/util/logging/SimpleFormatter.java
ava/util/prefs/XMLParser.java
avax/xml/datatype/FactoryFinder.java
avax/xml/validation/SchemaFactoryFinder.java
avax/xml/xpath/XPathFactoryFinder.java
ibcore/io/IoUtils.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/xml/ExpatParser.java
rg/apache/harmony/xml/ExpatReader.java
rg/apache/harmony/xnet/provider/jsse/FileClientSessionCache.java
071a878742040d0e5f3f8f508a6418180d24e664 02-Oct-2010 Elliott Hughes <enh@google.com> Merge "More icu4jni reshuffling." into dalvik-dev
c27a366a89e470690e99374b15270e7b9169ade1 02-Oct-2010 Elliott Hughes <enh@google.com> More icu4jni reshuffling.

Bug: 3045778
Change-Id: Iafb367f97d1fb169c6106adad0525cfcc0e10f25
om/ibm/icu4jni/text/NativeBreakIterator.java
om/ibm/icu4jni/text/NativeDecimalFormat.java
ava/text/BreakIterator.java
ava/text/DecimalFormat.java
ava/text/RuleBasedBreakIterator.java
ava/util/Formatter.java
ibcore/icu/NativeBreakIterator.java
ibcore/icu/NativeDecimalFormat.java
b10024c7cf6d4cfbcc6016aa9c0e102f59c15d36 02-Oct-2010 Jesse Wilson <jessewilson@google.com> Fix deserialization of NumberFormat.Field and related types.

This uses reflection to make it foolishly-easy to keep up-to-date
as members in these classes are added.

Change-Id: I6029aedf56f6237b971f240dbca45ed3acd50e0a
ava/awt/font/TextAttribute.java
ava/text/AttributedCharacterIterator.java
ava/text/DateFormat.java
ava/text/MessageFormat.java
ava/text/NumberFormat.java
162b0775772fa66b7eb634760a8159a60c1ddcea 02-Oct-2010 Elliott Hughes <enh@google.com> Move more stuff out of icu4jni; ICU and LocaleData.

Bug: 3045778
Change-Id: I59fd27920a2da9a42b29fd79b8d81bdaabdef8cd
om/ibm/icu4jni/text/NativeDecimalFormat.java
om/ibm/icu4jni/util/ICU.java
om/ibm/icu4jni/util/LocaleData.java
ava/lang/CaseMapper.java
ava/text/BreakIterator.java
ava/text/Collator.java
ava/text/DateFormat.java
ava/text/DateFormatSymbols.java
ava/text/DecimalFormat.java
ava/text/DecimalFormatSymbols.java
ava/text/NumberFormat.java
ava/text/SimpleDateFormat.java
ava/util/Calendar.java
ava/util/Currency.java
ava/util/Formatter.java
ava/util/Locale.java
ava/util/ResourceBundle.java
ibcore/icu/ICU.java
ibcore/icu/LocaleData.java
8f898c05a260de523d783877d31ec4d9e62a8e9d 02-Oct-2010 Elliott Hughes <enh@google.com> Merge "Start moving icu4jni classes into libcore.icu." into dalvik-dev
82281cde1eaec8f299cc7d4f383f716cf9e6fe71 02-Oct-2010 Brian Carlstrom <bdc@google.com> am dc825fef: am 9583c700: am cd68630d: Merge "SSL* AppData should not hold onto JNI global references" into gingerbread

Merge commit 'dc825fef1519d4a65abf374e31d985cb2faf9d4a' into dalvik-dev

* commit 'dc825fef1519d4a65abf374e31d985cb2faf9d4a':
SSL* AppData should not hold onto JNI global references
644ccb2c3d69ee6f3a69996ca7651b84d409fe41 02-Oct-2010 Elliott Hughes <enh@google.com> Start moving icu4jni classes into libcore.icu.

Bug: 3045778
Change-Id: I8d87c31d36b441a69e6d3259e700b7133dfdc803
om/ibm/icu4jni/charset/CharsetDecoderICU.java
om/ibm/icu4jni/charset/CharsetEncoderICU.java
om/ibm/icu4jni/charset/CharsetICU.java
om/ibm/icu4jni/charset/NativeConverter.java
om/ibm/icu4jni/common/ErrorCode.java
ava/nio/charset/Charset.java
ava/nio/charset/CharsetEncoder.java
ibcore/icu/CharsetDecoderICU.java
ibcore/icu/CharsetEncoderICU.java
ibcore/icu/CharsetICU.java
ibcore/icu/ErrorCode.java
ibcore/icu/NativeConverter.java
dc825fef1519d4a65abf374e31d985cb2faf9d4a 02-Oct-2010 Brian Carlstrom <bdc@google.com> am 9583c700: am cd68630d: Merge "SSL* AppData should not hold onto JNI global references" into gingerbread

Merge commit '9583c70042da95219941b430d51a9994334e49f0'

* commit '9583c70042da95219941b430d51a9994334e49f0':
SSL* AppData should not hold onto JNI global references
572f5b0b0fc7dd3abc39ef8285871554bd5faab4 02-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Simplify skip() to use skipByReading or the superclass where possible." into dalvik-dev
cd68630d4dea50d49ae613904bbdf2036deb1ccd 02-Oct-2010 Brian Carlstrom <bdc@google.com> Merge "SSL* AppData should not hold onto JNI global references" into gingerbread
8e1b1ee7fe8ec6168c44a361233cbe225a16fc9d 02-Oct-2010 Elliott Hughes <enh@google.com> Make InetSocketAddress' fields final.

Also remove worse-than-useless javadoc.

Change-Id: Ib49e6fd75a253c06bbdb58c54edc637093da4d14
ava/net/InetSocketAddress.java
80b486724ca19b3c1c3c36334d06856330362f83 01-Oct-2010 Jesse Wilson <jessewilson@google.com> Simplify skip() to use skipByReading or the superclass where possible.

Several classes were overriding InputStream.skip() but not doing
anything better than the base class. These were deleted.

Others were allocating skip buffers which was correct, but duplicated
code with our Streams utility class.

The CipherInputStream class had a skip method that always skipped
0 bytes. This has been fixed and tested.

Change-Id: Ic96c600e111c11cf7364b4e0a721791d7e3c2ae1
ava/io/FilterInputStream.java
ava/io/LineNumberInputStream.java
ava/util/jar/JarFile.java
ava/util/zip/CheckedInputStream.java
ava/util/zip/DeflaterInputStream.java
ava/util/zip/ZipInputStream.java
avax/crypto/CipherInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnectionImpl.java
rg/apache/harmony/luni/net/SocketInputStream.java
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLInputStream.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketInputStream.java
df9c090e85c4d052cdd17b5f981819be86a56737 01-Oct-2010 Brian Carlstrom <bdc@google.com> SSL* AppData should not hold onto JNI global references

Summary:

NativeCrypto.SSL_do_handshake stored JNI global references in its
AppData instance for use in upcalls from OpenSSL that invoke Java
callbacks. However, one of the references was to the
SSLHandshakeCallbacks which in the common case of OpenSSLSocketImpl is
the OpenSSLSocketImpl instance itself. This meant that if code dropped
the OpenSSLSocketImpl without closing (such as Apache HTTP Client),
the instances would never be collected, and perhaps more importantly,
file descriptors would not be closed.

The fix is to pass in the objects required during a callback in all
downcalls to SSL_* methods that could result in a callback and clear
them on return. The existing code already did this for the JNIEnv*, so
that code was expanded to handle setting the jobjects as well.

Details:

In the native code used to extract the FileDescriptor object from a
Socket on the call to NativeCrypto.SSL_do_handshake. However, since we
need this for every read and write operations, we now do this in Java
to avoid the repeated overhead. NativeCrypto.SSL_do_handshake now
takes a FileDescriptor, which it extracted from the Socket the
convenience function using NativeCrypto.getFileDescriptor(Socket)

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java

In addition to tracking changes to pass FileDescriptor and
SSLHandshakeCallbacks, removed final uses of getFieldId since the
code no longer needs to extract FileDescriptors itself

luni/src/main/native/NativeCrypto.cpp

The Socket field used to be non-null in the wrapper case and null in
the non-wrapper case. To simplify things a bit, "socket == this" in
the non-wrapper case. The socket field is now also final and joined by
a final FileDescriptor field.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Updated NativeCryptoTest to track FileDescriptor and
SSLHandshakeCallbacks by expanding the Hooks.afterHandshake to provide
them. Also changed to add a 5 second timeout to many test cases.

luni/src/test/java/org/apache/harmony/xnet/provider/jsse/NativeCryptoTest.java

Bug: 2989218

Change-Id: Iccef92b59475f3c1929e990893579493ece9d442
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
07fa417b912bf6f7a115248cf72754bd9398d92d 01-Oct-2010 Elliott Hughes <enh@google.com> am 1c9d28c2: am 564bd43b: am 95dd6707: Merge "Better detail messages for System.loadLibrary UnsatisfiedLinkErrors." into gingerbread

Merge commit '1c9d28c2eb24e65e4c03f14ecabe06e8f59f705c' into dalvik-dev

* commit '1c9d28c2eb24e65e4c03f14ecabe06e8f59f705c':
Better detail messages for System.loadLibrary UnsatisfiedLinkErrors.
1c9d28c2eb24e65e4c03f14ecabe06e8f59f705c 01-Oct-2010 Elliott Hughes <enh@google.com> am 564bd43b: am 95dd6707: Merge "Better detail messages for System.loadLibrary UnsatisfiedLinkErrors." into gingerbread

Merge commit '564bd43b56c09c890b2d216a2246982d27260f0c'

* commit '564bd43b56c09c890b2d216a2246982d27260f0c':
Better detail messages for System.loadLibrary UnsatisfiedLinkErrors.
95dd6707dd9202c82c3b372aa1d168516330c5b4 01-Oct-2010 Elliott Hughes <enh@google.com> Merge "Better detail messages for System.loadLibrary UnsatisfiedLinkErrors." into gingerbread
a2189df6849df91e9109eea26867a355fe459d98 01-Oct-2010 Jesse Wilson <jessewilson@google.com> am cd7664c2: am 4bf3d0b0: am d5ef39f5: Include a message when a task is rejected from an executor.

Merge commit 'cd7664c2b832ee96496c28fcbc2d6fc84e5def0a' into dalvik-dev

* commit 'cd7664c2b832ee96496c28fcbc2d6fc84e5def0a':
Include a message when a task is rejected from an executor.
cd7664c2b832ee96496c28fcbc2d6fc84e5def0a 01-Oct-2010 Jesse Wilson <jessewilson@google.com> am 4bf3d0b0: am d5ef39f5: Include a message when a task is rejected from an executor.

Merge commit '4bf3d0b0e330d46659739dc095b52f82dc23a665'

* commit '4bf3d0b0e330d46659739dc095b52f82dc23a665':
Include a message when a task is rejected from an executor.
7942de86beb191925a3062813749759151a893b4 01-Oct-2010 Jesse Wilson <jessewilson@google.com> am 8f3d7240: am 082d39a2: am e8c1e814: Merge "Don\'t explode if flush() is called when an HTTP upload stream is closed." into gingerbread

Merge commit '8f3d7240bafb2753514b7bc84c95ef9657452c83' into dalvik-dev

* commit '8f3d7240bafb2753514b7bc84c95ef9657452c83':
Don't explode if flush() is called when an HTTP upload stream is closed.
5d060f399d673f7e4d57c426fc7d87e707c31d5c 01-Oct-2010 Jesse Wilson <jessewilson@google.com> am 5df67087: am ff805724: am 16bba11e: Merge "Don\'t use the decompression-buffer as the skip buffer in InflaterInputStream." into gingerbread

Merge commit '5df6708702ddd1405e7d0a39e9f806cefd330028' into dalvik-dev

* commit '5df6708702ddd1405e7d0a39e9f806cefd330028':
Don't use the decompression-buffer as the skip buffer in InflaterInputStream.
8f3d7240bafb2753514b7bc84c95ef9657452c83 01-Oct-2010 Jesse Wilson <jessewilson@google.com> am 082d39a2: am e8c1e814: Merge "Don\'t explode if flush() is called when an HTTP upload stream is closed." into gingerbread

Merge commit '082d39a20d3844e02822d8c96a26230f6f4a0590'

* commit '082d39a20d3844e02822d8c96a26230f6f4a0590':
Don't explode if flush() is called when an HTTP upload stream is closed.
5df6708702ddd1405e7d0a39e9f806cefd330028 01-Oct-2010 Jesse Wilson <jessewilson@google.com> am ff805724: am 16bba11e: Merge "Don\'t use the decompression-buffer as the skip buffer in InflaterInputStream." into gingerbread

Merge commit 'ff8057246a6d43a55c93c9c728a6dddb0d98fcdb'

* commit 'ff8057246a6d43a55c93c9c728a6dddb0d98fcdb':
Don't use the decompression-buffer as the skip buffer in InflaterInputStream.
ba0b0d68835bc1031a72c86f202f8951c5187376 01-Oct-2010 Elliott Hughes <enh@google.com> am 45907249: am 61799c7b: am 2bcf15aa: Merge "Fix File.getCanonicalizePath to resolve symbolic links." into gingerbread

Merge commit '45907249c392e47d7901e6c0308b0705dc5dbd3c' into dalvik-dev

* commit '45907249c392e47d7901e6c0308b0705dc5dbd3c':
Fix File.getCanonicalizePath to resolve symbolic links.
d5ef39f5d96461e5c3814157f74e30cca2234624 01-Oct-2010 Jesse Wilson <jessewilson@google.com> Include a message when a task is rejected from an executor.

Browser folks have been seeing this exception in their logcat logs
and it would be handy to give them some insight on why the pool
rejected the task.

Change-Id: I7257b3b174e6e2342e63238a542095bb3f7845f2
http://b/issue?id=3023092
ava/util/concurrent/ThreadPoolExecutor.java
45907249c392e47d7901e6c0308b0705dc5dbd3c 01-Oct-2010 Elliott Hughes <enh@google.com> am 61799c7b: am 2bcf15aa: Merge "Fix File.getCanonicalizePath to resolve symbolic links." into gingerbread

Merge commit '61799c7ba25f60181a6e87ccf6ebdf82ae9f4473'

* commit '61799c7ba25f60181a6e87ccf6ebdf82ae9f4473':
Fix File.getCanonicalizePath to resolve symbolic links.
f46968564e0a773590292474fa9e50797b18bd42 01-Oct-2010 Elliott Hughes <enh@google.com> Better detail messages for System.loadLibrary UnsatisfiedLinkErrors.

This has a companion change in dalvik:
https://android-git.corp.google.com/g/71344

Bug: 3044042
Change-Id: Ia665ee59adf1ae1dbb45ba95988355839f4b0f23
ava/lang/Runtime.java
ava/lang/System.java
e8c1e814814d5a97b0ded2de31d350928182dec5 01-Oct-2010 Jesse Wilson <jessewilson@google.com> Merge "Don't explode if flush() is called when an HTTP upload stream is closed." into gingerbread
16bba11e69ea61cf6127ee837eb05c8ac50a7128 30-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Don't use the decompression-buffer as the skip buffer in InflaterInputStream." into gingerbread
f29ad8a60254345d1943d1b3836482395a7c916f 30-Sep-2010 Jesse Wilson <jessewilson@google.com> Don't explode if flush() is called when an HTTP upload stream is closed.

Streams like BufferedOutputStream always call flush() even if it is
a no-op. These flushes must be permitted for compatibility with apps
that don't call close() until after the response has been retrieved.

Change-Id: Ic5c86ab6050c6c4d166c44ae5b4fc7a1688e7e45
http://b/3038470
rg/apache/harmony/luni/internal/net/www/protocol/http/ChunkedOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/FixedLengthOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/RetryableOutputStream.java
2bcf15aac8c4dd82ef1a4b8defad00743569f927 30-Sep-2010 Elliott Hughes <enh@google.com> Merge "Fix File.getCanonicalizePath to resolve symbolic links." into gingerbread
4d2023ebe0ead25681ce350a873728dfee86b577 30-Sep-2010 Elliott Hughes <enh@google.com> Fix File.getCanonicalizePath to resolve symbolic links.

This requires fixing a few tests that don't cope with the fact that
all our temporary files are created on /sdcard, which is a symbolic
link to /mnt/sdcard, meaning that the canonical path of any temporary
file is different from the file's absolute path.

Bug: 3047893
Change-Id: I02245a290b6d2962fb1dd4d2faba30d9aa7168e0
ava/io/File.java
3541c79d5058b86e742867b4ee5811a1de01de1f 30-Sep-2010 Jesse Wilson <jessewilson@google.com> Don't use the decompression-buffer as the skip buffer in InflaterInputStream.

This has bad consequences for the GzipInputStream subclass, which can't
use the input buffer as a scratch space because it needs to CRC all of
the decompressed data.

Change-Id: I310261dc8ef7a5082768cc6d6a2eff4ef77f5a21
http://b/3042574
ava/io/InputStream.java
ava/util/zip/InflaterInputStream.java
ibcore/base/Streams.java
6efff39ab2e5f05764166dc6d57b76217995a470 30-Sep-2010 Jesse Wilson <jessewilson@google.com> am fe546fbd: am 6aded03e: am 7b660b46: Merge "Fix problems with OldSimpleDateFormatTest.java." into gingerbread

Merge commit 'fe546fbd1c01f9dcad3a4ac22ec0ec45bdc2455e' into dalvik-dev

* commit 'fe546fbd1c01f9dcad3a4ac22ec0ec45bdc2455e':
Fix problems with OldSimpleDateFormatTest.java.
fe546fbd1c01f9dcad3a4ac22ec0ec45bdc2455e 30-Sep-2010 Jesse Wilson <jessewilson@google.com> am 6aded03e: am 7b660b46: Merge "Fix problems with OldSimpleDateFormatTest.java." into gingerbread

Merge commit '6aded03ea65e0a8c7a2b584f2dcd76762b7b681a'

* commit '6aded03ea65e0a8c7a2b584f2dcd76762b7b681a':
Fix problems with OldSimpleDateFormatTest.java.
c01bb84f266011af690098a8c59d331efc14468d 30-Sep-2010 Jesse Wilson <jessewilson@google.com> am feea910b: am 901c9c6f: am 8047b6f0: Merge "Support creating unbound server sockets in DefaultServerSocketFactory." into gingerbread

Merge commit 'feea910b4e26697cad83578be876e220e41ba320' into dalvik-dev

* commit 'feea910b4e26697cad83578be876e220e41ba320':
Support creating unbound server sockets in DefaultServerSocketFactory.
feea910b4e26697cad83578be876e220e41ba320 30-Sep-2010 Jesse Wilson <jessewilson@google.com> am 901c9c6f: am 8047b6f0: Merge "Support creating unbound server sockets in DefaultServerSocketFactory." into gingerbread

Merge commit '901c9c6f79e63e3babd3c1184455f3b44abd197d'

* commit '901c9c6f79e63e3babd3c1184455f3b44abd197d':
Support creating unbound server sockets in DefaultServerSocketFactory.
7b660b465a2c846c4c5633a59594a88acfe11322 30-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix problems with OldSimpleDateFormatTest.java." into gingerbread
ed4e806327360c50b232a6e0cd2201fce3fb0998 29-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix problems with OldSimpleDateFormatTest.java.

This changes the single 'y' documentation to point out our behavior.
http://b/2788874

It also isolates two other failures for week-in-year and timezone
formatting.
http://b/1613709 Minimal days in first week is broken
http://b/3049014 Custom SimpleTimeZones not honored by SimpleDateFormat

Change-Id: Ic632bf70076fe0dfd376317379dc363269d5b2df
ava/text/SimpleDateFormat.java
8047b6f0f65b687f76f93c02683814c56421a26d 29-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Support creating unbound server sockets in DefaultServerSocketFactory." into gingerbread
3cef3ce2868baeb334d83a4f630294e04dd7df05 29-Sep-2010 Jesse Wilson <jessewilson@google.com> Support creating unbound server sockets in DefaultServerSocketFactory.

Change-Id: I34106bb55ad99a134b4aae4e24e61b59c0aaa967
http://b/2587385
avax/net/DefaultServerSocketFactory.java
f3b2085bba0b73f04a3e97bffee1d84ddee5e5a5 29-Sep-2010 Brian Carlstrom <bdc@google.com> am 63fcdd7e: resolved conflicts for merge of 53e83038 to master

Merge commit '63fcdd7e833df417cfbd60961a5167ce637f3071' into dalvik-dev

* commit '63fcdd7e833df417cfbd60961a5167ce637f3071':
Scrub missing calls to super.finalize()
2019a2f983cee86e44aec30333bf6292a239973e 29-Sep-2010 Jesse Wilson <jessewilson@google.com> am 880ec6d5: am 395f899e: am 2a275f06: Merge "Tests for ServerSocketFactory.getDefault()." into gingerbread

Merge commit '880ec6d5d26a2955734e13a09a65f57f50fb1c16' into dalvik-dev

* commit '880ec6d5d26a2955734e13a09a65f57f50fb1c16':
Tests for ServerSocketFactory.getDefault().
2bf7f92e16c747c13a4e43ac9a2db846d6f3c7f0 29-Sep-2010 Jesse Wilson <jessewilson@google.com> am 1542176d: am 48100926: am d33c0e52: Merge "Fix a problem where URL.equals() was returning true when both hosts couldn\'t resolve." into gingerbread

Merge commit '1542176d768492a781a96db9c3b5a84a007e3f21' into dalvik-dev

* commit '1542176d768492a781a96db9c3b5a84a007e3f21':
Fix a problem where URL.equals() was returning true when both hosts couldn't resolve.
63fcdd7e833df417cfbd60961a5167ce637f3071 29-Sep-2010 Brian Carlstrom <bdc@google.com> resolved conflicts for merge of 53e83038 to master

Conflicts:
luni/src/main/java/java/io/FileInputStream.java
luni/src/main/java/java/io/FileOutputStream.java
luni/src/main/java/javax/crypto/ExemptionMechanism.java
luni/src/main/java/org/apache/harmony/luni/net/PlainDatagramSocketImpl.java
luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java

Change-Id: I0dd5da8e8cb1819cb90440c462ba307dffde8ed7
d7212c5d3cde17ca20fc33cd294da2c5744df44a 29-Sep-2010 Brian Carlstrom <bdc@google.com> Merge "Scrub missing calls to super.finalize()" into gingerbread
e2f58c9501eac730d048199906dc41fe8e4cd6e9 29-Sep-2010 Brian Carlstrom <bdc@google.com> Scrub missing calls to super.finalize()

Bug: 3024226
Change-Id: I6642cb9d4929ba72244529efe4ebdfa595ae4fa7
om/ibm/icu4jni/charset/CharsetDecoderICU.java
om/ibm/icu4jni/charset/CharsetEncoderICU.java
om/ibm/icu4jni/text/CollationElementIterator.java
om/ibm/icu4jni/text/NativeBreakIterator.java
om/ibm/icu4jni/text/RuleBasedCollator.java
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/lang/Enum.java
ava/math/BigInt.java
ava/text/DecimalFormat.java
ava/util/Timer.java
ava/util/concurrent/Executors.java
ava/util/concurrent/ThreadPoolExecutor.java
ava/util/regex/Matcher.java
ava/util/regex/Pattern.java
ava/util/zip/Deflater.java
ava/util/zip/Inflater.java
ava/util/zip/ZipFile.java
avax/crypto/ExemptionMechanism.java
ibcore/icu/NativePluralRules.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/xml/ExpatParser.java
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
880ec6d5d26a2955734e13a09a65f57f50fb1c16 29-Sep-2010 Jesse Wilson <jessewilson@google.com> am 395f899e: am 2a275f06: Merge "Tests for ServerSocketFactory.getDefault()." into gingerbread

Merge commit '395f899e35b62795c4cf9415c13c2bf8aa02552e'

* commit '395f899e35b62795c4cf9415c13c2bf8aa02552e':
Tests for ServerSocketFactory.getDefault().
2a275f0640bf3fdbd9dd6336b4f195a5a6e9a109 29-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Tests for ServerSocketFactory.getDefault()." into gingerbread
4d743816cad738bfeccf6dc210fc7c9bd84a8777 29-Sep-2010 Jesse Wilson <jessewilson@google.com> Tests for ServerSocketFactory.getDefault().

Motivated by http://b/2587385

Change-Id: If30898859f869c88342d1069a2425575752ebf6e
ava/net/ServerSocket.java
avax/net/ServerSocketFactory.java
1542176d768492a781a96db9c3b5a84a007e3f21 29-Sep-2010 Jesse Wilson <jessewilson@google.com> am 48100926: am d33c0e52: Merge "Fix a problem where URL.equals() was returning true when both hosts couldn\'t resolve." into gingerbread

Merge commit '48100926c9278aa6ce1c0bccde5dc44cb6d0cc6e'

* commit '48100926c9278aa6ce1c0bccde5dc44cb6d0cc6e':
Fix a problem where URL.equals() was returning true when both hosts couldn't resolve.
67db542e53c47a28e3f96beb7c9e46330483dc40 29-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix a problem where URL.equals() was returning true when both hosts couldn't resolve.

See http://b/3045007

Change-Id: I83f2a0d8888dd30aaf6099049ce8008487d4337d
ava/net/URLStreamHandler.java
6799265cb084b3afb485cf5ef56c6e0209f15e3d 28-Sep-2010 Elliott Hughes <enh@google.com> am 63b033f0: am 592ac99f: am a8bc3bd2: Improve DateFormat.parse\'s exception detail.

Merge commit '63b033f057a81c91955efb622b48d851120865a3' into dalvik-dev

* commit '63b033f057a81c91955efb622b48d851120865a3':
Improve DateFormat.parse's exception detail.
831a2f644030dd6cb9785848a43191e08cbe62d6 28-Sep-2010 Elliott Hughes <enh@google.com> am 07d06f94: am c6589535: am f3cc41ed: Somewhat perfunctory javadoc for the new Java 6 JDBC APIs.

Merge commit '07d06f949a8993027732ef88d17deb437a8e6b1e' into dalvik-dev

* commit '07d06f949a8993027732ef88d17deb437a8e6b1e':
Somewhat perfunctory javadoc for the new Java 6 JDBC APIs.
63b033f057a81c91955efb622b48d851120865a3 28-Sep-2010 Elliott Hughes <enh@google.com> am 592ac99f: am a8bc3bd2: Improve DateFormat.parse\'s exception detail.

Merge commit '592ac99f0c4867140b97e4fb650cd42bab09415f'

* commit '592ac99f0c4867140b97e4fb650cd42bab09415f':
Improve DateFormat.parse's exception detail.
07d06f949a8993027732ef88d17deb437a8e6b1e 28-Sep-2010 Elliott Hughes <enh@google.com> am c6589535: am f3cc41ed: Somewhat perfunctory javadoc for the new Java 6 JDBC APIs.

Merge commit 'c6589535005b8fac3bacc2126e3d0a0be0489408'

* commit 'c6589535005b8fac3bacc2126e3d0a0be0489408':
Somewhat perfunctory javadoc for the new Java 6 JDBC APIs.
a8bc3bd2794b36c5e935aff7b932a7945e98bf30 28-Sep-2010 Elliott Hughes <enh@google.com> Improve DateFormat.parse's exception detail.

Bug: 3041734
Change-Id: I73e9d2aefecc5fe67415eb3a6586294f8dbbcb82
ava/text/DateFormat.java
f3cc41ede7af1dd683e1a55eabc8f36963aec8ab 28-Sep-2010 Elliott Hughes <enh@google.com> Somewhat perfunctory javadoc for the new Java 6 JDBC APIs.

I feel dirty.

Bug: 3038452
Change-Id: I7ecd24b09c4e37a5ad29de4c6ba50a6e151a1296
ava/sql/Array.java
ava/sql/Blob.java
ava/sql/CallableStatement.java
ava/sql/Clob.java
ava/sql/Connection.java
ava/sql/PreparedStatement.java
ava/sql/ResultSet.java
ava/sql/RowId.java
ava/sql/SQLInput.java
ava/sql/SQLOutput.java
ava/sql/SQLXML.java
ava/sql/Statement.java
04c46edf3d6500cf9633e3f007a3fb15a66a79b7 27-Sep-2010 Elliott Hughes <enh@google.com> Merge "Faster String.hashCode." into dalvik-dev
36f1fe647ee886d8d8a0d703ac2fbbcc8194c716 26-Sep-2010 Elliott Hughes <enh@google.com> Faster String.hashCode.

Bend our code to fit our current JIT. The locals caching fields are still
sadly necessary, even though the JIT usually does a good job of that. (Or
have I actually been seeing the JIT do a bad job of local access instead,
thanks to thumb's x86-like lack of registers? Need to start looking at
more generated code to get an absolute "benchmark" to go with my relative
[Caliper] benchmark figures.)

Bug: 3031382
Change-Id: Icf63866b10740bd7001cc9f24e4e9c655aebc3f8
ava/lang/String.java
d4b134ec6762fa9e85f97d2174497df5e6af8566 26-Sep-2010 Brian Carlstrom <bdc@google.com> am 873c0bfb: am a1b18854: Merge "Fix OpenSSLSessionImpl.getValueNames regression" into gingerbread

Merge commit '873c0bfbf627fa15dd44463f9a664b6f83c74594'

* commit '873c0bfbf627fa15dd44463f9a664b6f83c74594':
Fix OpenSSLSessionImpl.getValueNames regression
4071cf16af7a9a7234856d3ff1837df0da168c6c 25-Sep-2010 Brian Carlstrom <bdc@google.com> Fix OpenSSLSessionImpl.getValueNames regression

In e32b21f14d52bac429a9c54fe031f9e92c911d64, the code was converted to
use Objects.equals. However, because of a typo, an autoboxed Boolean
was passed instead of an AccessControlContext. I reviewed the rest of
the original change to make sure there were no other instances of this
regression.

Also cleaned up the SSLSessionTest (fixing two broken tests
test_getLocalPrincipal and test_getPeerPrincipal) and fixed a
whitespace issue in AccessControlContext.

Change-Id: Icaee8a0c2f5f527bea7a80037fe3f99c509d9f42
ava/security/AccessControlContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
b55a9297dd1645c4924ac1afa77cbb3010191b1c 25-Sep-2010 Brian Carlstrom <bdc@google.com> am 51e0ec67: am e9baa585: Merge "OpenSSLSocketImpl should not call NativeCrypto.SSL_set_client_CA_list with an empty array" into gingerbread

Merge commit '51e0ec67ca5e78ffd907506c780f5dfd340e9f59'

* commit '51e0ec67ca5e78ffd907506c780f5dfd340e9f59':
OpenSSLSocketImpl should not call NativeCrypto.SSL_set_client_CA_list with an empty array
0150f73ac180714cae49782e674ecb68fde12326 25-Sep-2010 Brian Carlstrom <bdc@google.com> OpenSSLSocketImpl should not call NativeCrypto.SSL_set_client_CA_list with an empty array

Bug: 3034616
Change-Id: Ib39ebfa737910f0ebce5ac2ad87715579bd7aa3d
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
1f2210d6521a7dff68a31297e7dc53a5e912d306 24-Sep-2010 Brian Carlstrom <bdc@google.com> am 4256e142: am 7f911911: am cdeb8093: Fix ArrayIndexOutOfBoundsExceptions in cert Cache on zero filled array input

Merge commit '4256e14221ea668f030fafe0fa9eccd1ca6e6cf6' into dalvik-dev

* commit '4256e14221ea668f030fafe0fa9eccd1ca6e6cf6':
Fix ArrayIndexOutOfBoundsExceptions in cert Cache on zero filled array input
739493443ce2ea5b0a92dd1725a4ed630db7b27b 23-Sep-2010 Elliott Hughes <enh@google.com> Simplify the ZipFile implementation, removing unbuffered I/O.

Bug: 3018772
Change-Id: I183e9ac597f9483418b0b337fc9e3944d473f359
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
280870968445db979e94306036d5256d232e77f4 23-Sep-2010 Elliott Hughes <enh@google.com> private final trumps non-final package-protected.

Change-Id: Ida695c0da4fb1ffae583a2dcc7f627ec509f7107
ava/io/DataInputStream.java
ava/io/DataOutputStream.java
4256e14221ea668f030fafe0fa9eccd1ca6e6cf6 23-Sep-2010 Brian Carlstrom <bdc@google.com> am 7f911911: am cdeb8093: Fix ArrayIndexOutOfBoundsExceptions in cert Cache on zero filled array input

Merge commit '7f9119113075eb4200e47db50929bc5aa1a7803e'

* commit '7f9119113075eb4200e47db50929bc5aa1a7803e':
Fix ArrayIndexOutOfBoundsExceptions in cert Cache on zero filled array input
cdeb809350d8c1a14a96924bf01febfa82a8b5b6 23-Sep-2010 Brian Carlstrom <bdc@google.com> Fix ArrayIndexOutOfBoundsExceptions in cert Cache on zero filled array input

The Harmony cert Cache has a long[] where each long is a combination
of a hash and an one-based index into another table containing the
cached values. The cache is searched with Arrays.binarySearch, which
should never find an actual hit, since even a hash hit will look like
a miss since the input hash doesn't contain the one-based index and
entries in the table do. However, this approach has the property that
both hits and misses give the same location in the array, which is
subsequently checked for a real hit/miss with a mask.

However, the hash of a byte array filled with zeroes was zero, which
is found by Arrays.binarySearch in unused slots. Unfortunately, the
code never expects a direct hit, so when it does uses -index-1 to find
the slot to check for hit/miss, it ends up with a negative number,
causing the ArrayIndexOutOfBoundsExceptions.

The solution is ensure that when the hash function returns zero to
simply treat it as a miss. It should not be true for any non-trival
legal input.

Bug: 2753594
Change-Id: I2ee282cc28f22a0ca26da311ae683edf548c67a6
rg/apache/harmony/security/provider/cert/Cache.java
6662feeaf43812ff4336150a473bce06fc802b79 23-Sep-2010 Elliott Hughes <enh@google.com> Improve RandomAccessFile documentation.

Change-Id: I74ae5b018f2c140e97b516576ef582d213a1b7cc
ava/io/RandomAccessFile.java
0a102bb180bae081353b6fb48646b63bdff83d13 23-Sep-2010 Elliott Hughes <enh@google.com> Merge "Remove unbuffered single-byte I/O from ZipFile." into dalvik-dev
c0c98ee1c95fd3b19646b4cb9771abf98a045ef0 23-Sep-2010 Elliott Hughes <enh@google.com> Remove unbuffered single-byte I/O from ZipFile.

This is enough to fool my current checking (and a little bit better than the
existing code), but I do plan on better checking and a rewrite of ZipFile.

Bug: 3018772
Change-Id: I607fee807c2bcbe9d59b883ef7bfbaa9a8f54ea8
ava/util/zip/ZipEntry.java
ava/util/zip/ZipFile.java
46b1e6e3b2f2c2de33e66676d9d508cc0fcde9bc 22-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix setLength() to adjust pointer." into dalvik-dev
ac7d2424dfd5267434d18d06174d1b481d3b51a7 22-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix setLength() to adjust pointer.

See http://b/2224985

Change-Id: Ie8b7a7a455fdbde051dea15f8d3e4dc6bf8f6fba
ava/io/RandomAccessFile.java
2550478eb3ff8283ebac6ba2a683fd7bbb23e3ee 22-Sep-2010 Brian Carlstrom <bdc@google.com> am 7452795a: am f8f14c30: am 1be19cf6: Tracking external/bouncycastle OpenSSLDigest

Merge commit '7452795a3d40cac126b21f85316b36b035950371' into dalvik-dev

* commit '7452795a3d40cac126b21f85316b36b035950371':
Tracking external/bouncycastle OpenSSLDigest
7452795a3d40cac126b21f85316b36b035950371 22-Sep-2010 Brian Carlstrom <bdc@google.com> am f8f14c30: am 1be19cf6: Tracking external/bouncycastle OpenSSLDigest

Merge commit 'f8f14c30064e48b3512c42d46bdcb6384d0d984c'

* commit 'f8f14c30064e48b3512c42d46bdcb6384d0d984c':
Tracking external/bouncycastle OpenSSLDigest
1be19cf6a06834e97608dffd87c30d604b02196a 22-Sep-2010 Brian Carlstrom <bdc@google.com> Tracking external/bouncycastle OpenSSLDigest

Making OpenSSLMessageDigestJDK final to match OpenSSLDigest version
Fixing WITH_JNI_TRACE used for debugging OpenSSLDigest

Bug: 3024499
Change-Id: I919749348e531d074a25e16ab13315cede4f88e5
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
0c9983973605c58367cf39340882fdc4d5ef94e2 22-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Love for FileInputStream and FileOutputStream." into dalvik-dev
48d526fa7c933a74e7c87984fd39effcc5401412 22-Sep-2010 Jesse Wilson <jessewilson@google.com> am 0fe127c1: am 3388fbc2: am 301db343: Merge "Fix problem where single-byte reads were unsigned." into gingerbread

Merge commit '0fe127c1981e7ad8c02eb9f2a46601dfcacde39f' into dalvik-dev

* commit '0fe127c1981e7ad8c02eb9f2a46601dfcacde39f':
Fix problem where single-byte reads were unsigned.
0fe127c1981e7ad8c02eb9f2a46601dfcacde39f 22-Sep-2010 Jesse Wilson <jessewilson@google.com> am 3388fbc2: am 301db343: Merge "Fix problem where single-byte reads were unsigned." into gingerbread

Merge commit '3388fbc2353b4a371ff847f3aac8255ea0805fa9'

* commit '3388fbc2353b4a371ff847f3aac8255ea0805fa9':
Fix problem where single-byte reads were unsigned.
301db343e965a7943704887bf29e7f2d94fd3ac6 22-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix problem where single-byte reads were unsigned." into gingerbread
5e23b687ef8b3c696d54d1880b454942875665b7 22-Sep-2010 Elliott Hughes <enh@google.com> Remove custom marker classes for locks.

Just use Object instead.

Bug: 3024308
Change-Id: I83a01020646d95e014743b76e27ca7134c155298
ava/lang/ThreadGroup.java
ava/net/DatagramSocket.java
ava/net/Socket.java
ava/nio/DatagramChannelImpl.java
ava/nio/FileChannelImpl.java
ava/nio/SelectorImpl.java
ava/nio/ServerSocketChannelImpl.java
ava/nio/SocketChannelImpl.java
ava/nio/channels/spi/AbstractSelectableChannel.java
ava/util/prefs/AbstractPreferences.java
024784c977a744708ab0bcefc4337d491e429937 21-Sep-2010 Jesse Wilson <jessewilson@google.com> Love for FileInputStream and FileOutputStream.

This changes FileOutputStream to open its channel lazily. Doing so
requires a new field, mode. It saves the allocation of the channel
and its accompanying infrastructure in the common case.

This adds example usage complete with the necessary buffers, and
removed documentation that was redundant from the superclass.

Change-Id: Ib23d12cef075169a574fddedcaf1fec018eb726c
http://b/3018687
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ef66494dce45a0b7ec22ec3fb20c60096517a4e3 22-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix problem where single-byte reads were unsigned.

Change-Id: Ib0bc273698b71d13a90a03a8c60498ad7de5ad9d
http://b/3023872
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpInputStream.java
8dab4d8bebf633077b7a59c8b7d7980b768bbb75 21-Sep-2010 Elliott Hughes <enh@google.com> Fix build: nio implementation details accidentally made public.

Change-Id: I1bc4b40c2038088a1e22489f39d54e28d9ae21cb
ava/nio/ReadOnlyFileChannel.java
ava/nio/ReadWriteFileChannel.java
ava/nio/ServerSocketChannelImpl.java
ava/nio/WriteOnlyFileChannel.java
ae704b984c10a63883cc366e823d53902d6ac7a9 21-Sep-2010 Elliott Hughes <enh@google.com> Minor tidy-up.

The nio implementation is still a bit of a mess because Java doesn't have any
kind of "module" concept, nor "friend". But this makes it a little less untidy,
and makes the deliberate access control subversions a little more explicit, and
makes various things less accessible than they were.

Change-Id: I514b1e24000b91f86b768ed408fedae115dc3080
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
ava/nio/ByteOrder.java
ava/nio/DatagramChannelImpl.java
ava/nio/FileChannelImpl.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/MemoryBlock.java
ava/nio/NioUtils.java
ava/nio/PipeImpl.java
ava/nio/ReadOnlyFileChannel.java
ava/nio/ReadWriteFileChannel.java
ava/nio/SelectionKeyImpl.java
ava/nio/SelectorImpl.java
ava/nio/SelectorProviderImpl.java
ava/nio/ServerSocketChannelImpl.java
ava/nio/SocketChannelImpl.java
ava/nio/WriteOnlyFileChannel.java
ava/nio/channels/spi/SelectorProvider.java
ava/text/RuleBasedBreakIterator.java
ibcore/io/MemoryMappedFile.java
rg/apache/harmony/nio/FileChannelFactory.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
rg/apache/harmony/nio/internal/FileLockImpl.java
rg/apache/harmony/nio/internal/LockManager.java
rg/apache/harmony/nio/internal/PipeImpl.java
rg/apache/harmony/nio/internal/ReadOnlyFileChannel.java
rg/apache/harmony/nio/internal/ReadWriteFileChannel.java
rg/apache/harmony/nio/internal/SelectionKeyImpl.java
rg/apache/harmony/nio/internal/SelectorImpl.java
rg/apache/harmony/nio/internal/SelectorProviderImpl.java
rg/apache/harmony/nio/internal/ServerSocketChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
rg/apache/harmony/nio/internal/WriteOnlyFileChannel.java
bffb058e565a97f838247f1e092b0d17b26cb68e 21-Sep-2010 Elliott Hughes <enh@google.com> Stop doing unbuffered file I/O in ZoneInfoDB.

Use the new memory-mapped code for the index as well as for individual time
zones. This takes the (once-only, during boot) index-reading time down
from ~90ms to ~20ms. DataInputStream(BufferedInputStream(FileInputStream))
would have got us down to ~40ms.

Also remove duplication amongst code snippets that want to read a whole file
into a byte[].

Bug: 3014973
Change-Id: I9d8a326438663314b7f5ee0145cda32ea335f41d
ibcore/io/IoUtils.java
ibcore/io/MemoryMappedFile.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
bc6fddf82f3bb1019dc984d37bd0c1298dd40589 20-Sep-2010 Elliott Hughes <enh@google.com> Remove dead code.

Presumably frameworks/base/ used this at some point, but it doesn't now.

Change-Id: Id299958dc2352c25b1555c07bf4d114fafdd7aea
ava/nio/NIOAccess.java
c18fe70cc844546c7e1e34b501c185d784d7f863 20-Sep-2010 Brian Carlstrom <bdc@google.com> am 7806efe8: am 862e1168: am 03fef47f: Merge "SSLSocket should respect timeout of a wrapped Socket" into gingerbread

Merge commit '7806efe820ff848e99eecef68a6df4049b9eb3c5' into dalvik-dev

* commit '7806efe820ff848e99eecef68a6df4049b9eb3c5':
SSLSocket should respect timeout of a wrapped Socket
8b5d96adf89ade9a35b94032e5762e5f602c24a0 20-Sep-2010 Brian Carlstrom <bdc@google.com> am fcc7302e: am 748ccde6: am dad46534: Merge "Use BufferedInputStream when reading cacerts.bks" into gingerbread

Merge commit 'fcc7302ea9bbfd553188d369459428b2e8f39fb2' into dalvik-dev

* commit 'fcc7302ea9bbfd553188d369459428b2e8f39fb2':
Use BufferedInputStream when reading cacerts.bks
7806efe820ff848e99eecef68a6df4049b9eb3c5 20-Sep-2010 Brian Carlstrom <bdc@google.com> am 862e1168: am 03fef47f: Merge "SSLSocket should respect timeout of a wrapped Socket" into gingerbread

Merge commit '862e1168863503407497cba7aeec4b1b1621051e'

* commit '862e1168863503407497cba7aeec4b1b1621051e':
SSLSocket should respect timeout of a wrapped Socket
fcc7302ea9bbfd553188d369459428b2e8f39fb2 20-Sep-2010 Brian Carlstrom <bdc@google.com> am 748ccde6: am dad46534: Merge "Use BufferedInputStream when reading cacerts.bks" into gingerbread

Merge commit '748ccde6d3605de6743fe84fc26465f5f99b46ac'

* commit '748ccde6d3605de6743fe84fc26465f5f99b46ac':
Use BufferedInputStream when reading cacerts.bks
03fef47fc07bfc4cb2a7a154c9961cd96d910e0e 20-Sep-2010 Brian Carlstrom <bdc@google.com> Merge "SSLSocket should respect timeout of a wrapped Socket" into gingerbread
ae74f07204bd23b45b8dd8c3329dc454fa44500b 20-Sep-2010 Elliott Hughes <enh@google.com> Merge "Optimize non-direct (heap) buffer bulk put." into dalvik-dev
8fbc397fc09158bee0bc0cb231c609c4c6e9fc15 18-Sep-2010 Elliott Hughes <enh@google.com> Optimize non-direct (heap) buffer bulk put.

I've also factored out the bounds checking, even though the JIT can't yet
inline it back. I'm unwilling to duplicate all that code again.

This patch also fixes bugs in the previous checkin relating to offsets
and positions. In real life (and, seemingly, in all our tests) these tend
to be 0, making it rare that anyone trips over these bugs. (The first nio
change I made was fixing just such a bug.) I've improved the test I added
last time so that it covers more of these cases.

Here are the "after" performance figures for heap buffer bulk copies:

CharBuffer_getCharArray 5797
CharBuffer_putCharArray 5818
DoubleBuffer_getDoubleArray 13053
DoubleBuffer_putDoubleArray 13026
FloatBuffer_getFloatArray 8216
FloatBuffer_putFloatArray 8283
IntBuffer_getIntArray 8253
IntBuffer_putIntArray 8371
LongBuffer_getLongArray 13053
LongBuffer_putLongArray 13020
ShortBuffer_getShortArray 5796
ShortBuffer_putShortArray 5864

This compares well with with direct buffer performance (just gets shown here):

CharBuffer_getCharArray 4412
DoubleBuffer_getDoubleArray 11594
FloatBuffer_getFloatArray 6787
IntBuffer_getIntArray 6791
LongBuffer_getLongArray 11672
ShortBuffer_getShortArray 4430

Bug: 2985452
Change-Id: I37307f9b304c87a87af5313790444dcdf6174ff1
ava/nio/Buffer.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/HeapByteBuffer.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
ava/nio/ShortToByteBufferAdapter.java
rg/apache/harmony/luni/platform/OSMemory.java
dc89039cc363bb76245bc1093241187c27af028c 20-Sep-2010 Andy McFadden <fadden@android.com> Merge "Replace "ordered" puts with native implementation." into dalvik-dev
a4a95792af235d4bf3256eab3208f74fae8ec262 19-Sep-2010 Brian Carlstrom <bdc@google.com> SSLSocket should respect timeout of a wrapped Socket

Change to using getSoTimeout in OpenSSLSocketImpl instead of directly
using the timeout field. This means the proper timeout will be used
for instances of the OpenSSLSocketImplWrapper subclass, which is used
when an SSLSocket is wrapped around an existing connected non-SSL
Socket. The code still maintains the local timeout field, now renamed
timeoutMilliseconds, which is now accesed via
OpenSSLSocketImpl.getSoTimeout. Doing so prevents a getsockopt syscall
that otherwise would be necessary if the super.getSoTimeout() was used.

Added two unit tests for testing timeouts with SSLSockets wrapped
around Socket. One is simply for getters/setters. The second makes
sure the timeout is functioning when set on the underlying socket.

Bug: 2973305
Change-Id: Idac52853f5d777fae5060a840eefbfe85d448e4c
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
d75cf432ba5c084e39ff7a24c388ca5c1c151db7 19-Sep-2010 Brian Carlstrom <bdc@google.com> Use BufferedInputStream when reading cacerts.bks

Change-Id: Ibc20bdcadb5c3bc4bcebfeb96b10c42d9c05e7c8
rg/apache/harmony/xnet/provider/jsse/TrustManagerFactoryImpl.java
793e1cdbba5545b507196bf461f691e32357a0ad 18-Sep-2010 Jesse Wilson <jessewilson@google.com> am 99b2d653: am f697be0f: am ac277be6: Handle the different definitions of \'connected\' in HttpURLConnection.

Merge commit '99b2d6535ceaeae74887b4fc4eac674d3564dddc' into dalvik-dev

* commit '99b2d6535ceaeae74887b4fc4eac674d3564dddc':
Handle the different definitions of 'connected' in HttpURLConnection.
99b2d6535ceaeae74887b4fc4eac674d3564dddc 18-Sep-2010 Jesse Wilson <jessewilson@google.com> am f697be0f: am ac277be6: Handle the different definitions of \'connected\' in HttpURLConnection.

Merge commit 'f697be0f24572c8c653ce689b398bcd163960aa5'

* commit 'f697be0f24572c8c653ce689b398bcd163960aa5':
Handle the different definitions of 'connected' in HttpURLConnection.
5bc63447ee73a49de8a572a6b955af4cdc18be98 18-Sep-2010 Jesse Wilson <jessewilson@google.com> am 96c076dd: am e74b3ecc: am d4bddd7d: Fix two HTTP issues that came up when writing HttpURLConnection docs.

Merge commit '96c076ddd30d862dae69a35e1700d2befb2ee055' into dalvik-dev

* commit '96c076ddd30d862dae69a35e1700d2befb2ee055':
Fix two HTTP issues that came up when writing HttpURLConnection docs.
96c076ddd30d862dae69a35e1700d2befb2ee055 18-Sep-2010 Jesse Wilson <jessewilson@google.com> am e74b3ecc: am d4bddd7d: Fix two HTTP issues that came up when writing HttpURLConnection docs.

Merge commit 'e74b3eccd5d2ad7809c827d3e5bcbd5fcce0f3c5'

* commit 'e74b3eccd5d2ad7809c827d3e5bcbd5fcce0f3c5':
Fix two HTTP issues that came up when writing HttpURLConnection docs.
ac277be6a146ade8f150236edf730431a7e12482 18-Sep-2010 Jesse Wilson <jessewilson@google.com> Handle the different definitions of 'connected' in HttpURLConnection.

Previously we were failing with a NullPointerException when
HTTP redirects required connecting to a different server.

The connected field means 'we can't change request parameters'.
The connection being non-null means 'we're currently connected'.

Internally, multiple connections are permitted in order to support
HTTP redirects. But in the public API only one connect() call is
permitted.

I've added a new method, makeConnection() to make the magic work.

Change-Id: Ic644d5d192ec2b1de781dc271ae149bcd1655de4
ava/net/URLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
d4bddd7d1fb7b1b7f0836648228235c6e4b56a18 16-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix two HTTP issues that came up when writing HttpURLConnection docs.

We're now more careful about which headers are sent to HTTP proxies.
And getContentEncoding() is better documented.

Change-Id: I04241f99c2f32c25ba005fbd6ff9ef7236c3c9d3
ava/net/HttpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
de9cc690b991ba97f1cce542b184e8ffd45f710f 18-Sep-2010 Jesse Wilson <jessewilson@google.com> am c6a54a4c: am 7b1454a7: am 88776877: Merge "Don\'t leave the Content-Encoding header around after transparent gzip." into gingerbread

Merge commit 'c6a54a4c0cb58a8d05058f9ecbcf5988ccdd6211' into dalvik-dev

* commit 'c6a54a4c0cb58a8d05058f9ecbcf5988ccdd6211':
Don't leave the Content-Encoding header around after transparent gzip.
c6a54a4c0cb58a8d05058f9ecbcf5988ccdd6211 18-Sep-2010 Jesse Wilson <jessewilson@google.com> am 7b1454a7: am 88776877: Merge "Don\'t leave the Content-Encoding header around after transparent gzip." into gingerbread

Merge commit '7b1454a74925e221bab03aecce83b34915ab5c31'

* commit '7b1454a74925e221bab03aecce83b34915ab5c31':
Don't leave the Content-Encoding header around after transparent gzip.
86c9263b601845bdc2096c980afb35e86778528f 17-Sep-2010 Andy McFadden <fadden@android.com> Replace "ordered" puts with native implementation.

Instead of calling the full-on volatile version, call a dedicated
native version with a less-expensive barrier.

Bug 2579452

Change-Id: I1a8a19c82d987b891847c5c5b75021a1ec4fcd11
un/misc/Unsafe.java
6944bea4a129dc2d4be687c72f2a9f228ec532bc 17-Sep-2010 Elliott Hughes <enh@google.com> Make nio heap (non-direct) buffer bulk get orders of magnitude faster.

Bug: 2985452
Change-Id: I8bd210d1a623e434121f30eca6e2555e1aea11cd
ava/nio/Buffer.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/HeapByteBuffer.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/ShortToByteBufferAdapter.java
rg/apache/harmony/luni/platform/OSMemory.java
8877687711ba5a04aadc2ef34ae5f417c65c51b7 17-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Don't leave the Content-Encoding header around after transparent gzip." into gingerbread
8116f7e97e00d223e7fbe5c950c9a5e3277de124 17-Sep-2010 Jesse Wilson <jessewilson@google.com> Don't leave the Content-Encoding header around after transparent gzip.

Otherwise clients may be tempted to double-decompress.
http://b/issue?id=3009828

Change-Id: I4832da1c2aff9bad8d452ffc4a0f98ee27d44f49
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
fe20355288377b2d80ce5eb3aaaa548b0af04c8e 17-Sep-2010 Brian Carlstrom <bdc@google.com> am e3babe52: am 69a153da: am 760b683e: Restore OpenSSLMessageDigestJDK.digest reset behavior

Merge commit 'e3babe523df804f88d2371645c2c7e1731411ac2' into dalvik-dev

* commit 'e3babe523df804f88d2371645c2c7e1731411ac2':
Restore OpenSSLMessageDigestJDK.digest reset behavior
e3babe523df804f88d2371645c2c7e1731411ac2 17-Sep-2010 Brian Carlstrom <bdc@google.com> am 69a153da: am 760b683e: Restore OpenSSLMessageDigestJDK.digest reset behavior

Merge commit '69a153da42ecd6f222b33d1195fcf0b84a6abd2b'

* commit '69a153da42ecd6f222b33d1195fcf0b84a6abd2b':
Restore OpenSSLMessageDigestJDK.digest reset behavior
760b683ed34f2e62fc4ab1d483988bee515af03e 17-Sep-2010 Brian Carlstrom <bdc@google.com> Restore OpenSSLMessageDigestJDK.digest reset behavior

SSLEngine tests started failing due to the recent incorrect change to
OpenSSLMessageDigestJDK.digest() that removed the reset of
MessageDigest state on call to digest(). The problem was not that the
digest was resetting, but that it was resetting to use a SHA-0
algorithm. See recent change c38b8476e7e4bd4b091d9f0e8fe8b2b972e7bc81.

Change-Id: I40ef4e18a1b546eac5a487cb8a808d4897b301b0
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
65f89458ba2929e1e806b7463c1e36e94f75e506 17-Sep-2010 Brian Carlstrom <bdc@google.com> am dc1c4756: am 156f071f: am a3a93d45: Merge "OpenSSLMessageDigestJDK.reset should not change from SHA-1 to SHA-0" into gingerbread

Merge commit 'dc1c475681e06d3f9bdd9cd4aab31145ba20c542' into dalvik-dev

* commit 'dc1c475681e06d3f9bdd9cd4aab31145ba20c542':
OpenSSLMessageDigestJDK.reset should not change from SHA-1 to SHA-0
dc1c475681e06d3f9bdd9cd4aab31145ba20c542 17-Sep-2010 Brian Carlstrom <bdc@google.com> am 156f071f: am a3a93d45: Merge "OpenSSLMessageDigestJDK.reset should not change from SHA-1 to SHA-0" into gingerbread

Merge commit '156f071fcb2ef1c5716c6bc2c41a50f19934056b'

* commit '156f071fcb2ef1c5716c6bc2c41a50f19934056b':
OpenSSLMessageDigestJDK.reset should not change from SHA-1 to SHA-0
e4b3e32f13c54ed5b2162bb06785f283939ba2ec 17-Sep-2010 Elliott Hughes <enh@google.com> am a836d89d: am 16cfcf36: am 34eb0408: Use DecimalFormatSymbols.getExponentSeparator in DecimalFormat.

Merge commit 'a836d89da3bc10c1bcce0ed00c447012faf504aa' into dalvik-dev

* commit 'a836d89da3bc10c1bcce0ed00c447012faf504aa':
Use DecimalFormatSymbols.getExponentSeparator in DecimalFormat.
cd94a13ce09bb2167fc283bc5cf7c9f4501f4b00 17-Sep-2010 Elliott Hughes <enh@google.com> am f9a07b33: am 5c595ec1: am 288041b6: Make the implementation of Formatter %e more similar to %f.

Merge commit 'f9a07b338067d91057795c3ffeb14a4cf35bac5b' into dalvik-dev

* commit 'f9a07b338067d91057795c3ffeb14a4cf35bac5b':
Make the implementation of Formatter %e more similar to %f.
c0dfbb79aae4876aeb1648168d6861dfa7972670 17-Sep-2010 Elliott Hughes <enh@google.com> am ea200493: am 4618c9b2: am 46cb23aa: Return char[] instead of String from NativeDecimalFormat.

Merge commit 'ea200493f20f61a2fdcf8528aba36ded1292fa9f' into dalvik-dev

* commit 'ea200493f20f61a2fdcf8528aba36ded1292fa9f':
Return char[] instead of String from NativeDecimalFormat.
e879c5d7ba127f99ab757d7b72340d6cf6614298 17-Sep-2010 Elliott Hughes <enh@google.com> am a838cb5c: am 14934633: am e8545ce7: Merge "Speed up Formatter %f a bit more by using a thread-local NativeDecimalFormat." into gingerbread

Merge commit 'a838cb5c162f711e81cb9017237225968b9449b5' into dalvik-dev

* commit 'a838cb5c162f711e81cb9017237225968b9449b5':
Speed up Formatter %f a bit more by using a thread-local NativeDecimalFormat.
f8fd3aced841e19bf3552fe81289297302a4f3a5 17-Sep-2010 Brian Carlstrom <bdc@google.com> am e6b59c28: am 9e8d51c7: am a3de55dd: Implement OpenSSLMessageDigestJDK.clone and fix OpenSSLMessageDigestJDK.digest

Merge commit 'e6b59c287ed3007d76167dd9741dc683f440ed2d' into dalvik-dev

* commit 'e6b59c287ed3007d76167dd9741dc683f440ed2d':
Implement OpenSSLMessageDigestJDK.clone and fix OpenSSLMessageDigestJDK.digest
a3a93d457e30d9a34fdeccd3d0455bcf75810b80 17-Sep-2010 Brian Carlstrom <bdc@google.com> Merge "OpenSSLMessageDigestJDK.reset should not change from SHA-1 to SHA-0" into gingerbread
c38b8476e7e4bd4b091d9f0e8fe8b2b972e7bc81 17-Sep-2010 Brian Carlstrom <bdc@google.com> OpenSSLMessageDigestJDK.reset should not change from SHA-1 to SHA-0

For SHA-1, the OpenSSLMessageDigestJDK constructor was called with the
algorithm name "SHA-1", which it passed to the superclass constructor
for use as the algorithm field. However, MessageDigest.getInstance
would then override this value with the its own algorithm argument. In the
case of getInstance("SHA"), this mean the constructor would set the
value to "SHA-1" (from the OpenSSLMessageDigestJDK.SHA1 subclass
constructor) which would then be overridden by getInstance to
"SHA". Because the OpenSSLMessageDigestJDK would then initialize using
"SHA-1", the MessageDigest worked in the common case. However, when it
was MessageDigest.reset(), it called getAlgorithm() which returned
"SHA", which was then passed to OpenSSL as "sha" which interpretted
this as "SHA-0".

The fix is to change to pass both a standard name (e.g "SHA-1") as
well as openssl name expliclty (e.g. "sha1"), removing the somewhat
hacky code that tried to algorithmically transform from the standard
names to the openssl ones.

The same fix needs to be made to OpenSSLDigest. We also are removing
SHA-0 from openssl since it is unneeded and would have cause an clear
error if it had been absent.

Change-Id: Iaa8f5b93a572fb043fa4f2618070ebb5054f82b1
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
a836d89da3bc10c1bcce0ed00c447012faf504aa 17-Sep-2010 Elliott Hughes <enh@google.com> am 16cfcf36: am 34eb0408: Use DecimalFormatSymbols.getExponentSeparator in DecimalFormat.

Merge commit '16cfcf363c975ee379edd6019afbc1cd805f2329'

* commit '16cfcf363c975ee379edd6019afbc1cd805f2329':
Use DecimalFormatSymbols.getExponentSeparator in DecimalFormat.
f9a07b338067d91057795c3ffeb14a4cf35bac5b 17-Sep-2010 Elliott Hughes <enh@google.com> am 5c595ec1: am 288041b6: Make the implementation of Formatter %e more similar to %f.

Merge commit '5c595ec1f708b5d7abb693b7990c3997266b313d'

* commit '5c595ec1f708b5d7abb693b7990c3997266b313d':
Make the implementation of Formatter %e more similar to %f.
34eb0408ff03c10b8f5842d328457aeeabac17a7 17-Sep-2010 Elliott Hughes <enh@google.com> Use DecimalFormatSymbols.getExponentSeparator in DecimalFormat.

A last-minute bit of Java 6 work...

Bug: 3008411
Change-Id: Ic197de8ddc92afcaa661875a2c99c8352237642a
om/ibm/icu4jni/text/NativeDecimalFormat.java
288041b6003504a2976e9a101c573e1d7a69a37a 16-Sep-2010 Elliott Hughes <enh@google.com> Make the implementation of Formatter %e more similar to %f.

Also comment the code that turns 'E' into 'e' in %e. I tried doing this in
native code but it crufts the implementation and slightly slows the path we
care about (%f) for the benefit of the one we don't (%e).

I have optimized %e (without a precision) in the same way that I did with %f.

Bug: 2934304
Change-Id: I3c99be2157f4448c1b290d5578eeb6fc14965c59
ava/util/Formatter.java
ea200493f20f61a2fdcf8528aba36ded1292fa9f 16-Sep-2010 Elliott Hughes <enh@google.com> am 4618c9b2: am 46cb23aa: Return char[] instead of String from NativeDecimalFormat.

Merge commit '4618c9b247da6462c82e6ebddad9a9a3056a9400'

* commit '4618c9b247da6462c82e6ebddad9a9a3056a9400':
Return char[] instead of String from NativeDecimalFormat.
46cb23aaaba1b0553d02d32713abad97bd4b0428 16-Sep-2010 Elliott Hughes <enh@google.com> Return char[] instead of String from NativeDecimalFormat.

One last little speedup for Formatter %f before I call it a day for now...

Bug: 2934304
Change-Id: I9edd02d1ba8dc40a2b28fea34d7bccf95eeb56ab
om/ibm/icu4jni/text/NativeDecimalFormat.java
ava/text/DecimalFormat.java
ava/util/Formatter.java
a838cb5c162f711e81cb9017237225968b9449b5 16-Sep-2010 Elliott Hughes <enh@google.com> am 14934633: am e8545ce7: Merge "Speed up Formatter %f a bit more by using a thread-local NativeDecimalFormat." into gingerbread

Merge commit '149346332f22d63e679b45e1c347e259459e0328'

* commit '149346332f22d63e679b45e1c347e259459e0328':
Speed up Formatter %f a bit more by using a thread-local NativeDecimalFormat.
e8545ce78d7510f5d6ee55dc78056b1f8a2a4350 16-Sep-2010 Elliott Hughes <enh@google.com> Merge "Speed up Formatter %f a bit more by using a thread-local NativeDecimalFormat." into gingerbread
fa9acfd6b78ca206da039e7646dfb5780097a436 16-Sep-2010 Elliott Hughes <enh@google.com> Speed up Formatter %f a bit more by using a thread-local NativeDecimalFormat.

Bug: 2934304
Change-Id: I5ddcfc01bf1dc57917a544d00d4dc0d4a37ffe5c
om/ibm/icu4jni/text/NativeDecimalFormat.java
ava/util/Formatter.java
e6b59c287ed3007d76167dd9741dc683f440ed2d 16-Sep-2010 Brian Carlstrom <bdc@google.com> am 9e8d51c7: am a3de55dd: Implement OpenSSLMessageDigestJDK.clone and fix OpenSSLMessageDigestJDK.digest

Merge commit '9e8d51c7ee5d84cb940dcb05160cf99b95ace89e'

* commit '9e8d51c7ee5d84cb940dcb05160cf99b95ace89e':
Implement OpenSSLMessageDigestJDK.clone and fix OpenSSLMessageDigestJDK.digest
2c4b6b33db6740b6131246edccfc49cbe0a37a5e 16-Sep-2010 Jesse Wilson <jessewilson@google.com> Replace TODOs with comments describing why we're ignoring minBufferCapacity.

Change-Id: I3fb91ded4a574bd20198c35ab5f6f6ad23c856e6
ava/nio/channels/Channels.java
a3de55ddf81f95c7c0fc1b8767ccb1ecfa251c83 16-Sep-2010 Brian Carlstrom <bdc@google.com> Implement OpenSSLMessageDigestJDK.clone and fix OpenSSLMessageDigestJDK.digest

DigestInputStream2Test.test_onZ was failing because OpenSSLMessageDigestJDK did not implement Clonable
- Implementing Clonable required a new NativeCrypto.EVP_MD_CTX_copy method
- While adding NativeCrypto.EVP_MD_CTX_copy, noticed other methods
were not properly named in NativeCrypto.EVP_MD_CTX_* convention.
- Converted rest of NativeCrypto.cpp to JNI_TRACE logging while debugging

DigestOutputStreamTest.test_onZ was failing because OpenSSLMessageDigestJDK.digest did an engineReset
- Removing the engineReset revealed that digest() could not be called
repeatedly on an OpenSSLMessageDigestJDK. Problem was that
EVP_DigestFinal can only be called once per digest.
- Changed engineDigest implementation to use new EVP_MD_CTX_copy to
create a temp EVP_MD_CTX which can be used to retreive the digest
and then discarded.

Bug: 2997405
Change-Id: Ie97c22be245911300d2e729e451a9c4afdb27937
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
08a723cb3291b96a323478bd7d799192818cb0b1 15-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix problems discovered by Channels/Basic test.

In particular:
- available() wasn't trying very hard for FileChannels
where a reasonable value can be had.
- short writes weren't handled, so bytes were being lost
- the alternative InputStreamReader and OutputStreamReader
classes were incorrect and redundant
- the duplicated ChannelInputStream classes were redundant
and one was missing a required IllegalBlockingModeException
- bounds checks were redundant and handled by Bytebuffer.wrap
- null checks were missing.

The new code doesn't honor the user's supplied minBufferCapacity
and instead always uses 8K. 8K is larger than the 'min' so it
should be fine for undersized buffers. And it's sufficient for
high performance, so it should be fine for oversized buffers.
It'll only be a problem for clients that create a very large
number of these Readers, which shouldn't happen in practice.

http://b/issue?id=2233508

Change-Id: I3688397baae4f69f9146aed6a3a60d8333e5df1d
ava/io/InputStream.java
ava/nio/channels/Channels.java
rg/apache/harmony/nio/internal/IOUtil.java
6cab4071580a4b216d943b337af118533c65e495 15-Sep-2010 Brian Carlstrom <bdc@google.com> resolved conflicts for merge of 4b60175b to dalvik-dev

Change-Id: I63d0c5949be0984dcd7939205463eefabde8af05
bb986f53228cc355f60ea933fda216842bb1df73 15-Sep-2010 Brian Carlstrom <bdc@google.com> am 1ca26549: am 912db46c: am 6812a2e8: Rename internal SSLParameters to SSLParametersImpl to avoid collision with new javax.net.ssl.SSLParameters

Merge commit '1ca26549fbe0f4bc171ba7bf8ab0a86ae591c618' into dalvik-dev

* commit '1ca26549fbe0f4bc171ba7bf8ab0a86ae591c618':
Rename internal SSLParameters to SSLParametersImpl to avoid collision with new javax.net.ssl.SSLParameters
ca88b4c628937cd6afc9476773cc334d6d32de8c 15-Sep-2010 Brian Carlstrom <bdc@google.com> am 99eec0d3: am 9b6ed9bf: am 2b6188df: Merge "Remove SSLContextImpl.engineInit(..) that takes persistent cache arguments" into gingerbread

Merge commit '99eec0d31a89366c9c765db845a022fa6cf7cf42' into dalvik-dev

* commit '99eec0d31a89366c9c765db845a022fa6cf7cf42':
Remove SSLContextImpl.engineInit(..) that takes persistent cache arguments
4b60175b45767ccf679d7ac2eb61ca2788306289 15-Sep-2010 Brian Carlstrom <bdc@google.com> am fe9ac910: am df349b3e: Fix HttpsURLConnectionTest failures

Merge commit 'fe9ac91076d29136e00fd50a49eacf3a4e8b536a'

* commit 'fe9ac91076d29136e00fd50a49eacf3a4e8b536a':
Fix HttpsURLConnectionTest failures
1ca26549fbe0f4bc171ba7bf8ab0a86ae591c618 15-Sep-2010 Brian Carlstrom <bdc@google.com> am 912db46c: am 6812a2e8: Rename internal SSLParameters to SSLParametersImpl to avoid collision with new javax.net.ssl.SSLParameters

Merge commit '912db46c2e2b40832826098f20fb2f34ddf6c516'

* commit '912db46c2e2b40832826098f20fb2f34ddf6c516':
Rename internal SSLParameters to SSLParametersImpl to avoid collision with new javax.net.ssl.SSLParameters
99eec0d31a89366c9c765db845a022fa6cf7cf42 15-Sep-2010 Brian Carlstrom <bdc@google.com> am 9b6ed9bf: am 2b6188df: Merge "Remove SSLContextImpl.engineInit(..) that takes persistent cache arguments" into gingerbread

Merge commit '9b6ed9bfe841fc6414bc06bd194b7fa32a7394c2'

* commit '9b6ed9bfe841fc6414bc06bd194b7fa32a7394c2':
Remove SSLContextImpl.engineInit(..) that takes persistent cache arguments
d6b9f2e0e9640ff9c896b394716cf5e7eee6e257 14-Sep-2010 Elliott Hughes <enh@google.com> Much faster TimeZone.getTimeZone using a new private mmap(2) interface.

froyo:

benchmark us logarithmic runtime
TimeZone_getDefault 8.43 =
TimeZone_getTimeZoneUTC 1140.19 ===========================
TimeZone_getTimeZone_America_Caracas 1537.78 ============================
TimeZone_getTimeZone_America_Santiago 1920.50 =============================
TimeZone_getTimeZone_GMT_plus_10 1089.90 ==========================
TimeZone_getTimeZone_default 1105.54 ===========================

dalvik-dev:

benchmark us logarithmic runtime
TimeZone_getDefault 7.37 =
TimeZone_getTimeZoneUTC 30.35 ================
TimeZone_getTimeZone_America_Caracas 35.98 ==================
TimeZone_getTimeZone_America_Santiago 100.21 ==============================
TimeZone_getTimeZone_GMT_plus_10 43.83 ====================
TimeZone_getTimeZone_default 31.32 =================

There are two main changes. The biggest one is to use our own private mmap(2)
API. We might want to make this more generally available in the long term, but
for now it's pretty unsafe; we do nothing to detect invalidated iterators, and
we do no bounds checking. But that's fine for our internal use.

The other change is to recognize that we don't actually need the abbreviated
names. We were only using them for hashCode and equals, and the canonical Olson
id seems like a much better choice for those purposes! That then means that we
don't need to read in as much data in the first place. This makes more
difference for simpler time zones (such as Caracas in the example) because the
overhead is pretty much fixed.

The profile now has us spending most of our time in String.compareTo (for the
binary search) and in OSMemory (paying for our slow native method calling).

Change-Id: I848a318572008e0be8a4a330bb14d2f791353200
ibcore/io/BufferIterator.java
ibcore/io/MemoryMappedFile.java
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
df349b3eaf4d1fa0643ab722173bc3bf20a266f5 14-Sep-2010 Brian Carlstrom <bdc@google.com> Fix HttpsURLConnectionTest failures

Focusing on HttpsURLConnectionTest.test_doOutput found a number of
unrelated issues, all of which are addressed by this change:
- {HttpURLConnection,HttpsURLConnection}.connect not ignored on subsequent calls
- OpenSSLSessionImpl.{getPeerCertificates,getPeerCertificateChain} did not include client certificate
- OpenSSLSocketImpl.getSession did not skip handshake when SSLSession was already available
- Fix 3 test issues in HttpsURLConnectionTest
- Fix 2 test issues in NativeCryptoTest

Details:

HttpsURLConnectionTest tests (such as test_doOutput) that
tried to call URLConnection.connect() at the end of the test
were raising exception. The RI URLConnection.connect
documentation says calls on connected URLConnections should be ignored.

Use "connected" instead of "connection != null" as reason to ignore "connect"

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java

Converted one caller of getPeerCertificateChain to
getPeerCertificates which is the new fast path. Track
OpenSSLSessionImpl change to take "java" vs "javax" certificates.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java

Move SSL_SESSION_get_peer_cert_chain to be SSL_get_peer_cert_chain
(similar to SSL_get_certificate). The problem was that
SSL_SESSION_get_peer_cert_chain used SSL_get_peer_cert_chain which
in the server case did not include the client cert itself, which
required a call to SSL_get_peer_certificate, which needed the
SSL instance pointer.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/native/NativeCrypto.cpp

Improved NativeCrypto_SSL_set_verify tracing

luni/src/main/native/NativeCrypto.cpp

As a side effect of the move to
NativeCrypto.SSL_get_peer_certificate, it no longer made sense to
lazily create the peer certificate chain since the SSLSession
should not depend on a particular SSL instance. The peer chain is
now passed in as part of the constructor and the peerCertifcates
in the OpenSSLSession can be final (also made localCertificates
final). Since peerCertifcates is the newew (java not javax) API
and more commonly used, it is what is created from the native
code, and peerCertificateChain is not derived from peerCertifcates
instead of vice versa.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java

Factored out code to used to create local certificate chain to
from array of DER byte arrays into createCertChain so it can be
reused to create peer certificate chain.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Fix OpenSSLSocketImpl.getSession to check for existing sslSession
to and skip handshake, which was causing an exception if the
connection had already been closed.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Fix test issues: Removed PrintStream wrapper of System.out which
was causing vogar to lose output. Added null check in closeSocket,
which can happen in timeout case. Removed use of
InputStream.available which in OpenSSLSocket case returned 0,
causing test to fail incorrectly.

luni/src/test/java/org/apache/harmony/luni/tests/internal/net/www/protocol/https/HttpsURLConnectionTest.java

Updating to track change to SSL_get_peer_cert_chain. Also fixed
some other unrelated test failures caused by IOException on
shutdown and false start (aka SSL_MODE_HANDSHAKE_CUTTHROUGH)
causing clientCallback.handshakeCompleted to be false.

luni/src/test/java/org/apache/harmony/xnet/provider/jsse/NativeCryptoTest.java

Bug: b/2981767
Change-Id: Id083beb6496558296c2f74f51ab0970e158b23a9
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
6812a2e8bb43d9a875633a9ba255d9882c63e327 14-Sep-2010 Brian Carlstrom <bdc@google.com> Rename internal SSLParameters to SSLParametersImpl to avoid collision with new javax.net.ssl.SSLParameters

Bug: 2672817
Change-Id: Iadf21b848eaf8850fce22721b9ba3739ab2e9fca
rg/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImplWrapper.java
rg/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLParameters.java
rg/apache/harmony/xnet/provider/jsse/SSLParametersImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketWrapper.java
ca99759b4f2aac2f796b430b74a8d3caff9d484a 14-Sep-2010 Brian Carlstrom <bdc@google.com> Remove SSLContextImpl.engineInit(..) that takes persistent cache arguments

Bug: 2672817
Change-Id: I201815857e4452498c746139b8d64b7721bc22cc
rg/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
43175c0830e92bfed2a187676e89bdde48d84d67 14-Sep-2010 Elliott Hughes <enh@google.com> am 4dc78e4c: am 5f67bf68: am f1ab58e7: Merge "Fix the TimeZone.getTimeZone documentation and a test." into gingerbread

Merge commit '4dc78e4c16f57491c111d8974e2249ac23c6c21d' into dalvik-dev

* commit '4dc78e4c16f57491c111d8974e2249ac23c6c21d':
Fix the TimeZone.getTimeZone documentation and a test.
4dc78e4c16f57491c111d8974e2249ac23c6c21d 14-Sep-2010 Elliott Hughes <enh@google.com> am 5f67bf68: am f1ab58e7: Merge "Fix the TimeZone.getTimeZone documentation and a test." into gingerbread

Merge commit '5f67bf688c1a91c9604bd9648a69bd2e04600301'

* commit '5f67bf688c1a91c9604bd9648a69bd2e04600301':
Fix the TimeZone.getTimeZone documentation and a test.
6c0aa9e00fdbcc2765d3c498c45e078457944468 14-Sep-2010 Elliott Hughes <enh@google.com> Fix the TimeZone.getTimeZone documentation and a test.

Bug: 2996225
Change-Id: I9242b8a8e343d2b1995b5f1d0cb715d2fa3080f6
ava/util/TimeZone.java
0bc30ae8420b5b1abc1b2eefbdf8846309b5447d 13-Sep-2010 Elliott Hughes <enh@google.com> More nio speedups.

Small improvements this time. Stop penalizing getChar/putChar with an extra
level of indirection through getShort/putShort; our VM can't win that
back yet, and the extra method call is a significant fraction of the
total time taken for these operations (1/3rd). This applies to direct, heap,
and mapped buffers. (One day we'll be able to come back and remove this.)

Also remove the float/double specializations from MemoryBlock, rewriting
the two callers of each to use int/long directly. Those callers are public
API, so this is as far as the removal of useless duplication can go here.
This applies to direct and mapped buffers.

Unroll loops (!) used to load/store short/int/long values from Java heap
byte[]s for performance. This applies to heap buffers.

Bug: 2935622
Change-Id: I093122af2b49d3ef864b87dce637c781727445dd
ava/nio/BaseByteBuffer.java
ava/nio/DirectByteBuffer.java
ava/nio/HeapByteBuffer.java
ava/nio/MemoryBlock.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
f714d3767875c96c5122683ef8c75cc9d5f1259f 13-Sep-2010 Elliott Hughes <enh@google.com> Make MappedByteBuffer.get(byte[], int, int) orders of magnitude faster.

Even with the misleading logarithmic scale graphs, this stood out like
a sore thumb. Other than this, our MappedByteBuffer looks like it's just a
layer or two of missing inlining away from DirectByteBuffer performance.

Bug: 2935622
Change-Id: Ie4ed153fad6d19a2c83748fee2e364c3e86d40f3
ava/nio/MappedByteBufferAdapter.java
03878d16fe2d6e8c158d3d78b39d1774954a8bb1 13-Sep-2010 Jesse Wilson <jessewilson@google.com> am 49d3e932: am ce457657: am 489118a5: Merge "Even more follow up to enh\'s HttpURLConnection docs review." into gingerbread

Merge commit '49d3e9326a5348ebef770874a6a6abf32ce60460' into dalvik-dev

* commit '49d3e9326a5348ebef770874a6a6abf32ce60460':
Even more follow up to enh's HttpURLConnection docs review.
49d3e9326a5348ebef770874a6a6abf32ce60460 13-Sep-2010 Jesse Wilson <jessewilson@google.com> am ce457657: am 489118a5: Merge "Even more follow up to enh\'s HttpURLConnection docs review." into gingerbread

Merge commit 'ce4576570a87c2c3c1f30db073235f317f430038'

* commit 'ce4576570a87c2c3c1f30db073235f317f430038':
Even more follow up to enh's HttpURLConnection docs review.
489118a5f849b76d1374dc47942f6066b4a17eb5 13-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Even more follow up to enh's HttpURLConnection docs review." into gingerbread
461c3c1e44c807a950f8dec34ba48ea425e8fcfb 13-Sep-2010 Elliott Hughes <enh@google.com> am 3628b98e: am 64612b4e: am 9d3b63b8: Merge "Document Unicode versions and that we don\'t support the locale spi junk." into gingerbread

Merge commit '3628b98ebe96ec346dd0d048f39b597c35a58e7e' into dalvik-dev

* commit '3628b98ebe96ec346dd0d048f39b597c35a58e7e':
Document Unicode versions and that we don't support the locale spi junk.
3628b98ebe96ec346dd0d048f39b597c35a58e7e 13-Sep-2010 Elliott Hughes <enh@google.com> am 64612b4e: am 9d3b63b8: Merge "Document Unicode versions and that we don\'t support the locale spi junk." into gingerbread

Merge commit '64612b4e61d7b8367133aa7ac3461953b0ab67b0'

* commit '64612b4e61d7b8367133aa7ac3461953b0ab67b0':
Document Unicode versions and that we don't support the locale spi junk.
9d3b63b8032836ff1c684974c8c7347b231cdc8b 13-Sep-2010 Elliott Hughes <enh@google.com> Merge "Document Unicode versions and that we don't support the locale spi junk." into gingerbread
11b9d26222315d4ddea223ce8f119ec25a1ba3d5 13-Sep-2010 Jesse Wilson <jessewilson@google.com> Even more follow up to enh's HttpURLConnection docs review.

Change-Id: Ia70565470d6c605d0c24105bc4ef5c712e3301a1
https://android-git.corp.google.com/g/67703
ava/net/HttpURLConnection.java
7acfb05a46440d9952eda85ae16d486c980db7a9 13-Sep-2010 Jesse Wilson <jessewilson@google.com> am c8eb9a4b: am c1741ca3: am 55bbb57d: More follow up to enh\'s HttpURLConnection docs review.

Merge commit 'c8eb9a4bdc2fd269ad6db13e00771eae839acc69' into dalvik-dev

* commit 'c8eb9a4bdc2fd269ad6db13e00771eae839acc69':
More follow up to enh's HttpURLConnection docs review.
d2d7abef3e9b73a57cdf1f2afd678d7f48945679 12-Sep-2010 Elliott Hughes <enh@google.com> Document Unicode versions and that we don't support the locale spi junk.

Bug: 2860486
Bug: 2938123
Change-Id: I3eb587300ea97340cdc23ba2d0136b8eeeb99b25
ava/lang/Character.java
ava/text/BreakIterator.java
ava/text/Collator.java
ava/text/DateFormat.java
ava/text/DateFormatSymbols.java
ava/text/DecimalFormatSymbols.java
ava/text/NumberFormat.java
ava/text/spi/BreakIteratorProvider.java
ava/text/spi/CollatorProvider.java
ava/text/spi/DateFormatProvider.java
ava/text/spi/DateFormatSymbolsProvider.java
ava/text/spi/DecimalFormatSymbolsProvider.java
ava/text/spi/NumberFormatProvider.java
ava/util/Calendar.java
ava/util/Locale.java
ava/util/spi/CurrencyNameProvider.java
ava/util/spi/LocaleNameProvider.java
ava/util/spi/LocaleServiceProvider.java
ava/util/spi/TimeZoneNameProvider.java
c8eb9a4bdc2fd269ad6db13e00771eae839acc69 13-Sep-2010 Jesse Wilson <jessewilson@google.com> am c1741ca3: am 55bbb57d: More follow up to enh\'s HttpURLConnection docs review.

Merge commit 'c1741ca343b689a54c2f805b465b87177e494b78'

* commit 'c1741ca343b689a54c2f805b465b87177e494b78':
More follow up to enh's HttpURLConnection docs review.
55bbb57dc76ab0231583460f5af4083f4f48f8f5 12-Sep-2010 Jesse Wilson <jessewilson@google.com> More follow up to enh's HttpURLConnection docs review.

See the original review here:
https://android-git.corp.google.com/g/#patch,sidebyside,67584,1,luni/src/main/java/java/net/HttpURLConnection.java

Change-Id: If296b35e53e7bde88403e9124038f38dd725f83b
ava/net/HttpURLConnection.java
ava/net/URLConnection.java
13e721c71c83537e6f3f36ad43321c470267d3b3 12-Sep-2010 Jesse Wilson <jessewilson@google.com> am 00abf762: am 6ded10dd: am 8c283b62: Document HttpURLConnection\'s many features and misfeatures.

Merge commit '00abf762df0db66d57de813a168fb09e429f16c7' into dalvik-dev

* commit '00abf762df0db66d57de813a168fb09e429f16c7':
Document HttpURLConnection's many features and misfeatures.
00abf762df0db66d57de813a168fb09e429f16c7 12-Sep-2010 Jesse Wilson <jessewilson@google.com> am 6ded10dd: am 8c283b62: Document HttpURLConnection\'s many features and misfeatures.

Merge commit '6ded10dd27b7e46bba6b3f3491bb844f33844cf1'

* commit '6ded10dd27b7e46bba6b3f3491bb844f33844cf1':
Document HttpURLConnection's many features and misfeatures.
8c283b62cd1952ffa145332d94ed691acf4ac87e 11-Sep-2010 Jesse Wilson <jessewilson@google.com> Document HttpURLConnection's many features and misfeatures.

Change-Id: Ib6d9f05e6a23bc44bd5c8838c9e8098b15d19810
ava/net/HttpURLConnection.java
961da1e7487bdb8ad8ac226d4f2789d003aa87b9 11-Sep-2010 Elliott Hughes <enh@google.com> Optimize bulk get of char[], double[], float[], long[], and short[].

I optimized int[] the other day, and byte[] has always been optimized.
This now makes our get performance equivalent to our put performance,
rather than orders of magnitude worse.

Before:

ByteBuffer_getByteArray 2041 ==========
ByteBuffer_putByteArray 1983 =========
CharBuffer_getCharArray 705152 ============================
CharBuffer_putCharArray 4375 ============
DoubleBuffer_getDoubleArray 860884 =============================
DoubleBuffer_putDoubleArray 11591 ===============
FloatBuffer_getFloatArray 839085 =============================
FloatBuffer_putFloatArray 6690 =============
IntBuffer_getIntArray 6814 =============
IntBuffer_putIntArray 6775 =============
LongBuffer_getLongArray 668171 ============================
LongBuffer_putLongArray 11585 ===============
ShortBuffer_getShortArray 620122 ============================
ShortBuffer_putShortArray 4350 ============

After:

ByteBuffer_getByteArray 2028 ===========
ByteBuffer_putByteArray 1948 ===========
CharBuffer_getCharArray 4376 =================
CharBuffer_putCharArray 4342 =================
DoubleBuffer_getDoubleArray 11616 =======================
DoubleBuffer_putDoubleArray 11540 =======================
FloatBuffer_getFloatArray 6827 ====================
FloatBuffer_putFloatArray 6747 ====================
IntBuffer_getIntArray 6824 ====================
IntBuffer_putIntArray 6733 ====================
LongBuffer_getLongArray 11597 =======================
LongBuffer_putLongArray 11489 =======================
ShortBuffer_getShortArray 4392 =================
ShortBuffer_putShortArray 4329 =================

(All times in microseconds. The relatively large amount of noise visibile from
the code that didn't change is because I told caliper I wanted results quickly,
since it was order of magnitude I cared about, not tens of microseconds. That
is, the scales on the two graphs are completely different, and it's only the
shapes of the graphs that you can usefully compare: after is less spiky,
because I've filled in the performance potholes.)

Bug: 2935622
Change-Id: Ia5a36e641ef67648fcdbda092fab36111613b1c2
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MemoryBlock.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ShortToByteBufferAdapter.java
rg/apache/harmony/luni/platform/OSMemory.java
dbb973b7f1dc6d3e86c6f9528a2aadff1e01c0cb 10-Sep-2010 Elliott Hughes <enh@google.com> Fix MappedByteBufferAdapter.

I broke MappedByteBufferAdapter in https://android-git.corp.google.com/g/65226
because I didn't move the position-setting to _before_ the delegated gets (the
puts were correct). This was spotted in review, but I'd already submitted to
unblock a later change.

The upstream tests didn't spot this because they mainly test buffers full of
zeros (which aren't very interesting from an endian point of view). I've raised
http://b/2991877 to get the upstream tests fixed.

I've also added a motivating comment for this admittedly weird class.

Bug: 2935622
Change-Id: I6bbf00636a5e05e7396cf94ee6985bcf50fc4552
ava/nio/MappedByteBufferAdapter.java
0e1b748ecabf720065a632f28330f5d4d037d5ae 10-Sep-2010 Elliott Hughes <enh@google.com> Consistent naming for get/put/wrap arguments.

Bug: 2935622
Change-Id: Icb39392f9106f9fe5ba70ccdcb6b059dbf5617bc
ava/nio/ByteBuffer.java
ava/nio/CharArrayBuffer.java
ava/nio/CharBuffer.java
ava/nio/CharSequenceAdapter.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleArrayBuffer.java
ava/nio/DoubleBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatArrayBuffer.java
ava/nio/FloatBuffer.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/HeapByteBuffer.java
ava/nio/IntArrayBuffer.java
ava/nio/IntBuffer.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongArrayBuffer.java
ava/nio/LongBuffer.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/ReadOnlyCharArrayBuffer.java
ava/nio/ReadOnlyDirectByteBuffer.java
ava/nio/ReadOnlyDoubleArrayBuffer.java
ava/nio/ReadOnlyFloatArrayBuffer.java
ava/nio/ReadOnlyHeapByteBuffer.java
ava/nio/ReadOnlyIntArrayBuffer.java
ava/nio/ReadOnlyLongArrayBuffer.java
ava/nio/ReadOnlyShortArrayBuffer.java
ava/nio/ReadWriteCharArrayBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ReadWriteDoubleArrayBuffer.java
ava/nio/ReadWriteFloatArrayBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
ava/nio/ReadWriteIntArrayBuffer.java
ava/nio/ReadWriteLongArrayBuffer.java
ava/nio/ReadWriteShortArrayBuffer.java
ava/nio/ShortArrayBuffer.java
ava/nio/ShortBuffer.java
ava/nio/ShortToByteBufferAdapter.java
e58d99453b152f80aa9c8c0951899553ea54483f 10-Sep-2010 Elliott Hughes <enh@google.com> Merge changes I1f5afb77,I4cfe206f into dalvik-dev

* changes:
Fast-path nio put for char[], double[], long[], nio get for int[].
Speed up MappedByteBuffer.
692222b08ff88eb92b523bf4780d7ea17a23aa80 10-Sep-2010 Elliott Hughes <enh@google.com> Fast-path nio put for char[], double[], long[], nio get for int[].

The other vector puts were already special-cased.

int[] is the first get to be accelerated; I'll come back and do the others.
I don't know how used vector gets are, but our nio unit tests go from ~4minutes
to ~15s after these changes, and all but the last five seconds of that is
from the get(int[]) part of this change.

Bug: 2935622
Change-Id: I1f5afb77e0fc7abcb661f861fa435cbec4b3f348
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MemoryBlock.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ShortToByteBufferAdapter.java
rg/apache/harmony/luni/platform/OSMemory.java
0c53cf8b2c46deb41e91db50ddc17d598cc64a10 09-Sep-2010 Elliott Hughes <enh@google.com> Speed up MappedByteBuffer.

Make it possible to override limit(int) and position(int) internally, so I can
avoid updating MappedByteBufferAdapter's wrapped ByteBuffer's limit and
position on every get or put. I still need to do extra work with position if
you use the get/put overloads that don't take an index, but even that becomes
cheaper. The indexed overloads benefit the most, though. Before:

benchmark before after (both us)

ByteBuffer_getByte 830 757
ByteBuffer_getChar 940 875

ByteBuffer_getByte_indexed 800 509
ByteBuffer_getChar_indexed 936 643

Also factor out duplicated toString implementations.

Bug: 2935622
Change-Id: I4cfe206fde638bddb5a7b4a62223e2588f44b8ac
ava/nio/Buffer.java
ava/nio/ByteBuffer.java
ava/nio/DoubleBuffer.java
ava/nio/FloatBuffer.java
ava/nio/IntBuffer.java
ava/nio/LongBuffer.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/ReadOnlyCharArrayBuffer.java
ava/nio/ReadOnlyDirectByteBuffer.java
ava/nio/ReadOnlyDoubleArrayBuffer.java
ava/nio/ReadOnlyFloatArrayBuffer.java
ava/nio/ReadOnlyHeapByteBuffer.java
ava/nio/ReadOnlyIntArrayBuffer.java
ava/nio/ReadOnlyLongArrayBuffer.java
ava/nio/ReadOnlyShortArrayBuffer.java
ava/nio/ReadWriteCharArrayBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ReadWriteDoubleArrayBuffer.java
ava/nio/ReadWriteFloatArrayBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
ava/nio/ReadWriteIntArrayBuffer.java
ava/nio/ReadWriteLongArrayBuffer.java
ava/nio/ReadWriteShortArrayBuffer.java
ava/nio/ShortBuffer.java
d41c277b12ce7b63bf93cfad48d5280c8d036712 09-Sep-2010 Brad Fitzpatrick <bradfitz@android.com> am e00dd470: am f9efa849: am 5900e554: Use BlockGuard for OpenSSL sockets.

Merge commit 'e00dd4703c3b7e895059ba7cc7399dda0cba2580' into dalvik-dev

* commit 'e00dd4703c3b7e895059ba7cc7399dda0cba2580':
Use BlockGuard for OpenSSL sockets.
e00dd4703c3b7e895059ba7cc7399dda0cba2580 09-Sep-2010 Brad Fitzpatrick <bradfitz@android.com> am f9efa849: am 5900e554: Use BlockGuard for OpenSSL sockets.

Merge commit 'f9efa849319bf5a56dc58346fec0c8f2d68a32d5'

* commit 'f9efa849319bf5a56dc58346fec0c8f2d68a32d5':
Use BlockGuard for OpenSSL sockets.
5900e5546059f05d5e58e5732e4d08d83b8b7574 09-Sep-2010 Brad Fitzpatrick <bradfitz@android.com> Use BlockGuard for OpenSSL sockets.

StrictMode wasn't catching network usage via SSL.

Bug: 2976407
Change-Id: I31fe09861e3aca7b26724b94af88687fb6b9442b
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
934767b07d94041390785d8fe66c86b2379730bc 09-Sep-2010 Elliott Hughes <enh@google.com> Fix build (non-final _elementSizeShift).

Bug: 2935622
Change-Id: I5ff543b11e055a25676444d7ba9f0bb939544816
ava/nio/BaseByteBuffer.java
ava/nio/Buffer.java
ava/nio/ByteBuffer.java
ava/nio/CharBuffer.java
ava/nio/DoubleBuffer.java
ava/nio/FloatBuffer.java
ava/nio/HeapByteBuffer.java
ava/nio/IntBuffer.java
ava/nio/LongBuffer.java
ava/nio/ShortBuffer.java
b15055b1c9622c611b8fc83c4c92cba7f9dab3e8 08-Sep-2010 Elliott Hughes <enh@google.com> Merge "Move the MemoryBlock up into java.nio.Buffer." into dalvik-dev
0440837fd0013373ba3476283151299e7be9e5a3 08-Sep-2010 Elliott Hughes <enh@google.com> Move the MemoryBlock up into java.nio.Buffer.

This lets me kill getBaseAddress and the (bogus) DirectBuffer interface.

Bug: 2935622
Change-Id: I51c758e7687a6cfa4a3a64ef089fb600b847b70f
ava/nio/BaseByteBuffer.java
ava/nio/Buffer.java
ava/nio/ByteBuffer.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectBuffer.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBuffer.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/ShortToByteBufferAdapter.java
4b55e62ae85e33cbe25a657241ace191a9654cc1 08-Sep-2010 Jesse Wilson <jessewilson@google.com> am 81a8d57b: am ab7fd803: am 7e29fa5a: Merge "Cope with HTTP responses where the response code and headers disagree." into gingerbread

Merge commit '81a8d57b44d4e6f5e6d74af193ce23ec5366ca0c' into dalvik-dev

* commit '81a8d57b44d4e6f5e6d74af193ce23ec5366ca0c':
Cope with HTTP responses where the response code and headers disagree.
9bf1ab36b67d8b49797cb004b6aedc3e8f52e071 08-Sep-2010 Elliott Hughes <enh@google.com> am 4d8c37b9: am f30df55f: am 99d9f92a: Fix off-by-one error in BigInteger.valueOf.

Merge commit '4d8c37b917df4212de7f9b9e6b6c4a8f80727de4' into dalvik-dev

* commit '4d8c37b917df4212de7f9b9e6b6c4a8f80727de4':
Fix off-by-one error in BigInteger.valueOf.
81a8d57b44d4e6f5e6d74af193ce23ec5366ca0c 08-Sep-2010 Jesse Wilson <jessewilson@google.com> am ab7fd803: am 7e29fa5a: Merge "Cope with HTTP responses where the response code and headers disagree." into gingerbread

Merge commit 'ab7fd80316535611902204186adba9f531a26fba'

* commit 'ab7fd80316535611902204186adba9f531a26fba':
Cope with HTTP responses where the response code and headers disagree.
4d8c37b917df4212de7f9b9e6b6c4a8f80727de4 08-Sep-2010 Elliott Hughes <enh@google.com> am f30df55f: am 99d9f92a: Fix off-by-one error in BigInteger.valueOf.

Merge commit 'f30df55f3ab26dc16523f8a8116bc93e479f3ada'

* commit 'f30df55f3ab26dc16523f8a8116bc93e479f3ada':
Fix off-by-one error in BigInteger.valueOf.
eb29579498a8860f81fd38275f8657c21bb67abb 08-Sep-2010 Elliott Hughes <enh@google.com> Rename PlatformAddress to MemoryBlock.

Bug: 2935622
Change-Id: I8a09cb9be0b0ea468278f7808f1a18c3ce820b49
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectBuffer.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBuffer.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/MemoryBlock.java
ava/nio/PlatformAddress.java
ava/nio/ReadOnlyDirectByteBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ShortToByteBufferAdapter.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
7e29fa5a86c6d28d97e28a18184d3584ce83e61a 08-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Cope with HTTP responses where the response code and headers disagree." into gingerbread
65d890eb22aeba9b009ee642ffd4fff48a6f98ae 08-Sep-2010 Jesse Wilson <jessewilson@google.com> Cope with HTTP responses where the response code and headers disagree.

See http://b/issue?id=2981779

Change-Id: I0e4ed8f0cc606aa419704ba2eb5cd9938b5ff320
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
99d9f92a991cbbfc58b103b3f1c114fbac5d1188 08-Sep-2010 Elliott Hughes <enh@google.com> Fix off-by-one error in BigInteger.valueOf.

Bug: 2981072
Change-Id: Ic85aea22fc4e519355c537376b1526828e2375c5
ava/math/BigInteger.java
0f335c4ed1a0cb419c8ce82183fabb241d5dd032 07-Sep-2010 Elliott Hughes <enh@google.com> Kill getEffectiveAddress.

Set the corresponding field in the constructors.

Requires a dalvikvm change: https://android-git.corp.google.com/g/64866

Bug: 2935622
Change-Id: I26663bfcdb80db75672be71395b861c1a79c24fc
ava/nio/Buffer.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectBuffer.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/NIOAccess.java
ava/nio/NioUtils.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ShortToByteBufferAdapter.java
403719757f572510dbc1ed608c1a3faa81aa2a28 07-Sep-2010 Elliott Hughes <enh@google.com> DirectBuffer can be package-private.

I should have done this when I moved this class. PlatformAddress still needs
one called moved before it can be package-private.

Bug: 2935622
Change-Id: Ib618975168ee83f06078c1c633845f5910690bbf
ava/nio/DirectBuffer.java
73ea6f8e9e248a1c10c9291e9698de1c81a62979 04-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Remove ReaderInputStream and WriterOutputStream." into dalvik-dev
498e6e60b7c9180b6d58818fe49fd72ad0209a65 04-Sep-2010 Jesse Wilson <jessewilson@google.com> Remove ReaderInputStream and WriterOutputStream.

These classes are unnecessary on our platform, where UTF-8 is
the only supported default encoding.

This was motivated by a search for dangerous calls to InputStream.available(),
which WriterOutputStream has in its flush() method.

Change-Id: Ia8d5da075581caf371e1384e05be29c2fa8a4408
ava/lang/Runtime.java
4ed432c88fb9729a424091a0d218facaa34bc378 04-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Replace InputStream.availalble() with File.length() where that is intended." into dalvik-dev
3ae7518738fe2df948ec310096015848ebbe410b 04-Sep-2010 Brian Carlstrom <bdc@google.com> @hide java.nio.{DirectBuffer,PlatformAddress}

Change-Id: Ib8992de0394c6fc340a457d16acca9bbb9117121
ava/nio/DirectBuffer.java
ava/nio/PlatformAddress.java
c73a5be50cdd804ff3c12e7b43da08c33cdd6f21 04-Sep-2010 Elliott Hughes <enh@google.com> Move some of the nio implementation into java.nio.

Another stepping-stone to simplifying the PlatformAddress/OSMemory situation.

Bug: 2935622
Change-Id: Ic5b941ee7c17d6b5aeda53c3c2cdf2c43cebff55
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectBuffer.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBuffer.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/NIOAccess.java
ava/nio/NioUtils.java
ava/nio/PlatformAddress.java
ava/nio/ReadOnlyDirectByteBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ShortToByteBufferAdapter.java
ava/nio/charset/Charset.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/nio/AddressUtil.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/DirectBuffer.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
767577433cca31ec4827be42bd013d538d508ebb 04-Sep-2010 Jesse Wilson <jessewilson@google.com> Replace InputStream.availalble() with File.length() where that is intended.

See http://b/issue?id=2768506

Change-Id: I5ba496f957ffd6307d17a2ce1b4cfe6e4eb9aada
rg/apache/harmony/luni/internal/net/www/protocol/file/FileURLConnection.java
ba8f3b76f98eafecd94cb5a549634eb14cfd7b1c 04-Sep-2010 Elliott Hughes <enh@google.com> Merge "Remove nio cruft, move the implementation cost of 'free' where it belongs..." into dalvik-dev
c3c38fbbccaf428200acdd819b1f7799edac54d2 04-Sep-2010 Elliott Hughes <enh@google.com> Remove nio cruft, move the implementation cost of 'free' where it belongs...

...and inline some getBaseAddress calls. The JIT doesn't manage to do that, it
seems, but being the JIT is not really my purpose: I'm trying to kill
getBaseAddress.

Bug: 2935622
Change-Id: I3cd99cd131a2c09796f5ff5bb31332287db2130f
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/NIOAccess.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ShortToByteBufferAdapter.java
rg/apache/harmony/nio/internal/DirectBuffer.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
01cd454055a7bef76178e301fe0d63481330676e 04-Sep-2010 Jesse Wilson <jessewilson@google.com> am bcee1dba: am e24632f5: am 4eb8ca7f: Fix the last remaining gaps in our Java 6 API.

Merge commit 'bcee1dbab816a3f32c642a7950ff824125896985' into dalvik-dev

* commit 'bcee1dbab816a3f32c642a7950ff824125896985':
Fix the last remaining gaps in our Java 6 API.
bcee1dbab816a3f32c642a7950ff824125896985 04-Sep-2010 Jesse Wilson <jessewilson@google.com> am e24632f5: am 4eb8ca7f: Fix the last remaining gaps in our Java 6 API.

Merge commit 'e24632f522e88be1a8e01ea04515fadcca45cdb0'

* commit 'e24632f522e88be1a8e01ea04515fadcca45cdb0':
Fix the last remaining gaps in our Java 6 API.
4eb8ca7f1e5de2d208c5fcee8b11a7e50200cf17 04-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix the last remaining gaps in our Java 6 API.

This updates Policy and adds PolicySpi. Both come right from
Harmony and have been tested by Harmony's test suite.

This removes redundant abstract methods in SocketImpl; these are
inherited from the SocketOptions interface.

This makes an internal method in SocketPermission private.

See http://b/issue?id=2497395

Change-Id: I734529ac7e1980453acfe0d8e7209f49b6679652
ava/net/SocketImpl.java
ava/net/SocketPermission.java
ava/security/Policy.java
ava/security/PolicySpi.java
040bb9d72f4a406a40f40e198857a8a27e3de688 04-Sep-2010 Elliott Hughes <enh@google.com> Merge the various kinds of PlatformAddress.

This is just a stepping-stone, not particularly interesting by itself.

Bug: 2935622
Change-Id: I561337b9e7de8a6f058b7d52e5d756bb455075e9
ava/nio/DirectByteBuffer.java
ava/nio/MappedByteBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
rg/apache/harmony/luni/platform/MallocedPlatformAddress.java
rg/apache/harmony/luni/platform/MappedPlatformAddress.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
29dbfe19b113a13b712be2bc762ef1c81cd06c47 03-Sep-2010 Elliott Hughes <enh@google.com> Use finalizers to free direct buffers.

Also switch to a cheaper scheme for avoiding double-frees (which could only
happen if library code is broken; at the moment the only caller is the
iovec-style stuff). This halves the cost of direct buffer access, at the
unimportant cost of not throwing an exception if we try to access a buffer
we freed while we still had a reference to it.

Also use named constants for the sizes of primitive types.

Also kill BufferFactory.

Bug: 2935622
Change-Id: I6021ce7531f49d8cff7635d6d2cc54851bacaf69
ava/nio/Buffer.java
ava/nio/BufferFactory.java
ava/nio/ByteBuffer.java
ava/nio/CharBuffer.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatBuffer.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/HeapByteBuffer.java
ava/nio/IntBuffer.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongBuffer.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBuffer.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/ReadOnlyDirectByteBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
ava/nio/ShortBuffer.java
ava/nio/ShortToByteBufferAdapter.java
rg/apache/harmony/luni/platform/MallocedPlatformAddress.java
rg/apache/harmony/luni/platform/MappedPlatformAddress.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/platform/RuntimeMemorySpy.java
rg/apache/harmony/nio/internal/DirectBuffer.java
62a12324bd7c3b77e999b32becad3d2916190e56 03-Sep-2010 Elliott Hughes <enh@google.com> Change NIOAccess to consistently use the position field rather than the position() method.

This is safe (which is lucky, since we're accessing the field directly
elsewhere). position() is final and just "return position;".

Bug: 2535509
Change-Id: I5c1f569ab318cb0ddb44e887b75fdc21ac270944
ava/nio/NIOAccess.java
20a72661a2715fd4c62fe102ea8f7328ecea2fb0 03-Sep-2010 Elliott Hughes <enh@google.com> Merge "Kill PlatformAddressFactory, and remove/simplify some other code." into dalvik-dev
ff18eaedc0efa53953f8b5ee80c8172be428f5d3 03-Sep-2010 Jesse Wilson <jessewilson@google.com> am 5ebfecbf: am c7c6c034: am b7155fd5: Fixing a broken pipe with HttpsURLConnection connection reuse.

Merge commit '5ebfecbf35aa5bf08dc5e6fc031199f5bd814557' into dalvik-dev

* commit '5ebfecbf35aa5bf08dc5e6fc031199f5bd814557':
Fixing a broken pipe with HttpsURLConnection connection reuse.
5ebfecbf35aa5bf08dc5e6fc031199f5bd814557 03-Sep-2010 Jesse Wilson <jessewilson@google.com> am c7c6c034: am b7155fd5: Fixing a broken pipe with HttpsURLConnection connection reuse.

Merge commit 'c7c6c034a3fb58116b7ac9fe4015063679038c94'

* commit 'c7c6c034a3fb58116b7ac9fe4015063679038c94':
Fixing a broken pipe with HttpsURLConnection connection reuse.
b7155fd57239e986bbaba254a91aeb9600d60305 03-Sep-2010 Jesse Wilson <jessewilson@google.com> Fixing a broken pipe with HttpsURLConnection connection reuse.

We had a bug where we were peeking a byte from the raw socket
stream rather than the encrypted stream when we were attempting
to reuse an HTTPS connection. The raw stream field shouldn't
have been initialized, but setupTransportIO() did it while the
connection was being established.

This fixes setupTransportIO() to not initialize the fields
and isStale() to use the SSL fields if they exist.

See http://code.google.com/p/android/issues/detail?id=8625

Change-Id: Idd5b6f20e098adf436997829940707548896bedb
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
4d68282a79fb0417f43efdef41b9a920385bdded 03-Sep-2010 Elliott Hughes <enh@google.com> Kill PlatformAddressFactory, and remove/simplify some other code.

Now we create one PlatformAddress per direct byte buffer (or mapped byte
buffer), there's no need for object pooling.

Bug: 2935622
Change-Id: I84ef9d0b77774e1d2d80921b95b2f30383a0ab68
ava/nio/DirectByteBuffer.java
ava/nio/DirectByteBuffers.java
ava/nio/ReadWriteDirectByteBuffer.java
rg/apache/harmony/luni/platform/MappedPlatformAddress.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/platform/PlatformAddressFactory.java
rg/apache/harmony/luni/platform/RuntimeMemorySpy.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
bbef9cc724535cf1c8b161fdfabbded2f2f7b1b8 03-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix jtreg test failures when we weren't throwing on bad parameters." into dalvik-dev
8cfafd33742282beb20c6971aafc1feb35e3fa5e 03-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix jtreg test failures when we weren't throwing on bad parameters.

See http://b/2224959

Change-Id: I9f572d08328dda280a77287a228072d33fcbea85
ava/io/StringBufferInputStream.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/ZipInputStream.java
ef122c9d4b1d3b4f15988682149e285098e8d4ab 02-Sep-2010 Elliott Hughes <enh@google.com> Merge "Make DirectBuffer.getEffectiveAddress cheaper." into dalvik-dev
1c2b566e4fc0b75bd5f50f17b1a6d16d8999852d 02-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix a findbugs bug where ZipEntry.clone() didn't call super.clone()." into dalvik-dev
f46d2ce4d4c92d16e2574f57f70fc5477dc12697 02-Sep-2010 Elliott Hughes <enh@google.com> Make DirectBuffer.getEffectiveAddress cheaper.

DirectBuffer.getEffectiveAddress is used to implement the JNI function
GetDirectBufferAddress. Currently it uses reference types unnecessarily,
and we have an object pool to reduce the cost of this. Switch to using
int instead.

I'll remove the pool in a later change.

Note that this change requires a corresponding change to the
GetDirectBufferAddress implementation in dalvik:
https://android-git.corp.google.com/g/64328

Bug: 2935622
Change-Id: Ia0c20bd58c5355550f6af840feb08acff14fd4e9
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DirectByteBuffers.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/NIOAccess.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ShortToByteBufferAdapter.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/nio/AddressUtil.java
rg/apache/harmony/nio/internal/DirectBuffer.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
355a98498e4bc434dde8809eacf6e150f9b25f89 02-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix a findbugs bug where ZipEntry.clone() didn't call super.clone().

See http://b/2099615

Change-Id: Ib1347aa5e35c62501d9d59eccfdfed098559d552
ava/util/zip/ZipEntry.java
4d36cf73283e868b17aa12d2c5674eae29e2c626 02-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Make fields final where possible." into dalvik-dev
a7c0ef2fb67e2c02470d234fbf263acd012c4224 02-Sep-2010 Elliott Hughes <enh@google.com> Merge "Kill ThreadLocalCache." into dalvik-dev
72b5bc43a92b0220189e67168bd4dce87fec8ab5 02-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Don't null out fields in ExemptionMechanism.finalize()." into dalvik-dev
b17ebc1d990e96d4801663f0b53ded780d0bab41 02-Sep-2010 Jesse Wilson <jessewilson@google.com> Don't null out fields in ExemptionMechanism.finalize().

See http://b/issue?id=2099626

Change-Id: Iab79282b30bc2acbb39f8cfcfab2a45a5a8cf528
avax/crypto/ExemptionMechanism.java
56e742806ebb265e77de750cdb4575cff781fdf8 02-Sep-2010 Elliott Hughes <enh@google.com> Kill ThreadLocalCache.

This has been a long time coming. The two public fields were only used when
writing a jar file manifest, which isn't a performance case. The class was
used very strangely in ObjectStreamClass; it seems to make more sense to just
inline the relevant code there.

Change-Id: I5c6fe307558038394a598a846f59098c77143d3a
ava/io/ObjectStreamClass.java
ava/util/jar/Manifest.java
rg/apache/harmony/luni/util/ThreadLocalCache.java
6670318007799f403594f0760382b8c23f7dda0f 02-Sep-2010 Jesse Wilson <jessewilson@google.com> Make fields final where possible.

See http://b/issue?id=2099637

Change-Id: I2a237d876c7acbe629e69d5c31d05737908f4606
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/apache/harmony/xnet/provider/jsse/ProtocolVersion.java
rg/apache/harmony/xnet/provider/jsse/SSLRecordProtocol.java
9297c39c474c98b7aec19e22bf93416071080f3a 02-Sep-2010 Elliott Hughes <enh@google.com> am 1f6597dc: am ff59a5c5: am 171dc20a: Use idiomatic Java "type[] id" syntax instead of "type id[]".

Merge commit '1f6597dc2b3340c5eca6f16d8681058f913d8744' into dalvik-dev

* commit '1f6597dc2b3340c5eca6f16d8681058f913d8744':
Use idiomatic Java "type[] id" syntax instead of "type id[]".
1f6597dc2b3340c5eca6f16d8681058f913d8744 02-Sep-2010 Elliott Hughes <enh@google.com> am ff59a5c5: am 171dc20a: Use idiomatic Java "type[] id" syntax instead of "type id[]".

Merge commit 'ff59a5c5b0977ba11442422b0a853452dfb289e8'

* commit 'ff59a5c5b0977ba11442422b0a853452dfb289e8':
Use idiomatic Java "type[] id" syntax instead of "type id[]".
171dc20afe5071d5cbfad7103903bfa2c1f8d00f 02-Sep-2010 Elliott Hughes <enh@google.com> Use idiomatic Java "type[] id" syntax instead of "type id[]".

I've left xalan and the other xml filth alone, as usual.

Change-Id: I6be274501fff73e67ca6b3c872704988e0e30486
ava/io/BufferedWriter.java
ava/io/ByteArrayInputStream.java
ava/io/CharArrayReader.java
ava/io/DataOutputStream.java
ava/io/InputStreamReader.java
ava/io/RandomAccessFile.java
ava/io/Reader.java
ava/io/StreamTokenizer.java
ava/io/Writer.java
ava/lang/Integer.java
ava/lang/StringBuffer.java
ava/math/BigInteger.java
ava/math/BitLevel.java
ava/math/Conversion.java
ava/math/Logical.java
ava/math/Multiplication.java
ava/math/Primality.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/URLDecoder.java
ava/nio/BufferFactory.java
ava/security/MessageDigestSpi.java
ava/security/SignatureSpi.java
ava/text/Bidi.java
ava/util/Formatter.java
ava/util/GregorianCalendar.java
avax/xml/parsers/FilePathToURI.java
avax/xml/transform/stream/FilePathToURI.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/util/InputStreamHelper.java
rg/apache/harmony/security/provider/crypto/DSAPrivateKeyImpl.java
rg/apache/harmony/security/provider/crypto/DSAPublicKeyImpl.java
rg/apache/harmony/security/provider/crypto/SHA1Impl.java
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
rg/apache/harmony/security/provider/crypto/SHA1_MessageDigestImpl.java
rg/apache/harmony/security/provider/crypto/SHA1withDSA_SignatureImpl.java
rg/apache/harmony/xml/ExpatPullParser.java
c6e0981e5a2d23a0758ed71a8086c4278a7832ef 02-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix racy socket.close() behaviour.

This is a follow up to enh's comments on https://android-git.corp.google.com/g/64034

Change-Id: I7ea3c15c164cf45380e1868dc4ef85b8a9417cbe
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
7ab77235d8e82fed639eebbf93ac317ee9346498 02-Sep-2010 Brian Carlstrom <bdc@google.com> am 9cbb0f7a: am 7f0c06f7: Don\'t use StringBuffer where we don\'t need to.

Merge commit '9cbb0f7a0022b823d664c8c20daecf2de584aecb'

* commit '9cbb0f7a0022b823d664c8c20daecf2de584aecb':
Don't use StringBuffer where we don't need to.
e6516fe33b524e6359c147b4aaa9a23716708ce2 02-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Don't synchronize on non-final fields." into dalvik-dev
68eebc3ce6b115bedae49693f42b49fd22f220d2 02-Sep-2010 Elliott Hughes <enh@google.com> Put fields in the canonical order.

Change-Id: I2f19343fdc154ce2b5570f6507dd39b5582543c9
ava/lang/RealToString.java
7f0c06f737b6f1f6b3a5bb30111f95dd0ca586a2 02-Sep-2010 Brian Carlstrom <bdc@google.com> Don't use StringBuffer where we don't need to.

I've left xalan alone, because that's just one big steaming heap.

Change-Id: Ibf7b2b5e347196d4de857217b022003ccc409ac5
ava/awt/font/NumericShaper.java
ava/lang/Throwable.java
ava/lang/reflect/Field.java
ava/math/BigDecimal.java
ava/math/Conversion.java
ava/math/MathContext.java
ava/net/URLEncoder.java
ava/util/prefs/AbstractPreferences.java
ava/util/prefs/XMLParser.java
ava/util/regex/Matcher.java
avax/net/ssl/DefaultHostnameVerifier.java
avax/security/auth/Subject.java
avax/xml/datatype/Duration.java
avax/xml/namespace/QName.java
avax/xml/parsers/FilePathToURI.java
avax/xml/transform/TransformerException.java
avax/xml/transform/stream/FilePathToURI.java
rg/apache/harmony/luni/lang/reflect/ImplForWildcard.java
9642982339262f29e0452917b419276ad3ab42a9 02-Sep-2010 Elliott Hughes <enh@google.com> am e2f3eced: am 91236d22: am 62066678: Make StringBuilder.append(float) and append(double) 2x faster.

Merge commit 'e2f3ecedda402fbec6ef0e3498e45ab3ea365ca1' into dalvik-dev

* commit 'e2f3ecedda402fbec6ef0e3498e45ab3ea365ca1':
Make StringBuilder.append(float) and append(double) 2x faster.
65434a663de243eba8e214a52eead6c0c31aa0c3 02-Sep-2010 Elliott Hughes <enh@google.com> am 6b45cd03: am 8689d009: am 10a17e23: Speed up Float.toString (and Double.toString).

Merge commit '6b45cd03643b291efb24146c7b8ef9f3b9c5fd16' into dalvik-dev

* commit '6b45cd03643b291efb24146c7b8ef9f3b9c5fd16':
Speed up Float.toString (and Double.toString).
5dd4daab576882e55330f320426400b3804d00f2 02-Sep-2010 Elliott Hughes <enh@google.com> resolved conflicts for merge of d6e0e84f to dalvik-dev

Change-Id: Ia9fb6f5612c98b2d832d089f1320e83821ddc6bb
e1ad0aa0a03ae8c556575b1babe945488296cef8 02-Sep-2010 Elliott Hughes <enh@google.com> resolved conflicts for merge of bbdd4787 to dalvik-dev

Change-Id: Ief7c759de138017e8211ea1aed53615211f2abc1
e2f3ecedda402fbec6ef0e3498e45ab3ea365ca1 02-Sep-2010 Elliott Hughes <enh@google.com> am 91236d22: am 62066678: Make StringBuilder.append(float) and append(double) 2x faster.

Merge commit '91236d22cdf5dca974366891223ada1078500d1f'

* commit '91236d22cdf5dca974366891223ada1078500d1f':
Make StringBuilder.append(float) and append(double) 2x faster.
0116e948e00b19ffb3c43da7344484104138b8e5 02-Sep-2010 Elliott Hughes <enh@google.com> am e105541c: am f528b9df: Double the speed of StringBuilder.append(int) and append(long).

Merge commit 'e105541c578878ca2f6d75da3933032bc905a9f2'

* commit 'e105541c578878ca2f6d75da3933032bc905a9f2':
Double the speed of StringBuilder.append(int) and append(long).
a784637e4726a4abe9517f19614ae61e55f6ca48 02-Sep-2010 Elliott Hughes <enh@google.com> am 7e59598e: am ca12e576: Make StringBuilder.append(CharSequence) as cheap as append(CharSequence, int, int).

Merge commit '7e59598ee2f49fdd93d9c8c07f0a055e7ad788dc'

* commit '7e59598ee2f49fdd93d9c8c07f0a055e7ad788dc':
Make StringBuilder.append(CharSequence) as cheap as append(CharSequence, int, int).
e79b44902a2d9656df80c98f9efba5514d4d9add 02-Sep-2010 Elliott Hughes <enh@google.com> am 59b955d9: am 82a495ad: Move Integer and Long\'s toString methods into a new class.

Merge commit '59b955d9911aff328932a465d20264b23a840bdd'

* commit '59b955d9911aff328932a465d20264b23a840bdd':
Move Integer and Long's toString methods into a new class.
6b45cd03643b291efb24146c7b8ef9f3b9c5fd16 02-Sep-2010 Elliott Hughes <enh@google.com> am 8689d009: am 10a17e23: Speed up Float.toString (and Double.toString).

Merge commit '8689d009e01ac0ba2c505b42c9067760039eb97c'

* commit '8689d009e01ac0ba2c505b42c9067760039eb97c':
Speed up Float.toString (and Double.toString).
d6e0e84f4f074e185da89127b112bc68709d6b5a 02-Sep-2010 Elliott Hughes <enh@google.com> am 7585076e: am 706de116: Minor tidy-up of Float.toString and Double.toString.

Merge commit '7585076ed2a498cbd2fa615be1e5cc01f4537ec0'

* commit '7585076ed2a498cbd2fa615be1e5cc01f4537ec0':
Minor tidy-up of Float.toString and Double.toString.
bbdd47874c810cfb9d83677992c6e84a0e0ca954 02-Sep-2010 Elliott Hughes <enh@google.com> am 3337a093: am d16c3144: Faster implementations of Math/StrictMath\'s copySign methods.

Merge commit '3337a093b96f4a36d2dc5629aaa2e742019bac35'

* commit '3337a093b96f4a36d2dc5629aaa2e742019bac35':
Faster implementations of Math/StrictMath's copySign methods.
7f33d331040c0737f6cd10511654293eaac86134 02-Sep-2010 Elliott Hughes <enh@google.com> am 92ef6c9f: am 3e6f49bb: Double the speed of %.2f in Formatter.

Merge commit '92ef6c9f29dc10e4c75cb711d72067f82168c52f'

* commit '92ef6c9f29dc10e4c75cb711d72067f82168c52f':
Double the speed of %.2f in Formatter.
620666783267ed3a6f7f2b4309a66f1c1f18de53 02-Sep-2010 Elliott Hughes <enh@google.com> Make StringBuilder.append(float) and append(double) 2x faster.

Actually a bit more than 2x --- 40us down to 15us for "small" (but non-trivial)
floats.

Also StringBuffer.

[cherry-pick of 0d041e2cea528066bb87c7891ef746b977f18b9d from dalvik-dev into gingerbread]

Bug: 2243821
ava/lang/Double.java
ava/lang/RealToString.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
f528b9df057fe7faf3db65a931f26b6caf214991 01-Sep-2010 Elliott Hughes <enh@google.com> Double the speed of StringBuilder.append(int) and append(long).

Also StringBuilder's evil twin, StringBuffer.

Also shave some time off "%d" formatting (10us out of 60us).

[cherry-pick of 933539af534f3cda9c38602f6009478a0cc5a21f from dalvik-dev to gingerbread]

Bug: 2302920, 2243821
ava/lang/IntegralToString.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
ava/util/Formatter.java
ca12e576434c86b430aa08f09a14012b71b2d7eb 01-Sep-2010 Elliott Hughes <enh@google.com> Make StringBuilder.append(CharSequence) as cheap as append(CharSequence, int, int).

(Also give a few locals better names.)

[cherry-pick of 041880d62bdb2008b43b66c980ef208600d90098 from dalvik-dev to gingerbread]

Bug: 2243821
ava/lang/AbstractStringBuilder.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
82a495ad44d76aac37f54bbbe7c31608d1054f84 31-Aug-2010 Elliott Hughes <enh@google.com> Move Integer and Long's toString methods into a new class.

I've reverted the old optimizations that used shifting and addition instead
of multiplication, because that's been slower for a while now. I've also
switched to more consistently using DIGITS. Otherwise, this code is unchanged.

I've also changed Float.toHexString to use StringBuilder.append(int) instead
of calling Integer.toString manually (with an eye to taking advantage of future
more efficient implementations of StringBuilder.append(int)).

[cherry-pick of 6151feb53344092a7fb7e1e3f417d23adaf2f6c2 from dalvik-dev to gingerbread; plus build fix]

Bug: 2302920
Change-Id: I4d65d98b79ac299208102f0753960727b77e81ce
ava/lang/Float.java
ava/lang/Integer.java
ava/lang/IntegralToString.java
ava/lang/Long.java
10a17e23b22dc0ff6363d15bce67d668b6d44dd0 27-Aug-2010 Elliott Hughes <enh@google.com> Speed up Float.toString (and Double.toString).

The special cases (NaN, infinities, and zeros) go from 30us to 1us.

There are basically three other paths through the code, depending on the value:

The small case goes from 60us to 30us.
The medium case goes from 70us to 31us.
The large case goes from 100us to 50us.

There's way less garbage produced, and now we're using StringBuilder, we're
in a position to take advantage of future optimization of
StringBuilder.append(int).

[cherry-pick of 2164031488f9788e5ee9ad2545b3aec34b65e06c from dalvik-dev to gingerbread]

Bug: 2934304
ava/lang/Double.java
ava/lang/Float.java
ava/lang/RealToString.java
706de1164836051ab31cc69eb77a6bba1a723896 27-Aug-2010 Elliott Hughes <enh@google.com> Minor tidy-up of Float.toString and Double.toString.

This patch looks larger than it is. I've moved duplicated constants out of
Math and StrictMath and into Float and Double where they belong. I've also
moved a table out of BigDecimal so I can reuse it in NumberConverter, which
I've renamed to RealToString.

The main active ingredient here is that there's no longer StringBuilder usage
to prepend '-'. This actually brings us down from 74ns to 62ns for an easy
case like 123.45f.

[cherry-pick of 910106e29fe98f14b2c36312a7498287273ba826 from dalvik-dev to gingerbread; plus build fix]

Bug: 2934304
Change-Id: Id79a6fb0d739e673b7428d240fc48bdae9b8bb43
ava/lang/Double.java
ava/lang/Float.java
ava/lang/Math.java
ava/lang/RealToString.java
ava/lang/StrictMath.java
ava/math/BigDecimal.java
ibcore/math/MathUtils.java
rg/apache/harmony/luni/util/NumberConverter.java
d16c314465f7f5905fe8852eaa09d4e7e14ec835 25-Aug-2010 Elliott Hughes <enh@google.com> Faster implementations of Math/StrictMath's copySign methods.

These are only faster than the old native implementations now we have
intrinsics for float/int and double/long conversion, but given those,
they're about 4x faster.

We were already using Java for getExponent, the other obvious candidate
for an all-Java implementation.

[cherry-pick of a61c63c54ba46bb8a1dcbd888e3b29d6cedfb1ff from dalvik-dev to gingerbread]

Bug: 2935622
ava/lang/Math.java
ava/lang/StrictMath.java
3e6f49bbb915b880afe104ec784c66bda55da450 25-Aug-2010 Elliott Hughes <enh@google.com> Double the speed of %.2f in Formatter.

Primarily this works by going straight to the NativeDecimalFormat. This
cuts down on a bunch of objects we don't actually need. Changing
NativeDecimalFormat to not have a finalizer means we can also relieve
the GC of all the finalization work.

This also fixes a few test failures I ran across. The , flag and digit
localization aren't mutually exclusive, and BigDecimal (a) can't represent
NaN or either infinity, but (b) returns infinities from doubleValue if the
BigDecimal is out of double's range; this made our check for special
numbers in transformFromFloat wrong.

[cherry-picked 5f509be2576f2817856413301ca8135f6ee20b30 from dalvik-dev to gingerbread]

Bug: 2934304
om/ibm/icu4jni/text/NativeDecimalFormat.java
ava/text/DecimalFormat.java
ava/util/Formatter.java
rg/apache/harmony/luni/util/LocaleCache.java
b535fdb2c252e7a88cb6de46ccb479a5e9b70cf6 02-Sep-2010 Elliott Hughes <enh@google.com> am 1da033c1: am b74f4fca: am 95c82c8a: Fix "java.net.preferIPv6Addresses".

Merge commit '1da033c1c02b821561f1e372a6832d388e2188c0' into dalvik-dev

* commit '1da033c1c02b821561f1e372a6832d388e2188c0':
Fix "java.net.preferIPv6Addresses".
433827edb88e722fa28575865150cbeeb6ad540b 02-Sep-2010 Elliott Hughes <enh@google.com> Merge "Make StringBuilder.append(float) and append(double) 2x faster." into dalvik-dev
1da033c1c02b821561f1e372a6832d388e2188c0 02-Sep-2010 Elliott Hughes <enh@google.com> am b74f4fca: am 95c82c8a: Fix "java.net.preferIPv6Addresses".

Merge commit 'b74f4fca74714f96fc8e1fb467ac835d33eb78eb'

* commit 'b74f4fca74714f96fc8e1fb467ac835d33eb78eb':
Fix "java.net.preferIPv6Addresses".
0d041e2cea528066bb87c7891ef746b977f18b9d 02-Sep-2010 Elliott Hughes <enh@google.com> Make StringBuilder.append(float) and append(double) 2x faster.

Actually a bit more than 2x --- 40us down to 15us for "small" (but non-trivial)
floats.

Also StringBuffer.

Bug: 2243821
Change-Id: I9537a4973e3269d5a038150b0216e045a2df7b50
ava/lang/Double.java
ava/lang/RealToString.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
95c82c8a020e48793dd5db33ba1a20f9ef01737a 02-Sep-2010 Elliott Hughes <enh@google.com> Fix "java.net.preferIPv6Addresses".

I wrote getBoolean (a bogus method that shouldn't even exist) when I meant
parseBoolean.

Change-Id: Ib8c1cefdf0242fdc2b613850ec88ca35a1a83dea
ava/net/InetAddress.java
3bd59b99319aecb86e3111c063c111e9e28e4772 02-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing warnings in ObjectInputStream, including possible null dereferences." into dalvik-dev
ae43834bd7046b4758d086bd8264a556b99ac5ea 01-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix classes that implement equals() but not hashCode()." into dalvik-dev
9fbb8a72583e1806c0d2793d8a459bc37072b674 01-Sep-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing a dead store in Finished." into dalvik-dev
01e1686574d5e2722a75175fbae696381bd150c0 01-Sep-2010 Jesse Wilson <jessewilson@google.com> Fixing a dead store in Finished.

See bug 2099918.

Change-Id: I12f0a53bc5aeacea3ba97820dcd6525e1bf23405
rg/apache/harmony/xnet/provider/jsse/Finished.java
5d34c74a617a477b215d62646aae04fe321e9795 01-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix classes that implement equals() but not hashCode().

See http://b/2099681

Change-Id: If358af98ccca44c544942b837c25e00e6553e916
rg/apache/harmony/text/BidiRun.java
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
rg/apache/harmony/xnet/provider/jsse/ProtocolVersion.java
2543351c360bdfe0046e819dedb069f3724d703a 01-Sep-2010 Jesse Wilson <jessewilson@google.com> Fixing warnings in ObjectInputStream, including possible null dereferences.

See http://b/issue?id=2099718

Change-Id: I74db9e216c0d2568823c313aeeb91fdef72ae00a
ava/io/ObjectInputStream.java
328f533a177f7579a9ea916f5569053ec9c149b8 01-Sep-2010 Elliott Hughes <enh@google.com> Don't use StringBuffer where we don't need to.

I've left xalan alone, because that's just one big steaming heap.

Change-Id: I47e80399ebced922656e46dacd8dcbfc698e94f8
ava/awt/font/NumericShaper.java
ava/lang/Throwable.java
ava/lang/reflect/Field.java
ava/math/BigDecimal.java
ava/math/Conversion.java
ava/math/MathContext.java
ava/net/URLEncoder.java
ava/util/prefs/AbstractPreferences.java
ava/util/prefs/XMLParser.java
ava/util/regex/Matcher.java
avax/net/ssl/DefaultHostnameVerifier.java
avax/security/auth/Subject.java
avax/xml/datatype/Duration.java
avax/xml/namespace/QName.java
avax/xml/parsers/FilePathToURI.java
avax/xml/transform/TransformerException.java
avax/xml/transform/stream/FilePathToURI.java
rg/apache/harmony/luni/lang/reflect/ImplForWildcard.java
58e5a8e6eeaf94d78522e0e9994c4565a3b33fdb 01-Sep-2010 Jesse Wilson <jessewilson@google.com> Don't synchronize on non-final fields.

This fixes some Findbugs and IntelliJ warnings. See http://b/2099930

Change-Id: Icb0a92890657e7a56f339bc9bdd2d1b5ddfc663c
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
6452ba4ad2120597724585be5d26de67d37b5af1 01-Sep-2010 Jesse Wilson <jessewilson@google.com> am 7308c233: am 1ab2d77f: am 50ae3221: Configure HttpURLConnection to prefer gzipped content by default.

Merge commit '7308c233d7755cf5b30f205981aa8588a6cbd245' into dalvik-dev

* commit '7308c233d7755cf5b30f205981aa8588a6cbd245':
Configure HttpURLConnection to prefer gzipped content by default.
7308c233d7755cf5b30f205981aa8588a6cbd245 01-Sep-2010 Jesse Wilson <jessewilson@google.com> am 1ab2d77f: am 50ae3221: Configure HttpURLConnection to prefer gzipped content by default.

Merge commit '1ab2d77f5f9aaa29298a07e0222278dc47ed8011'

* commit '1ab2d77f5f9aaa29298a07e0222278dc47ed8011':
Configure HttpURLConnection to prefer gzipped content by default.
50ae32218918eae80298bd1ab8e4f588bbbabdb2 01-Sep-2010 Jesse Wilson <jessewilson@google.com> Configure HttpURLConnection to prefer gzipped content by default.

This is not what the RI does. But the bandwidth savings is substantial,
and we can offer it almost for free.

See http://code.google.com/p/android/issues/detail?id=9390

Change-Id: I43c3fae8938f33809f2526d2d0e1cc5e08ae1202
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
933539af534f3cda9c38602f6009478a0cc5a21f 01-Sep-2010 Elliott Hughes <enh@google.com> Double the speed of StringBuilder.append(int) and append(long).

Also StringBuilder's evil twin, StringBuffer.

Also shave some time off "%d" formatting (10us out of 60us).

Bug: 2302920, 2243821
Change-Id: Ie354731d728ee1664f3b5b5868d79af395d71b08
ava/lang/IntegralToString.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
ava/util/Formatter.java
041880d62bdb2008b43b66c980ef208600d90098 01-Sep-2010 Elliott Hughes <enh@google.com> Make StringBuilder.append(CharSequence) as cheap as append(CharSequence, int, int).

(Also give a few locals better names.)

Bug: 2243821
Change-Id: Idcc6704b16bbea9f1460724f22ed7da076c9d185
ava/lang/AbstractStringBuilder.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
378697fcb6a10fe986380275891074a2b18bb01b 01-Sep-2010 Elliott Hughes <enh@google.com> Merge "Fix build (accidentally made an implementation detail public)." into dalvik-dev
c54dc4100febc491cdfe9879c00f687c28e0ce17 01-Sep-2010 Elliott Hughes <enh@google.com> Fix build (accidentally made an implementation detail public).

Change-Id: I86f30fc7e5224c283a26509da92e46dd19704d59
ava/lang/IntegralToString.java
53a9f99d792c9101ed29dfb923e0550beb2e58a8 01-Sep-2010 Jesse Wilson <jessewilson@google.com> am cc479176: am 7927ab5a: am 5b65f4f2: Merge "Adding documentation for a API bug in FilterInputStream subclasses" into gingerbread

Merge commit 'cc479176939f13c99569e8919a92874b4ce3f535' into dalvik-dev

* commit 'cc479176939f13c99569e8919a92874b4ce3f535':
Adding documentation for a API bug in FilterInputStream subclasses
2f76a85ef50e8c8fbcb131c0b389ccf848f23920 01-Sep-2010 Elliott Hughes <enh@google.com> Merge "Move Integer and Long's toString methods into a new class." into dalvik-dev
6151feb53344092a7fb7e1e3f417d23adaf2f6c2 31-Aug-2010 Elliott Hughes <enh@google.com> Move Integer and Long's toString methods into a new class.

I've reverted the old optimizations that used shifting and addition instead
of multiplication, because that's been slower for a while now. I've also
switched to more consistently using DIGITS. Otherwise, this code is unchanged.

I've also changed Float.toHexString to use StringBuilder.append(int) instead
of calling Integer.toString manually (with an eye to taking advantage of future
more efficient implementations of StringBuilder.append(int)).

Bug: 2302920
Change-Id: I4244081456baf29aefbf974ca7220fdba5656e1d
ava/lang/Float.java
ava/lang/Integer.java
ava/lang/IntegralToString.java
ava/lang/Long.java
cc479176939f13c99569e8919a92874b4ce3f535 01-Sep-2010 Jesse Wilson <jessewilson@google.com> am 7927ab5a: am 5b65f4f2: Merge "Adding documentation for a API bug in FilterInputStream subclasses" into gingerbread

Merge commit '7927ab5a6ff861b480e63daa38a1120c634eede4'

* commit '7927ab5a6ff861b480e63daa38a1120c634eede4':
Adding documentation for a API bug in FilterInputStream subclasses
5b65f4f2917a11ef9d2798203f5dca55682d9e81 31-Aug-2010 Jesse Wilson <jessewilson@google.com> Merge "Adding documentation for a API bug in FilterInputStream subclasses" into gingerbread
858dd42310622fd1b77bfa0fbd85ec851b3925c1 31-Aug-2010 Jesse Wilson <jessewilson@google.com> Adding documentation for a API bug in FilterInputStream subclasses

Change-Id: I76a3fdb51e9d0071efef013c6879eb2bc9e7977c
ava/io/BufferedInputStream.java
ava/io/DataInputStream.java
ava/io/FilterInputStream.java
ava/io/LineNumberInputStream.java
ava/io/PushbackInputStream.java
ava/security/DigestInputStream.java
ava/util/zip/CheckedInputStream.java
avax/crypto/CipherInputStream.java
4146964bb2432c9673e520b5e3349e92a550639e 30-Aug-2010 Jesse Wilson <jessewilson@google.com> am 35111115: am 7c3b0dca: am 44f93609: Merge "Support "Connection: close" from both request and response." into gingerbread

Merge commit '3511111541e0c0af6058cc8f6eec7a25df1ebec6' into dalvik-dev

* commit '3511111541e0c0af6058cc8f6eec7a25df1ebec6':
Support "Connection: close" from both request and response.
3511111541e0c0af6058cc8f6eec7a25df1ebec6 30-Aug-2010 Jesse Wilson <jessewilson@google.com> am 7c3b0dca: am 44f93609: Merge "Support "Connection: close" from both request and response." into gingerbread

Merge commit '7c3b0dcafcc82791ebc07b4089efc94cf2af6d7a'

* commit '7c3b0dcafcc82791ebc07b4089efc94cf2af6d7a':
Support "Connection: close" from both request and response.
44f93609c712c6bede186336ac289eac4d2b23e6 30-Aug-2010 Jesse Wilson <jessewilson@google.com> Merge "Support "Connection: close" from both request and response." into gingerbread
f418bf447fd007cd2ec2d45b4b0399a11904e9b4 30-Aug-2010 Jesse Wilson <jessewilson@google.com> Support "Connection: close" from both request and response.

This is a rewrite of fix for the same problem in AOSP master:
https://review.source.android.com/16757

This expands on that fix by supporting "Connection: close" on
redirects by adding test coverage.

Change-Id: Ia0daa9d83cf9f557b4e9a99b2c51345c98c6db14
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
9c1e9452456e1634744d79e61ebe265eb15c7262 28-Aug-2010 Elliott Hughes <enh@google.com> Merge "Remove the accessors hiding our IFileSystem and INetworkSystem." into dalvik-dev
2164031488f9788e5ee9ad2545b3aec34b65e06c 27-Aug-2010 Elliott Hughes <enh@google.com> Speed up Float.toString (and Double.toString).

The special cases (NaN, infinities, and zeros) go from 30us to 1us.

There are basically three other paths through the code, depending on the value:

The small case goes from 60us to 30us.
The medium case goes from 70us to 31us.
The large case goes from 100us to 50us.

There's way less garbage produced, and now we're using StringBuilder, we're
in a position to take advantage of future optimization of
StringBuilder.append(int).

Bug: 2934304
Change-Id: Ib7441e064557973dd0c6247a149275d6367d55ea
ava/lang/Double.java
ava/lang/Float.java
ava/lang/RealToString.java
3db0d1b07a79c3c871b0aa0929674adae3081b4f 28-Aug-2010 Elliott Hughes <enh@google.com> Remove the accessors hiding our IFileSystem and INetworkSystem.

These accessors aren't buying us anything, are costing us something, and have
encouraged caching of instances in fields all over the place. Lose all that
cruft.

I think we all agree that we want to merge IFileSystem and INetworkSystem at
some point, but I'll do that some other day.

Change-Id: I07696ec9650d0395ec31a71a74300e818a3fed91
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
ava/net/DatagramSocketImpl.java
ava/net/InetAddress.java
ava/net/Socket.java
ava/net/SocketImpl.java
ava/net/URI.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/Platform.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
rg/apache/harmony/nio/internal/SelectorImpl.java
rg/apache/harmony/nio/internal/ServerSocketChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
93cca26b59beb805505a031940e46f8b29f69485 27-Aug-2010 Elliott Hughes <enh@google.com> Fix build: I accidentally made java.lang.RealToString public.

Change-Id: Ide436af0b16f59a35c326cb67b3153681eeb39f9
ava/lang/RealToString.java
910106e29fe98f14b2c36312a7498287273ba826 27-Aug-2010 Elliott Hughes <enh@google.com> Minor tidy-up of Float.toString and Double.toString.

This patch looks larger than it is. I've moved duplicated constants out of
Math and StrictMath and into Float and Double where they belong. I've also
moved a table out of BigDecimal so I can reuse it in NumberConverter, which
I've renamed to RealToString.

The main active ingredient here is that there's no longer StringBuilder usage
to prepend '-'. This actually brings us down from 74ns to 62ns for an easy
case like 123.45f.

Bug: 2934304
Change-Id: I65461753247eeb9ff890ffe66b0bc79d66d2ec9c
ava/lang/Double.java
ava/lang/Float.java
ava/lang/Math.java
ava/lang/RealToString.java
ava/lang/StrictMath.java
ava/math/BigDecimal.java
ibcore/math/MathUtils.java
rg/apache/harmony/luni/util/NumberConverter.java
2ed2cfbff943fc0ef83baba0d77b7f38c0749883 26-Aug-2010 Elliott Hughes <enh@google.com> Merge "Specialize on size rather than type in OSMemory." into dalvik-dev
6116e6265924a0983bb462e3441c8c4a0bb7e47e 26-Aug-2010 Elliott Hughes <enh@google.com> Specialize on size rather than type in OSMemory.

I'm working towards intrinsics for this stuff, so I want to minimize the number
I have to support. There are 7 types (byte, char, double, float, int, long,
and short) but only 4 sizes (1, 2, 4, and 8 bytes).

I've also finally benchmarked whether the "inlined memcpy"s really gain us
anything, and they do, so I've rewritten the sole remaining caller of the
templates (long) to have its own inlined memcpy too.

Plus a final tranche of naming consistency.

Bug: 2935622
Change-Id: Ieffd9723d0479aec6179b888d1c3b3496032e57a
ava/nio/ReadWriteDirectByteBuffer.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/PlatformAddress.java
39c43cceb8273e72291471efeef8928d6535f2ae 26-Aug-2010 Jesse Wilson <jessewilson@google.com> am c70b71d9: am 6450fbb8: am 73947686: Merge "Reduce duplication of tests in org.apache.harmony.luni.tests.java.lang." into gingerbread

Merge commit 'c70b71d9c7171b8b7742a2ea778eecdd7e26eee3' into dalvik-dev

* commit 'c70b71d9c7171b8b7742a2ea778eecdd7e26eee3':
Reduce duplication of tests in org.apache.harmony.luni.tests.java.lang.
c70b71d9c7171b8b7742a2ea778eecdd7e26eee3 26-Aug-2010 Jesse Wilson <jessewilson@google.com> am 6450fbb8: am 73947686: Merge "Reduce duplication of tests in org.apache.harmony.luni.tests.java.lang." into gingerbread

Merge commit '6450fbb89b64c97c0867d0d70ee7d550ab900772'

* commit '6450fbb89b64c97c0867d0d70ee7d550ab900772':
Reduce duplication of tests in org.apache.harmony.luni.tests.java.lang.
739476867cee2dca030309e55381dd2b7a93058e 26-Aug-2010 Jesse Wilson <jessewilson@google.com> Merge "Reduce duplication of tests in org.apache.harmony.luni.tests.java.lang." into gingerbread
2333d6b20eed39cfac75edaf9643aaf543251537 26-Aug-2010 Jesse Wilson <jessewilson@google.com> Reduce duplication of tests in org.apache.harmony.luni.tests.java.lang.

These classes contained tests duplicated in Harmony and libcore. I've
removed the duplicate tests and moved the libcore originals into the
libcore/ test directory.

Also fixing System.getEnv() to return a map that implements equals()
and hashCode(). This was breaking Harmony's ProcessBuilder test.

Change-Id: Iffdb0cc8f2ca3df206c8bc1f89ae16fc4e309f73
ava/lang/System.java
a94b6572afa4024dbca538e88809bb217727d00c 26-Aug-2010 Elliott Hughes <enh@google.com> Merge "More consistent naming of the nio vector primitives." into dalvik-dev
f79897170487f79e7fb9640ba104f070731f4020 26-Aug-2010 Ben Dodson <bjdodson@google.com> am 172d4583: Merge "Update for changes to @code processing"

Merge commit '172d4583c8ad2a2121bcb8315fa1cc317cd7ff04' into dalvik-dev

* commit '172d4583c8ad2a2121bcb8315fa1cc317cd7ff04':
Update for changes to @code processing
71961a4957d24f62f7adc5f0549e236018589631 26-Aug-2010 Elliott Hughes <enh@google.com> More consistent naming of the nio vector primitives.

Just name changes here.

Change-Id: I050b33ce836270435310041dd179ceaa98d789fa
ava/nio/ReadWriteDirectByteBuffer.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/PlatformAddress.java
172d4583c8ad2a2121bcb8315fa1cc317cd7ff04 26-Aug-2010 Ben Dodson <bjdodson@google.com> Merge "Update for changes to @code processing"
1d58625189328f29c10fa98d52512ee6cf8cc641 26-Aug-2010 Ben Dodson <bjdodson@google.com> Update for changes to @code processing

Change-Id: Ifb7dbe3105bdef15dadb84740845a71b019d62e3
ava/lang/Class.java
ava/lang/reflect/ParameterizedType.java
ava/lang/reflect/TypeVariable.java
ava/math/MathContext.java
ava/net/SocketPermission.java
ava/text/DecimalFormat.java
ava/util/Arrays.java
ava/util/BitSet.java
ava/util/Locale.java
ava/util/Scanner.java
74d3e1acc35230a9e33d4f24009fb41a5b27d4c5 25-Aug-2010 Jesse Wilson <jessewilson@google.com> am 31eaebc3: am 23b98862: am 172531a2: Fix several code hygiene problems in BigInteger.

Merge commit '31eaebc31869c077020261c897a5d1a3de57a0a2' into dalvik-dev

* commit '31eaebc31869c077020261c897a5d1a3de57a0a2':
Fix several code hygiene problems in BigInteger.
3f548bf49c2ee52ad0b18dbd88b03a8c76654cf4 25-Aug-2010 Elliott Hughes <enh@google.com> Remove some dead cruft.

Change-Id: I968fe2dda543430fb0c38f6c5bde7c55b9f4c314
rg/apache/harmony/luni/util/ThreadLocalCache.java
568bb0e4cce166d9751988349fcb07789da8ce7b 25-Aug-2010 Elliott Hughes <enh@google.com> Merge "Double the speed of %.2f in Formatter." into dalvik-dev
5f509be2576f2817856413301ca8135f6ee20b30 25-Aug-2010 Elliott Hughes <enh@google.com> Double the speed of %.2f in Formatter.

Primarily this works by going straight to the NativeDecimalFormat. This
cuts down on a bunch of objects we don't actually need. Changing
NativeDecimalFormat to not have a finalizer means we can also relieve
the GC of all the finalization work.

This also fixes a few test failures I ran across. The , flag and digit
localization aren't mutually exclusive, and BigDecimal (a) can't represent
NaN or either infinity, but (b) returns infinities from doubleValue if the
BigDecimal is out of double's range; this made our check for special
numbers in transformFromFloat wrong.

Bug: 2934304
Change-Id: I5aa38fbb2f775c0ac6728f8a70c8874c134155c0
om/ibm/icu4jni/text/NativeDecimalFormat.java
ava/text/DecimalFormat.java
ava/util/Formatter.java
rg/apache/harmony/luni/util/LocaleCache.java
172531a275b620d879126a2d24d0074fe4f084a0 25-Aug-2010 Jesse Wilson <jessewilson@google.com> Fix several code hygiene problems in BigInteger.

These were pointed out in the code review for change 62669.

Change-Id: Icf0bb27d826988765c6d49f4887ac86f9b52dc6e
ava/math/BigInteger.java
7740fdf49bd3968f8a3f23b251db07291e2b0595 24-Aug-2010 Andy McFadden <fadden@android.com> Add SUSPENDED state.

Goes with change 62657.

Bug 2667016.

(cherry-pick from dalvik-dev)

Change-Id: I8723f6fa21195978ef63e69e47677f273f73ef05
ava/lang/VMThread.java
4158b8437386abfd664ebc606696f9d1332c311e 25-Aug-2010 Andy McFadden <fadden@android.com> Merge "Add SUSPENDED state." into dalvik-dev
e445beac2b8ab96025974e3dec66332806ba5b09 25-Aug-2010 Jesse Wilson <jessewilson@google.com> am 1a320a05: am 99f3ca01: am e866b788: Fix BigDecimal.precision() to return the correct result.

Merge commit '1a320a0563bc683e4ed0aeacdd4a021a5fb0a65c' into dalvik-dev

* commit '1a320a0563bc683e4ed0aeacdd4a021a5fb0a65c':
Fix BigDecimal.precision() to return the correct result.
e866b788d613e0566b85b799fff998a09371520f 24-Aug-2010 Jesse Wilson <jessewilson@google.com> Fix BigDecimal.precision() to return the correct result.

http://b/issue?id=2947416

We had a bug where precision() returned the wrong value because it's
using Math.log10(), and that returns an approximate value. The buggy
precision() causes other methods like round() to behave incorrectly
as well.

Revealed by an unrelated test,
org.apache.harmony.math.tests.java.math.BigDecimalArithmeticTest#testDivideMathContextNonTrivial

Change-Id: I3564887f53bde9e91ce21c9b100ec977d26f2b35
ava/math/BigDecimal.java
a1e211ac2a244f7cc663d36d63a10bec1b981013 25-Aug-2010 Elliott Hughes <enh@google.com> Merge "Faster implementations of Math/StrictMath's copySign methods." into dalvik-dev
a61c63c54ba46bb8a1dcbd888e3b29d6cedfb1ff 25-Aug-2010 Elliott Hughes <enh@google.com> Faster implementations of Math/StrictMath's copySign methods.

These are only faster than the old native implementations now we have
intrinsics for float/int and double/long conversion, but given those,
they're about 4x faster.

We were already using Java for getExponent, the other obvious candidate
for an all-Java implementation.

Bug: 2935622
Change-Id: I77549c88b7448b6087a67b37f8c317579b4f92b8
ava/lang/Math.java
ava/lang/StrictMath.java
fc4da8d2aa032ce09d1c133a61798dbbcd2eea92 24-Aug-2010 Andy McFadden <fadden@android.com> Add SUSPENDED state.

Goes with change 62657.

Bug 2667016.

Change-Id: I787783a126651fafbc973bcd910de106f045d159
ava/lang/VMThread.java
9364f103b3a84c990becde7920d49f33de9f7f59 24-Aug-2010 Jesse Wilson <jessewilson@google.com> am 774ec3c8: am 13842b02: am 159b7cca: Merge "Fix concurrency issues in BigInteger." into gingerbread

Merge commit '774ec3c88529293b9fbcfe2982287618bdf2b202' into dalvik-dev

* commit '774ec3c88529293b9fbcfe2982287618bdf2b202':
Fix concurrency issues in BigInteger.
43bd29190e063e3c80f3718b2f1c7bb00dc46a60 24-Aug-2010 Brian Carlstrom <bdc@google.com> am d9a1ad19: am 97e681c3: am 5f2e6872: SSLSocket.read should throw SocketException not NullPointerException

Merge commit 'd9a1ad19cc67f76ec1dadd1c740b76a0083d853f' into dalvik-dev

* commit 'd9a1ad19cc67f76ec1dadd1c740b76a0083d853f':
SSLSocket.read should throw SocketException not NullPointerException
9f99a7402edc83a110be99c12ea79163fe96b929 24-Aug-2010 Elliott Hughes <enh@google.com> am d71b3630: am 2001d5f2: am 7023c8ff: Fix error in Float.floatToIntBits documentation.

Merge commit 'd71b3630b04781233f78f3acdf35047209d997b5' into dalvik-dev

* commit 'd71b3630b04781233f78f3acdf35047209d997b5':
Fix error in Float.floatToIntBits documentation.
157335d338a75cfd594be25f0d3d47a8191553c8 24-Aug-2010 Jesse Wilson <jessewilson@google.com> am 833ad294: am 5c33fc0d: am 125f068f: Fix a bug when user sets "Content-Encoding: chunked" manually.

Merge commit '833ad294e6138102f055856dbd09663c1f118cbf' into dalvik-dev

* commit '833ad294e6138102f055856dbd09663c1f118cbf':
Fix a bug when user sets "Content-Encoding: chunked" manually.
fd3f1748b8627e8b6ee907bdaad4cbf2abd7403b 24-Aug-2010 Jesse Wilson <jessewilson@google.com> Fix concurrency issues in BigInteger.

Also go over the class documentation and formatting and give it some long overdue
attention. The docs are still far from perfect! But this should get rid of the
most obvious problems.

See http://b/issue?id=2785595

Change-Id: Iea40975b95a850702a4cdc693f65e4eaff0dd8b0
ava/math/BigDecimal.java
ava/math/BigInt.java
ava/math/BigInteger.java
ava/math/BitLevel.java
ava/math/Conversion.java
ava/math/Division.java
ava/math/Logical.java
ava/math/Multiplication.java
ava/math/Primality.java
5f2e6872311240319509aed64d9f58cd5b64719b 23-Aug-2010 Brian Carlstrom <bdc@google.com> SSLSocket.read should throw SocketException not NullPointerException

OpenSSLSocketImpl now uses checkOpen similar to Socket's
checkOpenAndCreate to ensure that SocketExceptions are thrown if
certain operations are tried after the socket is closed.

Also added *_setUseClientMode_afterHandshake tests for SSLSocket and
SSLEngine. We properly through IllegalArgument exception in this case,
but it wasn't covered by the tests previously.

Bug: 2918499
Change-Id: I393ad39bed40a33725d2c0f3f08b9d0b0d3ff85f
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
7023c8ff547217ec58f062255a850e54bfefc681 23-Aug-2010 Elliott Hughes <enh@google.com> Fix error in Float.floatToIntBits documentation.

Change-Id: I33cd839c3fc18f9308efe214a66ed00284853726
ava/lang/Float.java
125f068f0a6cd739beac97821c9421cf8317cc87 20-Aug-2010 Jesse Wilson <jessewilson@google.com> Fix a bug when user sets "Content-Encoding: chunked" manually.

We used to try to build a -1-sized ByteArrayOutputStream, which
failed miserably with an exception.

Change-Id: Ia6fa72c639a14c03f03b6f73083ce37ffab8b4e5
ava/net/HttpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
1b9018762e87e3dda69020248817011efd5a40dc 20-Aug-2010 Elliott Hughes <enh@google.com> Minor nio speedups (scalar operations only).

This patch speeds up nio scalar operations for all types larger than byte.
Basically just by trimming fat, pushing any byte-swapping down into Java,
and adding a boolean field to ByteOrder that basically caches the "do we
need byte swapping?" comparison.

For the worst case, byte-swapped doubles, this patch gives a 2x speedup.
At the other end of the spectrum, for native-order chars and shorts, this
patch gives a 20% speedup. Still, that's not bad for quite a reduction in
code.

Now I've tidied this up a bit, I have more of a plan. This is just the warmup.

Bug: 2935622

Change-Id: I3cfc4e61b12ea7a8f32fc497106ddc66474efe01
ava/nio/ByteOrder.java
ava/nio/DirectByteBuffer.java
ava/nio/MappedByteBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
rg/apache/harmony/luni/platform/MappedPlatformAddress.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/platform/RuntimeMemorySpy.java
29183729e5671a819d5f735969c7772804457b9f 19-Aug-2010 Elliott Hughes <enh@google.com> Minor net cleanup.

Move two constants to where they belong, and fix a well-intentioned but broken
detail message (confusion between two locals: an InetSocketAddress and its
InetAddress --- when the latter is null, we want to print the former).

Change-Id: Ic6a29edb31c0cde11f03ec511a3a9a864fec957f
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/MulticastSocket.java
0b29a1fecc601de2f642ded891726ac3e460d74b 18-Aug-2010 Elliott Hughes <enh@google.com> Multicast cleanup.

This doesn't fix any bugs, but it does get rid of a lot of code. This is how
Stevens' book tells us we should be doing things.

Bug: 1610553
Change-Id: I00a79a6c34084ba018fb69c7f1123300a2698ce9
ava/net/DatagramSocketImpl.java
ava/net/MulticastGroupRequest.java
ava/net/MulticastSocket.java
rg/apache/harmony/luni/net/GenericIPMreq.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
4940ff34c242c7907f548e6eb7b1680d7d53fbc7 17-Aug-2010 Elliott Hughes <enh@google.com> Remove a bit more nio cruft.

Collapse the unused MemorySpy hierarchy, and remove some dead code.
I've left all the dead rangeCheck stuff in in case we ever need it, but
maybe that should go too.

Change-Id: Ibff4e99f27e235453ae2983483e54878a679db34
ava/nio/ReadOnlyDirectByteBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
rg/apache/harmony/luni/platform/AbstractMemorySpy.java
rg/apache/harmony/luni/platform/IMemorySpy.java
rg/apache/harmony/luni/platform/MappedPlatformAddress.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/platform/PlatformAddressFactory.java
rg/apache/harmony/luni/platform/RuntimeMemorySpy.java
d21ee434b8bfdd989d8837bba361ba8c8010f609 17-Aug-2010 Elliott Hughes <enh@google.com> Merge "Some nio tidying." into dalvik-dev
8510524dab13e0acc1babf22cbc55002fb122777 17-Aug-2010 Elliott Hughes <enh@google.com> Some nio tidying.

Remove indirection on OSMemory, and use public ByteOrder and MapMode types
throughout the implementation, rather than adding our own duplication. Also
remove some unnecessary Java methods that just forwarded to identical native
methods, and an unnecessary factory class for MappedByteBuffer instances.
Also get rid of ICommonDataTypes, most of which was unused cruft.

Change-Id: I3240b02bcc19941b1b1cbba351ae7f7c1cdfc5b4
ava/nio/ByteBuffer.java
ava/nio/ByteOrder.java
ava/nio/HeapByteBuffer.java
ava/nio/MappedByteBuffer.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/ReadWriteDirectByteBuffer.java
rg/apache/harmony/luni/platform/Endianness.java
rg/apache/harmony/luni/platform/ICommonDataTypes.java
rg/apache/harmony/luni/platform/IMemorySystem.java
rg/apache/harmony/luni/platform/MappedPlatformAddress.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/Platform.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/platform/PlatformAddressFactory.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
rg/apache/harmony/nio/internal/MappedByteBufferFactory.java
rg/apache/harmony/nio/internal/ReadOnlyFileChannel.java
rg/apache/harmony/nio/internal/ReadWriteFileChannel.java
bc9563c38b92da7fc2a02fd02fafcc7f43a725ae 17-Aug-2010 Brian Carlstrom <bdc@google.com> am bfc0713b: am 12e10c1c: b/2914872: fix concurrent initialization problem with peer certificate chain fields

Merge commit 'bfc0713bb26ec11c2000ba64439b3abdcb72a0bf' into dalvik-dev

* commit 'bfc0713bb26ec11c2000ba64439b3abdcb72a0bf':
b/2914872: fix concurrent initialization problem with peer certificate chain fields
12e10c1c6f9324693b1dad96ab57fada2b771f11 17-Aug-2010 Brian Carlstrom <bdc@google.com> b/2914872: fix concurrent initialization problem with peer certificate chain fields

Change-Id: Ib76dd826c8f3616d4a3aed608aef432a1b99f3d6
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
60a0a96f334f159418763cab17c48a09c97cbd2f 13-Aug-2010 Elliott Hughes <enh@google.com> Fix reading from an empty non-blocking pipe.

The active ingredient here is getting rid of the lines that threw
InterruptedIOException in "OSFileSystem.cpp". I don't think that code was ever
right, but until I rewrote Pipe it wasn't possible to exercise that code.

The other changes are cosmetic, made while understanding this code well enough
to find the bug, plus a new test for this behavior.

Bug: 2901552
Change-Id: Id9cd3cdd6a97b225bbf7c352a6e0c535e9f9da1d
ava/nio/channels/Channels.java
ava/nio/channels/Selector.java
rg/apache/harmony/nio/internal/SelectorImpl.java
e22935d3c7040c22b48d53bd18878844f381287c 13-Aug-2010 Elliott Hughes <enh@google.com> Remove most of our C-style casts.

After being burned by an incorrect C-style cast that cast away const, I've been
keen to remove them all and turn on -Wold-style-cast. This patch doesn't get us
that far, but it does kill the majority of our C-style casts. In turn, the
majority of the casts that it removes are the ones from our tables of native
methods to be registered.

The new NATIVE_METHOD macro also _enforces_ our convention of using the
"Class_nativeMethod" style of naming. Mostly this works out fine. In some
cases (most notably ExpatParser and ExpatAttributes) I've had to un-overload
a few functions, but I don't like overloading anyway, and in the particular
case of a native method, where the stack trace doesn't show a line number,
overloading makes it one step harder to work out which native method you're
actually in. So good riddance to that. The only unfortunate case is
Math.copySign, where there are two overloads corresponding to copysign(3)
and copysignf(3). I had to add an extra layer of indirection there. In my
defense, we've never shipped these functions before, they're unlikely to
become anyone's hotspot, and the right fix is to be doing such trivial work
on the Java side anyway, with intrinsics making the conversion between
float/double and int/long cheap.

This patch also replaces other C-style casts, primarily in
"OSNetworkSystem.cpp".

This patch also removes unnecessary uses of the "struct" keyword.

This patch also fixes a "may be used uninitialized" warning (now error) in
the sim build for "ICU.cpp".

The remaining C-style casts are in the hairy float-parsing code. That stuff --
and turning on -Wold-style-cast -- will have to wait for another day.

Change-Id: I9b3ee14aefd4676f980f6a7ca757595d78d80e6a
om/ibm/icu4jni/text/NativeDecimalFormat.java
ava/io/ObjectInputStream.java
ava/lang/Math.java
rg/apache/harmony/xml/ExpatAttributes.java
rg/apache/harmony/xml/ExpatParser.java
24144d482dcd5deac58a5dca7042379c05b56b5e 13-Aug-2010 Elliott Hughes <enh@google.com> Clean up our final native code warnings, and turn on -Werror.

Change-Id: I54bb29e357812b089e83f3a2a831c80f5114a27a
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/util/NumberConverter.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
a92f883cda9e483c64f78dbba0031e6e43cd00ab 12-Aug-2010 Elliott Hughes <enh@google.com> Replace createDatagramSocket and createStreamSocket with one call.

(Continuing our policy of having native methods' names correspond to the
underlying syscall, this one sadly gets the ugly name of "socket".)

Change-Id: Icf08e4e0637ee3ae9eab673d350860181f547250
ava/net/InetAddress.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
3cc99eaab9fe904ae2f54d87a85206877d70b248 12-Aug-2010 Elliott Hughes <enh@google.com> Merge "Minor documentation improvements." into dalvik-dev
705462a2b003b2eeed90bf3cebe0871e02554cbd 12-Aug-2010 Elliott Hughes <enh@google.com> Minor documentation improvements.

Fix unqualified uses of SimpleDateFormat in TimeZone.java, explain how to use
getPercentageInstance (http://code.google.com/p/android/issues/detail?id=10333),
add an explicit test to make sure no-one accidentally "fixes" that
odd-but-correct behavior, and remove an example from the DecimalFormat
documentation that doesn't really clarify anything.

Bug: http://code.google.com/p/android/issues/detail?id=10333
Change-Id: I52f22d817c7c6c32ad38fb6953fbe909a76f8943
ava/text/DecimalFormat.java
ava/text/NumberFormat.java
ava/util/TimeZone.java
99b58460c250cb69d99fe69659c6cb445f09f800 12-Aug-2010 Elliott Hughes <enh@google.com> Merge "Remove createServerStreamSocket as a native special case." into dalvik-dev
f3507d0976cb14ba59e0715f22f4c6b7c97cbae8 12-Aug-2010 Jesse Wilson <jessewilson@google.com> Use the declaring class loader when resolving types for reflection.

Previously we were using the calling class loader, which was completely
unrelated to solving the problem at hand.

Also splitting the test for an issue unrelated to class loaders into
its own test.

Change-Id: I5fa9f34cac0d6a76db7fdf3e7bcbe19b57281971
ava/lang/Class.java
ava/lang/reflect/Constructor.java
ava/lang/reflect/Field.java
ava/lang/reflect/Method.java
7738141c52b931e103efe7ad62d32a12785bf6b1 12-Aug-2010 Elliott Hughes <enh@google.com> Remove createServerStreamSocket as a native special case.

We can do everything in Java.

Change-Id: I7451319335a647fc25bd2d2403fa98bfc6b5c038
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainServerSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
0917c4a9d5d0115950450cdd0bb46e43a48da5db 12-Aug-2010 Elliott Hughes <enh@google.com> Clean up some dead/useless code.

(The DatagramPacketTest.java change is unrelated, but it's been lurking in my
repository for weeks now.)

Change-Id: I65d3ad53dd30709b2daed3c5787cc38c6081ffea
ava/awt/font/NumericShaper.java
ava/lang/Character.java
ava/net/InetAddress.java
ava/net/MulticastSocket.java
ava/net/Socket.java
ava/net/SocketPermission.java
avax/net/ssl/DefaultHostnameVerifier.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/internal/net/www/types.properties
rg/apache/harmony/luni/net/GenericIPMreq.java
rg/apache/harmony/luni/net/NetUtil.java
rg/apache/harmony/luni/net/PlainServerSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/util/BinarySearch.java
rg/apache/harmony/luni/util/Inet6Util.java
rg/apache/harmony/luni/util/InvalidJarIndexException.java
rg/apache/harmony/luni/util/OIDDatabase.java
rg/apache/harmony/luni/util/PasswordProtectedInputStream.java
rg/apache/harmony/luni/util/PositionedInputStream.java
rg/apache/harmony/luni/util/SHAOutputStream.java
rg/apache/harmony/misc/HashCode.java
rg/apache/harmony/misc/SystemUtils.java
7365de1056414750d0a7d1fdd26025fd247f0d04 12-Aug-2010 Jesse Wilson <jessewilson@google.com> Sorting imports.

Change-Id: I8347bc625480a1c37a1ed9976193ddfedeb00bbc
om/ibm/icu4jni/charset/CharsetDecoderICU.java
om/ibm/icu4jni/charset/CharsetEncoderICU.java
om/ibm/icu4jni/text/Collator.java
om/ibm/icu4jni/text/RuleBasedCollator.java
ava/beans/PropertyChangeSupport.java
ava/io/BufferedInputStream.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/io/Console.java
ava/io/File.java
ava/io/InputStreamReader.java
ava/io/ObjectInputStream.java
ava/io/OutputStreamWriter.java
ava/io/RandomAccessFile.java
ava/lang/Class.java
ava/lang/ClassLoader.java
ava/lang/Package.java
ava/lang/ProcessManager.java
ava/lang/Runtime.java
ava/lang/SecurityManager.java
ava/lang/StrictMath.java
ava/lang/System.java
ava/lang/Thread.java
ava/lang/ThreadLocal.java
ava/lang/VMThread.java
ava/lang/reflect/AccessibleObject.java
ava/lang/reflect/Constructor.java
ava/lang/reflect/Field.java
ava/lang/reflect/Method.java
ava/math/BigInteger.java
ava/net/AddressCache.java
ava/net/DatagramSocket.java
ava/net/DatagramSocketImpl.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/NetworkInterface.java
ava/net/ProxySelectorImpl.java
ava/net/SecureCacheResponse.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ShortToByteBufferAdapter.java
ava/nio/channels/DatagramChannel.java
ava/nio/channels/SelectionKey.java
ava/nio/channels/SocketChannel.java
ava/nio/charset/Charset.java
ava/security/AccessControlContext.java
ava/security/AlgorithmParameterGenerator.java
ava/security/AlgorithmParameters.java
ava/security/CodeSource.java
ava/security/Identity.java
ava/security/KeyFactory.java
ava/security/KeyPairGenerator.java
ava/security/KeyRep.java
ava/security/KeyStore.java
ava/security/MessageDigest.java
ava/security/Policy.java
ava/security/Provider.java
ava/security/SecureRandom.java
ava/security/Security.java
ava/security/Signature.java
ava/security/Timestamp.java
ava/security/UnresolvedPermission.java
ava/security/cert/CertPathBuilder.java
ava/security/cert/CertPathValidator.java
ava/security/cert/CertStore.java
ava/security/cert/CertificateFactory.java
ava/security/cert/PolicyQualifierInfo.java
ava/security/cert/TrustAnchor.java
ava/security/cert/X509CRL.java
ava/security/cert/X509CRLEntry.java
ava/security/cert/X509CRLSelector.java
ava/security/cert/X509CertSelector.java
ava/security/cert/X509Certificate.java
ava/security/interfaces/ECPublicKey.java
ava/sql/Blob.java
ava/sql/CallableStatement.java
ava/sql/Clob.java
ava/sql/PreparedStatement.java
ava/sql/ResultSet.java
ava/sql/SQLInput.java
ava/sql/SQLXML.java
ava/text/Collator.java
ava/text/DateFormat.java
ava/text/DateFormatSymbols.java
ava/text/DecimalFormat.java
ava/text/DecimalFormatSymbols.java
ava/text/Format.java
ava/text/NumberFormat.java
ava/util/Calendar.java
ava/util/Currency.java
ava/util/EnumSet.java
ava/util/InvalidPropertiesFormatException.java
ava/util/PropertyPermission.java
ava/util/TreeMap.java
ava/util/concurrent/AbstractExecutorService.java
ava/util/concurrent/ArrayBlockingQueue.java
ava/util/concurrent/BlockingDeque.java
ava/util/concurrent/ConcurrentHashMap.java
ava/util/concurrent/ConcurrentLinkedDeque.java
ava/util/concurrent/ConcurrentNavigableMap.java
ava/util/concurrent/ConcurrentSkipListMap.java
ava/util/concurrent/ConcurrentSkipListSet.java
ava/util/concurrent/CopyOnWriteArrayList.java
ava/util/concurrent/CopyOnWriteArraySet.java
ava/util/concurrent/CountDownLatch.java
ava/util/concurrent/CyclicBarrier.java
ava/util/concurrent/DelayQueue.java
ava/util/concurrent/Delayed.java
ava/util/concurrent/Exchanger.java
ava/util/concurrent/ExecutorService.java
ava/util/concurrent/Executors.java
ava/util/concurrent/FutureTask.java
ava/util/concurrent/LinkedBlockingQueue.java
ava/util/concurrent/PriorityBlockingQueue.java
ava/util/concurrent/ScheduledExecutorService.java
ava/util/concurrent/ScheduledThreadPoolExecutor.java
ava/util/concurrent/Semaphore.java
ava/util/concurrent/SynchronousQueue.java
ava/util/concurrent/ThreadPoolExecutor.java
ava/util/concurrent/atomic/AtomicIntegerArray.java
ava/util/concurrent/atomic/AtomicIntegerFieldUpdater.java
ava/util/concurrent/atomic/AtomicLongArray.java
ava/util/concurrent/atomic/AtomicLongFieldUpdater.java
ava/util/concurrent/atomic/AtomicReferenceArray.java
ava/util/concurrent/atomic/AtomicReferenceFieldUpdater.java
ava/util/concurrent/locks/AbstractQueuedLongSynchronizer.java
ava/util/concurrent/locks/AbstractQueuedSynchronizer.java
ava/util/concurrent/locks/Condition.java
ava/util/concurrent/locks/LockSupport.java
ava/util/concurrent/locks/ReentrantLock.java
ava/util/concurrent/locks/ReentrantReadWriteLock.java
ava/util/jar/Attributes.java
ava/util/jar/InitManifest.java
ava/util/jar/JarEntry.java
ava/util/jar/JarFile.java
ava/util/jar/JarInputStream.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
ava/util/prefs/AbstractPreferences.java
ava/util/prefs/NodeChangeEvent.java
ava/util/prefs/NodeChangeListener.java
ava/util/prefs/NodeSet.java
ava/util/prefs/Preferences.java
ava/util/prefs/XMLParser.java
ava/util/regex/Pattern.java
ava/util/zip/ZipFile.java
avax/crypto/Cipher.java
avax/crypto/CipherInputStream.java
avax/crypto/CipherOutputStream.java
avax/crypto/CipherSpi.java
avax/crypto/EncryptedPrivateKeyInfo.java
avax/crypto/ExemptionMechanism.java
avax/crypto/KeyAgreement.java
avax/crypto/KeyGenerator.java
avax/crypto/Mac.java
avax/crypto/MacSpi.java
avax/crypto/NullCipher.java
avax/crypto/SealedObject.java
avax/crypto/SecretKeyFactory.java
avax/crypto/spec/OAEPParameterSpec.java
avax/net/ssl/DefaultHostnameVerifier.java
avax/net/ssl/HandshakeCompletedEvent.java
avax/net/ssl/KeyManagerFactory.java
avax/net/ssl/KeyStoreBuilderParameters.java
avax/net/ssl/SSLContext.java
avax/net/ssl/TrustManagerFactory.java
avax/security/cert/Certificate.java
avax/security/cert/X509Certificate.java
avax/sql/ConnectionEvent.java
avax/sql/ConnectionPoolDataSource.java
avax/sql/DataSource.java
avax/sql/PooledConnection.java
avax/sql/RowSet.java
avax/sql/RowSetEvent.java
avax/sql/RowSetInternal.java
avax/xml/datatype/DatatypeFactory.java
avax/xml/datatype/Duration.java
avax/xml/datatype/XMLGregorianCalendar.java
avax/xml/namespace/QName.java
avax/xml/parsers/DocumentBuilder.java
avax/xml/parsers/DocumentBuilderFactory.java
avax/xml/parsers/SAXParser.java
avax/xml/parsers/SAXParserFactory.java
avax/xml/transform/dom/DOMLocator.java
avax/xml/transform/dom/DOMSource.java
avax/xml/transform/sax/SAXResult.java
avax/xml/transform/sax/SAXSource.java
avax/xml/transform/sax/SAXTransformerFactory.java
avax/xml/transform/sax/TemplatesHandler.java
avax/xml/transform/sax/TransformerHandler.java
avax/xml/transform/stream/StreamResult.java
avax/xml/transform/stream/StreamSource.java
avax/xml/validation/SchemaFactory.java
avax/xml/validation/SchemaFactoryFinder.java
avax/xml/validation/Validator.java
avax/xml/xpath/XPath.java
avax/xml/xpath/XPathExpression.java
avax/xml/xpath/XPathFactoryFinder.java
rg/apache/harmony/crypto/internal/NullCipherSpi.java
rg/apache/harmony/lang/annotation/AnnotationFactory.java
rg/apache/harmony/luni/internal/net/www/protocol/file/FileURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
rg/apache/harmony/luni/lang/reflect/ImplForWildcard.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainServerSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/AbstractMemorySpy.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/platform/Platform.java
rg/apache/harmony/luni/util/Base64.java
rg/apache/harmony/luni/util/Inet6Util.java
rg/apache/harmony/luni/util/ThreadLocalCache.java
rg/apache/harmony/nio/FileChannelFactory.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
rg/apache/harmony/nio/internal/MappedByteBufferFactory.java
rg/apache/harmony/nio/internal/PipeImpl.java
rg/apache/harmony/nio/internal/ReadOnlyFileChannel.java
rg/apache/harmony/nio/internal/ReadWriteFileChannel.java
rg/apache/harmony/nio/internal/SelectorImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
rg/apache/harmony/security/PolicyEntry.java
rg/apache/harmony/security/asn1/ASN1OpenType.java
rg/apache/harmony/security/asn1/InformationObjectSet.java
rg/apache/harmony/security/fortress/DefaultPolicy.java
rg/apache/harmony/security/fortress/DefaultPolicyParser.java
rg/apache/harmony/security/fortress/Engine.java
rg/apache/harmony/security/fortress/PolicyUtils.java
rg/apache/harmony/security/fortress/Services.java
rg/apache/harmony/security/pkcs10/CertificationRequestInfo.java
rg/apache/harmony/security/pkcs7/AuthenticatedAttributes.java
rg/apache/harmony/security/pkcs7/ContentInfo.java
rg/apache/harmony/security/pkcs7/SignedData.java
rg/apache/harmony/security/pkcs7/SignerInfo.java
rg/apache/harmony/security/pkcs8/PrivateKeyInfo.java
rg/apache/harmony/security/provider/cert/X509CRLEntryImpl.java
rg/apache/harmony/security/provider/cert/X509CRLImpl.java
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/security/provider/cert/X509CertPathImpl.java
rg/apache/harmony/security/provider/crypto/CryptoProvider.java
rg/apache/harmony/security/provider/crypto/DSAPrivateKeyImpl.java
rg/apache/harmony/security/provider/crypto/DSAPublicKeyImpl.java
rg/apache/harmony/security/provider/crypto/RandomBitsSupplier.java
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
rg/apache/harmony/security/provider/crypto/SHA1_MessageDigestImpl.java
rg/apache/harmony/security/provider/crypto/SHA1withDSA_SignatureImpl.java
rg/apache/harmony/security/utils/AlgNameMapper.java
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/apache/harmony/security/x501/AttributeTypeAndValueComparator.java
rg/apache/harmony/security/x501/AttributeValue.java
rg/apache/harmony/security/x501/DirectoryString.java
rg/apache/harmony/security/x501/Name.java
rg/apache/harmony/security/x509/AlgorithmIdentifier.java
rg/apache/harmony/security/x509/AuthorityKeyIdentifier.java
rg/apache/harmony/security/x509/BasicConstraints.java
rg/apache/harmony/security/x509/CRLDistributionPoints.java
rg/apache/harmony/security/x509/CRLNumber.java
rg/apache/harmony/security/x509/CertificateIssuer.java
rg/apache/harmony/security/x509/CertificatePolicies.java
rg/apache/harmony/security/x509/DNParser.java
rg/apache/harmony/security/x509/DistributionPoint.java
rg/apache/harmony/security/x509/DistributionPointName.java
rg/apache/harmony/security/x509/ExtendedKeyUsage.java
rg/apache/harmony/security/x509/Extension.java
rg/apache/harmony/security/x509/Extensions.java
rg/apache/harmony/security/x509/GeneralName.java
rg/apache/harmony/security/x509/GeneralNames.java
rg/apache/harmony/security/x509/GeneralSubtrees.java
rg/apache/harmony/security/x509/InfoAccessSyntax.java
rg/apache/harmony/security/x509/InvalidityDate.java
rg/apache/harmony/security/x509/IssuingDistributionPoint.java
rg/apache/harmony/security/x509/KeyUsage.java
rg/apache/harmony/security/x509/NameConstraints.java
rg/apache/harmony/security/x509/PolicyConstraints.java
rg/apache/harmony/security/x509/PrivateKeyUsagePeriod.java
rg/apache/harmony/security/x509/ReasonCode.java
rg/apache/harmony/security/x509/ReasonFlags.java
rg/apache/harmony/security/x509/SubjectKeyIdentifier.java
rg/apache/harmony/security/x509/SubjectPublicKeyInfo.java
rg/apache/harmony/security/x509/TBSCertList.java
rg/apache/harmony/security/x509/TBSCertificate.java
rg/apache/harmony/security/x509/Validity.java
rg/apache/harmony/security/x509/tsp/PKIStatusInfo.java
rg/apache/harmony/security/x509/tsp/TSTInfo.java
rg/apache/harmony/security/x509/tsp/TimeStampReq.java
rg/apache/harmony/xml/ExpatParser.java
rg/apache/harmony/xml/ExpatPullParser.java
rg/apache/harmony/xml/ExpatReader.java
rg/apache/harmony/xml/dom/DOMConfigurationImpl.java
rg/apache/harmony/xml/dom/DocumentImpl.java
rg/apache/harmony/xml/dom/ElementImpl.java
rg/apache/harmony/xml/dom/InnerNodeImpl.java
rg/apache/harmony/xml/dom/NamedNodeMapImpl.java
rg/apache/harmony/xml/dom/NodeImpl.java
rg/apache/harmony/xml/dom/NodeListImpl.java
rg/apache/harmony/xml/parsers/DocumentBuilderImpl.java
rg/apache/harmony/xml/parsers/SAXParserFactoryImpl.java
rg/apache/harmony/xml/parsers/SAXParserImpl.java
rg/apache/harmony/xnet/provider/jsse/AlertProtocol.java
rg/apache/harmony/xnet/provider/jsse/CertificateMessage.java
rg/apache/harmony/xnet/provider/jsse/CertificateRequest.java
rg/apache/harmony/xnet/provider/jsse/CertificateVerify.java
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/ClientKeyExchange.java
rg/apache/harmony/xnet/provider/jsse/ConnectionState.java
rg/apache/harmony/xnet/provider/jsse/ConnectionStateTLS.java
rg/apache/harmony/xnet/provider/jsse/DelegatedTask.java
rg/apache/harmony/xnet/provider/jsse/DigitalSignature.java
rg/apache/harmony/xnet/provider/jsse/FileClientSessionCache.java
rg/apache/harmony/xnet/provider/jsse/Finished.java
rg/apache/harmony/xnet/provider/jsse/HandshakeIODataStream.java
rg/apache/harmony/xnet/provider/jsse/HelloRequest.java
rg/apache/harmony/xnet/provider/jsse/IndexedPKIXParameters.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/Message.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/PRF.java
rg/apache/harmony/xnet/provider/jsse/SSLBufferedInput.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineAppData.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLRecordProtocol.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketInputStream.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerHello.java
rg/apache/harmony/xnet/provider/jsse/ServerHelloDone.java
rg/apache/harmony/xnet/provider/jsse/ServerKeyExchange.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerFactoryImpl.java
rg/w3c/dom/ls/LSParser.java
rg/w3c/dom/ls/LSParserFilter.java
rg/w3c/dom/ls/LSSerializer.java
rg/w3c/dom/traversal/NodeIterator.java
rg/xml/sax/InputSource.java
rg/xml/sax/ext/EntityResolver2.java
rg/xml/sax/helpers/AttributeListImpl.java
rg/xml/sax/helpers/DefaultHandler.java
rg/xml/sax/helpers/NewInstance.java
rg/xml/sax/helpers/ParserAdapter.java
rg/xml/sax/helpers/ParserFactory.java
rg/xml/sax/helpers/XMLFilterImpl.java
rg/xml/sax/helpers/XMLReaderAdapter.java
rg/xml/sax/helpers/XMLReaderFactory.java
dc3c71629a42d9c1b3d66da54c7d090d4fff2c65 11-Aug-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing ListOfTypes to not null-out its types." into dalvik-dev
297f4f85f303725a64c2038ff81c0d1be1f10560 11-Aug-2010 Jesse Wilson <jessewilson@google.com> Fixing ListOfTypes to not null-out its types.

http://code.google.com/p/android/issues/detail?id=6636

Change-Id: I164046e868fb72a76b8b2ad2729e97229129ea39
rg/apache/harmony/luni/lang/reflect/GenericSignatureParser.java
rg/apache/harmony/luni/lang/reflect/ListOfTypes.java
3ab13ebe9d67b0b210865853902b854711ef45b0 11-Aug-2010 Elliott Hughes <enh@google.com> Improve the performance of TimeZone.getTimeZone.

Rewrite the code that reads time zone data so that rather than opening,
reading, and closing the file each time, we just keep the file mapped.

This patch actually removes functionality: we no longer support reading
individual Unix time zone data files.

Also stop cloning guaranteed-new instances returned by ZoneInfoDB.

Before:

benchmark us logarithmic runtime
TimeZone_getDefault 9.85 =
TimeZone_getTimeZoneUTC 211.40 =====================
TimeZone_getTimeZone_America_Caracas 437.87 ==========================
TimeZone_getTimeZone_America_Santiago 783.29 ==============================
TimeZone_getTimeZone_GMT_plus_10 181.80 ====================
TimeZone_getTimeZone_default 194.78 ====================

After:

benchmark us logarithmic runtime
TimeZone_getDefault 10.8 =
TimeZone_getTimeZoneUTC 70.9 =============
TimeZone_getTimeZone_America_Caracas 118.9 =================
TimeZone_getTimeZone_America_Santiago 797.5 ==============================
TimeZone_getTimeZone_GMT_plus_10 57.8 ============
TimeZone_getTimeZone_default 72.2 =============

(Note that these have very different scales.)

Bug: 2870945
Change-Id: Iae5aa86153006d4de8e7278d30bcaeef6a9ccab7
ava/util/TimeZone.java
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
f14cadb15b06371fb9a6daf885dc1c4bccf975b9 10-Aug-2010 Elliott Hughes <enh@google.com> Minor TimeZone cleanup.

Getting ready to do some real work here, I thought I'd improve the
documentation and remove some cruft.

Bug: 2870945
Change-Id: I771badc8afa5c0a5f77880f64e1542d77672d984
ava/util/TimeZone.java
ibcore/io/IoUtils.java
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
29f8e5ccde645e05d244c6dd94eaa377251dab2c 10-Aug-2010 Elliott Hughes <enh@google.com> Merge "Make network I/O interruptible." into dalvik-dev
9f2b1b1c3bf9de560f29f257c855c7c85b405c0f 07-Aug-2010 Elliott Hughes <enh@google.com> Make network I/O interruptible.

Every thread about to block on network I/O registers its thread id and
the fd it's going to block on. In close, we scan the list and signal
every thread that's blocked on the fd we're closing. They wake up with
EINTR, see that their java.io.FileDescriptor has been invalidated (by
the close code), and infer that this EINTR is not to be retried: this
EINTR implies that they should throw.

This patch also fixes a couple of bugs in accept. We were trying (and,
obviously, failing) to reset SO_RCVTIMEO on fd -1 if the accept failed,
and then throwing an exception relating to that rather than the failed
accept(2). We were also not treating timeouts as a special case of
failure and throwing the appropriate SocketTimeoutException. (One has
to suspect that there's an errno-to-Exception function that we could
write that would work for all this native code.)

This patch also cleans up connect a little more. I've inlined doConnect
into its single caller, I've removed the bogus use of 100ms polling,
and I've rewritten the checking for success/failure to be based on the
advice in Stevens' "Unix Network Programming".

Bug: 2823977
Change-Id: I4f0cbd95be9ba25368be166008855a80c5d30845
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
a30197c7a5647be80512af11b5e994f5af2e177b 06-Aug-2010 Jesse Wilson <jessewilson@google.com> Support multihomed addresses in HttpURLConnection.

See http://b/2876927

Change-Id: I13138109d3648cf8a86d07136337b820c94b500a
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
036ffc75d2b7ece42bcd97f290c026e215868ba9 05-Aug-2010 Elliott Hughes <enh@google.com> Rationalize and simplify our "connect" implementations.

We don't need to copy a context structure back and forth between native code
and Java: it didn't contain anything but temporaries anyway. We don't need a
convenience method for a blocking connect with no timeout. We don't need a
separate codepath for datagram and stream sockets' connect calls.

There are further simplifications that could be made, I think. I think we
could implement "connect" in Java in terms of "connectNonBlocking" and
"isConnected" (since that's how our native implementation works anyway).
I also think we can fix the 100ms polling too, though I haven't investigated
and that may require that we fix the general "interrupt on close" problem.

Change-Id: Ib5989fa05f5dd7dd24b681fab70f856cd0bc5c56
ava/net/InetAddress.java
ava/nio/channels/SelectionKey.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
f870c16ce9cb96e2c009f62bd9a7f1f157321148 04-Aug-2010 Elliott Hughes <enh@google.com> Add a comment I meant to include in PipeImpl.

Change-Id: I1e54c5b73fbc73fbc20f3782c207c04343849455
rg/apache/harmony/nio/internal/PipeImpl.java
440ba565fa5384bc23255fbc412f7b97fcbdccd9 04-Aug-2010 Elliott Hughes <enh@google.com> Rename setNonBlocking to setBlocking.

This makes the boolean argument less confusing.

Change-Id: Ic226f6d3c5afe8e15a95e74917656424f8a448fe
ibcore/io/IoUtils.java
rg/apache/harmony/nio/internal/PipeImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
31496e770af085ce6ee439a1a58db39a1ade7e8e 04-Aug-2010 Elliott Hughes <enh@google.com> Merge "Rewrite the nio Pipe to use a Unix pipe behind the scenes." into dalvik-dev
99a89dd6f0a0e1396aa9b3feebf15ea31f703d3a 04-Aug-2010 Elliott Hughes <enh@google.com> Rewrite the nio Pipe to use a Unix pipe behind the scenes.

We were using an AF_INET or AF_INET6 socket to implement the nio Pipe, which
was causing trouble for people on systems where IPv6 wasn't working yet.

This patch switches over to pipe(2). My first implementation used socketpair(2)
and retained the SocketChannelImpls, but it still seemed a bit off to be asking
for a full-duplex pipe to implement a unidirectional channel, and it required
hacks in the networking code to cope with the AF_LOCAL family, and in the
BlockGuard for the isLingeringSocket test.

This implementation uses pipe(2) and FileChannelImpl. It breaks a few tests, but
the tests are wrong, and it actually brings us closer to the RI's behavior of
throwing IOException "broken pipe" when writing to a broken pipe.

Rather than keep throwing junk into the FileSystem/NetworkSystem classes, and
resolving the question of which of those setNonBlocking belonged in (answer:
neither; this is a false Windows-style dichotomy that isn't helpful here), I've
added a new IoUtils with a few generally useful methods. The remainder of this
patch switches over existing code. We could probably make
FileDescriptor.descriptor private now I've exposed accessors, but this change
is large enough already...

Bug: 2735373
Bug: http://code.google.com/p/android/issues/detail?id=9431
Change-Id: I6b6d1e50bdddd435e71c31105a73c9d4fd135d7e
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
ava/lang/ProcessManager.java
ava/nio/channels/Pipe.java
ibcore/io/IoUtils.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/nio/AddressUtil.java
rg/apache/harmony/nio/internal/PipeImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
2c040b9b2fae389983339ed2bcba4c7568825575 03-Aug-2010 Brian Carlstrom <bdc@google.com> Merge "Support for TLS Extensions enabled SSLSockets with fallback to vanila SSL" into dalvik-dev
f4f96a70ae784447d1657a7d56fa73eee1ccb3f2 03-Aug-2010 Elliott Hughes <enh@google.com> resolved conflicts for merge of 7b3ebefc to dalvik-dev

Change-Id: I7bb0341107f0b3f5b568d151f062e30f61e5ee14
4559b1d37edcb5d7f1da086cf2e3290388d74f46 23-Jul-2010 Brian Carlstrom <bdc@google.com> Support for TLS Extensions enabled SSLSockets with fallback to vanila SSL

See also b/1569612

Summary:
- OpenSSlSocket support for SNI, session tickets, compression
- URLConnection mimics Chrome behavior of trying connection with these enabled,
falling back to SSL w/o encryption on failure

Details:

libcore

URLConnection https retry

Change HttpConnection.getSecureSocket to enable non-standard features on first
connection attempt. On second attempt, we back off to SSLv3 from
TLSv1, mimicking Chrome's behavior.

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java

Change HttpsEngine.connect to implement SSL reconnect

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java

OpenSSL SSLSocket implementation

OpenSSLSocketImpl and OpenSSLServerSocketImpl now have an array of
enabled compression methods interface and implementation to
parallel that of procotols and ciphersuites.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java

OpenSSLSessionImpl now has a cache of the native
compressionMethod. Also replaced "gives" javadoc working with
"returns".

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java

OpenSSLSocketImpl session caching now needs to skip cached
sessions with mismatched compression requirements.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

OpenSSLSocketImpl.startHandshake now uses NativeCrypto to support
our non-standard extensions.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

NativeCrypto changes
- Added declaration of SSL options for tickets and compression.
- Added general "compression methods" interface
paralleling "cipher suites" and "protocols" interfaces.
- Added SSL_set_tlsext_host_name to set SNI (Server Name Indication) value
- Added SSL_get_servername to read SNI (Server Name Indication) value
- Added SSL_SESSION_compress_meth read negotiated compression method
- SSL_new makes sure to default compression to off for compatibility
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/native/NativeCrypto.cpp

Testing

Added URLConnectionTest.testConnectViaHttpsWithSSLFallback to make
sure we properly retry an https connection if the server
terminates unexpectedly. Fixed up
URLConnectionTest.testHttpsWithCustomTrustManager with new
expected certificate chain. Fixed a few mistaken
TestSSLContext.serverContext uses to clientContext

luni/src/test/java/java/net/URLConnectionTest.java

Added test_SSL_set_tlsext_host_name, test_SSL_get_servername,
test_SSL_SESSION_compress_meth. Added a number of missing fail()
calls in expected exception cases which caught one test with
mistaken expectations. Removed some unnecessary scopes. Fixed some
badly scoped catch blocks.

luni/src/test/java/org/apache/harmony/xnet/provider/jsse/NativeCryptoTest.java

Changed MockWebServer to support a new MockResponse propery of
disconnectAtStart, which immediately terminates the connection

support/src/test/java/tests/http/MockResponse.java
support/src/test/java/tests/http/MockWebServer.java

external/openssl

Restore -ZLIB to OpenSSL build. Note that NativeCrypto.SSL_new
disables compression by for default SSLSocket for compatibility.
android-config.mk
Force clean build with new CFLAGS
CleanSpec.mk

Change-Id: Iba6268f9096f2be43f0d30de151dd3fd0aea4a81
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
7b3ebefcdf79a251cf2a5619dd2354952fc67665 02-Aug-2010 Elliott Hughes <enh@google.com> Use the existing mime-type/extension mapping from frameworks/base.

(An accompanying change to frameworks/base switches that over so that both
android.webkit.MimeTypeMap and java.net.URLConnection use the same data.)

Bug: 2422917
Bug: http://code.google.com/p/android/issues/detail?id=10100
Change-Id: I37f008a00093efcf7b336ea0c206e8977544b0bf
ava/net/DefaultFileNameMap.java
ava/net/FileNameMap.java
ava/net/URLConnection.java
ibcore/net/MimeUtils.java
rg/apache/harmony/luni/internal/net/www/MimeTable.java
rg/apache/harmony/luni/internal/net/www/protocol/file/FileURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
4fe378672d700aaae3a50db956b693b3ed599c7d 31-Jul-2010 Elliott Hughes <enh@google.com> Remove "java.net.preferIPv4Stack" (which has been broken >= eclair).

Change-Id: I4733a0e266ff7c02c25033e79bcceff4d7357868
ava/net/InetAddress.java
ava/net/MulticastSocket.java
rg/apache/harmony/luni/net/NetUtil.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainServerSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
977a9954414ec41256b218e6278a8544ea135d45 31-Jul-2010 Elliott Hughes <enh@google.com> Bring URLConnection.guessContentTypeFromName in line with Chrome.

Bug: http://code.google.com/p/android/issues/detail?id=10100
Change-Id: Ibd53f3450eda9c5dbad9e4b0b661cc98e8f578e4
rg/apache/harmony/luni/internal/net/www/MimeTable.java
e7cdf919cf8bbb971eede72cd89168da11e38f82 30-Jul-2010 Elliott Hughes <enh@google.com> Merge "Fix setTrafficClass." into dalvik-dev
2cd82d7111f68ff63145ef7c393bf1479ff06223 29-Jul-2010 Elliott Hughes <enh@google.com> Fix setTrafficClass.

Pass the traffic class setting down to the kernel, rather than trying to
fake it in Java and then not actually using it at all in the native code.

There are two ways to set traffic class (aka type of service, or TOS):
per-packet or per-socket. The Java API is for the per-socket style, but
the old implementation had each SocketImpl intercept calls to
SocketOptions.setOption for SocketOptions.IP_TOS, stash the traffic class
in one of the SocketImpl's private fields, skip calling native code, and
then pass the traffic class to each native method that would need it to
implement the per-packet style. Unfortunately, each of those methods was
just ignoring the traffic class.

I've removed all this interception, so we now pass the traffic class straight
to the kernel via setsockopt(2), and we don't need to pass anything to the
individual per-packet calls.

The motivation for going the per-packet route appears to have been to work
around a lack of support for the per-socket route in old versions of Linux
and other OSes. It all works now, though, so there's no point making our
lives harder (and doing more work at runtime) to work around bugs and
infelicities that no longer exist.

I tested the new code manually with tcpdump, for both IPv4 (radio) and
IPv6 (wifi), and in both cases it looks like it's doing the right thing now.
We also still pass all of our tests, though none of them are capable of
recognizing whether we're actually doing anything useful anyway...

Change-Id: Ice241e088d25037123c73733a3f2bfade976fb31
ava/net/DatagramSocket.java
ava/net/InetAddress.java
ava/net/Socket.java
ava/net/SocketImpl.java
ava/net/SocketOptions.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
b0b73fa970581e7aa8735c0c388c4363cf8da07b 29-Jul-2010 Ben Dodson <bjdodson@google.com> Fix for poorly compiling documentation

Change-Id: I6077052df3cf6ba1f977aa312552ef8fe43bd56c
ava/net/HttpCookie.java
0371d85fa3ecb5f162d107cdbff0a99cd987fdcc 27-Jul-2010 Elliott Hughes <enh@google.com> Fix setSoLinger.

The bizarre use of Boolean or Integer (rather than just using -1) comes
from the RI. Third-party SocketImpl implementations may expect the RI's
documented behavior, so we should probably do the same.

I've also changed SocketChannelImpl.SocketAdapter to reuse Socket's
implementation of all the socket option getting/setting code, mainly so
we don't have two copies of all the weirdness.

I've also fixed a bug in the native getSocketOption code which returned
a Boolean rather than an Integer for IP_TOS/IPV6_TCLASS, though that code
is actually never called at the moment.

I've removed support for passing Byte values to setSocketOption. The RI
only uses Boolean and Integer.

Change-Id: I80ba63745f4c4f3ac357dc3f0b7cbf254a291bce
ava/net/DatagramSocket.java
ava/net/MulticastSocket.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketOptions.java
ava/net/SocketUtils.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
0753206c1dca5e26fbd0e0381c637d0ad951e0f8 29-Jul-2010 Brian Carlstrom <bdc@google.com> am 06f47d3e: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-master

Merge commit '06f47d3e721e7032c97f80b3b2c7d25a8e6f2d21' into dalvik-dev

* commit '06f47d3e721e7032c97f80b3b2c7d25a8e6f2d21':
06f47d3e721e7032c97f80b3b2c7d25a8e6f2d21 29-Jul-2010 Brian Carlstrom <bdc@google.com> Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-master

Change-Id: I9687c2ef06dc2bd1ba573bf40ec00236c25e558f
7ed4d9e13b7d599a2d6cfdc8cb9e86a8ef0b0dd8 29-Jul-2010 Ben Dodson <bjdodson@google.com> EnumMap.toString throws NPE

Fix for bug: 2787265

Change-Id: I56f9a2c7088f5263b26e93be1a3a28903c9e49cd
ava/util/EnumMap.java
623978ac0a3f9e4e2d1111aee41b64195d9ac64c 28-Jul-2010 Elliott Hughes <enh@google.com> resolved conflicts for merge of 01a18c74 to dalvik-dev

Change-Id: Ib569414191a6e7b0e7aebb804fe1f4d57c5184a9
01a18c74534e68f19c90912e8f87e856f9901dfb 28-Jul-2010 Elliott Hughes <enh@google.com> resolved conflicts for merge of fb4045a3 to master

Change-Id: I2100c70f6078108e7b646c393ac2e4b42ca8d066
48b569bddf13e20ecdca657f598b7005b6f86b8e 27-Jul-2010 Brian Carlstrom <bdc@google.com> Fix SecureRandom default service

Further profiling revealed a bug in the early performance fix which
was always returning null because it the Services.getService interface
expected SecureRandom.<algorithm>, not just SecureRandom.

However, the basic idea of using the precomputed Services approach was
sound. Services.refresh now calculates the default SecureRandom
services as a special case.

Confirmed that the RI also has this apparently undocumented behavior
of defaulting the SecureRandom to the highest priority provider that
has an available implementation.a

Change-Id: Icf3be52e5d9113b0940cd38522857ba7e339a60f
ava/security/SecureRandom.java
rg/apache/harmony/security/fortress/Services.java
4e4000ed98f9056639fba0713a3fd3caacf9746c 27-Jul-2010 Elliott Hughes <enh@google.com> Let the kernel handle network timeouts by setting SO_RCVTIMEO.

As far as I can tell, the reason other implementations use select(2)
instead of SO_RCVTIMEO is that traditionally the latter wasn't implemented.
Stevens is unusually unspecific about the portability of SO_RCVTIMEO, but
the web says that Linux didn't support it until 2.4, and Solaris was late
and buggy too. Modern versions of Linux, Mac OS, and Windows all support
SO_RCVTIMEO, though, so portability should not be a concern for us.

This patch causes a regression; several of the blocking network I/O methods
that used to be interruptible by virtue of their select(2)-based manual
implementation of timeouts are no longer interruptible. Making all network
I/O interruptible is work in progress, covered by http://b/2823977.

Bug: http://b/2512069
Change-Id: I0a2812ca1537bd171c4205343d6b3b526b72b2b2
ava/net/DatagramSocket.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketImpl.java
ava/net/SocketOptions.java
ava/nio/channels/spi/AbstractSelectableChannel.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/net/SocketInputStream.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/PipeImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
5b7fe83570b3c48e892dd0cd2c7447cc786c37e2 24-Jul-2010 Brian Carlstrom <bdc@google.com> SecureRandom constructor performance improvement

The SecureRandom constructor was iterating all service providers to
find an implementation (the providers are in priority order). Changed
to use Service.getService which respects the priority but is a hash
lookup instead of a linear search.

This problem was brought to light when the Harmony provider was moved
after the BouncyCastle provider, making the search take much longer.

b/2748913

Change-Id: I44a4928bf80c81745d3bbbd510b48b3d0d6ad70e
ava/security/SecureRandom.java
bfb0099cc4c8eca744eeda0f20e5b3644f1a4cb9 11-Jun-2010 Owen Lin <owenlin@google.com> Improve putFloatArray performance

Change-Id: I04b43a2be6409329408d74af7ff0f0b2b60cc96d
rg/apache/harmony/luni/platform/IMemorySystem.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/PlatformAddress.java
f9e1294b67778f9b290b9fb6eeda2d7cc7c1c3ee 24-Jul-2010 Elliott Hughes <enh@google.com> Fix available() to throw on a closed Socket's InputStream.

Change-Id: If9163301d18f7c0a11af08da6017840aa1bf4f38
rg/apache/harmony/luni/net/PlainSocketImpl.java
f4e33cb34780903c44967b652c46d198d10c9ce0 24-Jul-2010 Elliott Hughes <enh@google.com> Merge "Fix multicast TTL (and loopback)." into dalvik-dev
9e0fcfffa3647483fd78571978954827c95efa68 24-Jul-2010 Jean-Baptiste Queru <jbq@google.com> am ee57aef0: resolved conflicts for merge of 67ca373a to master

Merge commit 'ee57aef0ce4d4460e1c4072f67014d68112528fe' into dalvik-dev

* commit 'ee57aef0ce4d4460e1c4072f67014d68112528fe':
Bugs when connecting a SocketChannel registered in a Selector
f3afb1b6a4ace33bd60e5801bdb2fcb2e935d486 24-Jul-2010 Elliott Hughes <enh@google.com> Fix multicast TTL (and loopback).

We generally create AF_INET6 sockets. These work for both IPv6 and IPv4
communication. Typically, we'll be using them for IPv4. Unfortunately,
if we've only set IPPROTO_IPV6 socket options, they won't be used for
IPv4 communication. We need to set the IPPROTO_IP equivalents too. This
patch fixes our behavior for IP_MULTICAST_TTL/IPV6_MULTICAST_HOPS and
IP_MULTICAST_LOOP/IPV6_MULTICAST_LOOP.

Also switch to consistently using AF_ constants with socket(2). Stevens
recommends we just pretend the PF_ constants don't exist.

Also remove the useless REUSEADDR_AND_REUSEPORT constant, and fix some
of the C++ constant names to match the Java constant names.

Bug: http://code.google.com/p/android/issues/detail?id=9813
Change-Id: I31664198824291f2a13a7d72a9d64f12621e3415
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
ee57aef0ce4d4460e1c4072f67014d68112528fe 23-Jul-2010 Jean-Baptiste Queru <jbq@google.com> resolved conflicts for merge of 67ca373a to master

Change-Id: I01a4b6b0a73066e9a8119a66d07c43839079b4c9
dbbdffce5ac97a0e93ef495adaacca3660b9ab21 23-Jul-2010 Elliott Hughes <enh@google.com> Remove UCharacter's unnecessary layer of indirection.

Also fix this sim-eng build failure:

libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp: In function ‘jint OSMemory_flushImpl(JNIEnv*, _jobject*, jint, jlong)’:
libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:334: error: invalid conversion from ‘const void*’ to ‘void*’
libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:334: error: initializing argument 1 of ‘int msync(void*, size_t, int)’

Change-Id: Ia23c9af79c690254179139072b84bd0a35f17fba
om/ibm/icu4jni/lang/UCharacter.java
om/ibm/icu4jni/util/ICU.java
ava/lang/CaseMapper.java
ava/lang/Character.java
034db7d210969f6e516d347810695633d063eb4b 23-Jul-2010 Elliott Hughes <enh@google.com> Remove more of our C-style casts, fix more of our native method names.

Change-Id: I08d7915e22faf091489171240d2f9bf8b3acecca
om/ibm/icu4jni/text/NativeDecimalFormat.java
6882e31b7ce2d04ebbc91c7a55d7840e8fdce8a5 20-Jul-2010 Brian Carlstrom <bdc@google.com> Bring SSLSocketImpl and SSLEngine in line with OpenSSLSocketImpl's cipher suites

Wrote an interoperability test between our OpenSSL and SSLEngine
based SSLSocket implementations. Used it to flush out problems between
the implementations, which mostly were in the non-native implementation.

Filling out the SSLEngine (and therefore non-native SSLSocket) support
led to the list of supported and default cipher suites now being the
same as out OpenSSL SSLSocket. Most of the work was making the the
NULL, RC4, and AES ciphers work with SSLEngine as well as some minor
bug fixes in related code.

Summary:
- changing test_SSLSocket_getSupportedCipherSuites_connect to try all
combinations of our two SSLContext/SSLSocket implementations
- fixed SSLEngine with *_WITH_NULL_* CipherSuites to use javax.crypto.NullCipher
- added *_AES_* cipher suites to SSLEngine (and therefore Java SSLSocketImpl)
- remove *_DH_* cipher suites which are not supported by the RI or our OpenSSL implementation
- fixed Java SSLSocket to not handshake on accept so will pass the basic SSLSocketTest
- added new KeyManagerFactoryTest while testing "DH_" cipher suite key types

This change depends on restoring bouncycastle's RC4 implementation (separate CL in external/bouncycastle)

Details:

Fixed SSLEngine with *_WITH_NULL_* CipherSuites by use javax.crypto.NullCipher

expectations/knownfailures.txt
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ConnectionStateSSLv3.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ConnectionStateTLS.java

Previously I had changed the string name of CipherSuites from
"TLS_..." to "SSL_..." where appropriate to match the RI. Since I was
doing maintenance on overall list, I renamed the CODE_TLS_... and
TLS_... static fields as well to match.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CipherSuite.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java

Removed IDEA and RC2 CipherSuites to make it clear they are not
supported. While technically this happened as a side effect of the
assignment "supported = false" if the CipherSuite failed to load, we
truly intend not to support these. Also removed SSH_DH_* suites which
don't work with DSA keys and aren't supported by the RI or our OpenSSL
implementation.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CipherSuite.java

Old connection state code assumed that if a cipher was blocked, the
block size was 8 bytes. This is not true for the 16 byte AES ciphers.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ConnectionState.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ConnectionStateSSLv3.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ConnectionStateTLS.java

No wonder our OpenSSL implementation incorrect did a startHandshake
when accepting the socket... it got it from the Java implementation.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLServerSocketImpl.java

Test for KeyManagerFactory (and KeyManager). TestKeyStore now creates
KeyManagers and TrustManagers from the keystore as a convenience for
KeyManagerFactoryTest (instead of having the code in the
TestSSLContext where we didn't keep a pointer to the created values).

luni/src/test/java/javax/net/ssl/KeyManagerFactoryTest.java
support/src/test/java/java/security/StandardNames.java
support/src/test/java/java/security/TestKeyStore.java
support/src/test/java/javax/net/ssl/TestSSLContext.java

Remove CIPHER_SUITES_SSLENGINE now that its the same as CIPHER_SUITES

luni/src/test/java/javax/net/ssl/SSLEngineTest.java
support/src/test/java/java/security/StandardNames.java

test_SSLSocket_getSupportedCipherSuites_connect now does
interoperability testing not just between the default SSLContext's
SSLSockets but between the four combinations of our two SSLContext. It
also now sends some test data bi-directionally between the client and
server.

luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Changed TestSSLContext.create to allow a different Provider for the
client and server SSLContexts.

luni/src/test/java/javax/net/ssl/SSLEngineTest.java
luni/src/test/java/javax/net/ssl/SSLSocketTest.java
support/src/test/java/javax/net/ssl/TestSSLContext.java

RC4 is now available in bouncycastle for the non-OpenSSL SSLContext to
use for parity with the OpenSSL implementation.

support/src/test/java/java/security/StandardNames.java

Changed TestSSLSocketPair to use Futures like NativeCryptoTest so its
easier to choose between client and server errors while debuging.

support/src/test/java/javax/net/ssl/TestSSLSocketPair.java

Removed bogus import

luni/src/test/java/org/apache/harmony/xnet/provider/jsse/NativeCryptoTest.java

Change-Id: I080c0343a3f86f27b7c191a7b80b585b9ca52d93
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/ConnectionState.java
rg/apache/harmony/xnet/provider/jsse/ConnectionStateSSLv3.java
rg/apache/harmony/xnet/provider/jsse/ConnectionStateTLS.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
1422ef3b968d6b7575d19d0e9261dd2429c1b263 22-Jul-2010 Elliott Hughes <enh@google.com> Merge "Remove File's cached UTF-8 byte[]." into dalvik-dev
aaacdb095b10293286adbfd94af2fd83b8dae3a8 22-Jul-2010 Elliott Hughes <enh@google.com> Remove File's cached UTF-8 byte[].

This doesn't really improve File.getCanonicalPath and its helpers much, but it
improves everything else, and feels like a step in the right direction.

Benchmarking shows only a tiny difference in the uncommon case of a reused
File, and a significant increase in performance in the more likely case of
a single-use File.

Before:

benchmark us
Exists 26.14
ExistsReuse 5.08

After:

benchmark us
Exists 13.90
ExistsReuse 5.23

Bug: 2281992
Change-Id: Ibc6fd2581983ae8a57bf4b7f49196c76ad41169e
ava/io/File.java
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
eafede536f2059bb6c869e7a5f07fd7ad9758e28 21-Jul-2010 Jesse Wilson <jessewilson@google.com> Adding tests for HTTP connect and read timeouts.

Also a typo in an exception message in HttpURLConnectionImpl.

Change-Id: Ifa8b85e835eff6151a25c4a9ee83a7194de7656c
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
40fd826dafd7ef63fb99655ef635b94081e8cb11 21-Jul-2010 Jesse Wilson <jessewilson@google.com> Merge "Deduplicating HTTP tests with Harmony and get Harmony's tests passing." into dalvik-dev
83a47d4d0c536e06fc53eda9d5a1a5d93f9accc6 21-Jul-2010 Jesse Wilson <jessewilson@google.com> Deduplicating HTTP tests with Harmony and get Harmony's tests passing.

This fixes a behaviour problem where we were sending the response
headers to the response cache rather than the request headers. It
also fixes a bug in handling of null header names.

This also cleans up some of the worst names in HttpUrlConnectionImpl.
The similarity between reqHeader and resHeader may have been a reason
for the problem above.

See bug 2352649, which complains about how our duplicated-with-Harmony
test connects to news.yahoo.com, quite unreliably. The latest version
of their test uses a local jetty server, which is far more reliable.

Change-Id: I701b3a1c999c63ea8dd929d8bd020717403fb75c
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
ef628d1464e57552403ad43366e153c1ef50b926 19-Jul-2010 Brian Carlstrom <bdc@google.com> New NativeCryptoTest, NativeCrypto.{SSL_set_client_CA_list, SSL_renegotiate}, fixes for other minor bugs exposed by test

Summary:
- New NativeCryptoTest covering NativeCrypto SSL APIs
- Added SSL_set_client_CA_list for server to specify acceptable client cert issues
- Added SSL_renegotiate for renegoiation testing
- Removed unneeded d2i_SSL_SESSION argument
- Added OpenSSLSocketImpl read/write bounds checking
- Added NULL checks on AppData to avoid native crashes on use of SSL before handshake

Details:
Corrected NativeCrypto thrown exceptions based on
NativeCryptoTest. Of note, we now throw NullPointerException
instead of SSLException for simple null issues in NativeCrypto.cpp

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
luni/src/main/native/NativeCrypto.cpp

Created NativeCrypto.{encodeCertificates,encodeIssuerX509Principals} to
factor out some code out of OpenSSLSocketImpl that any user of
NativeCrypto.{SSL_use_certificate, SSL_set_client_CA_list} would
find useful.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Added SSL_set_client_CA_list to allow server to provide list of
issuers acceptable for client certifcates.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
luni/src/main/native/NativeCrypto.cpp

Added SSL_renegotiate to allow unit testing of SSL renegoiation.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/native/NativeCrypto.cpp

Removed d2i_SSL_SESSION size argument since it should be same as length of other argument

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
luni/src/main/native/NativeCrypto.cpp

Added bounds checking to getInputStream.read(byte[], ...) and
getOutputStream().write(byte[], ...)

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Added NULL checks on AppData to avoid native crashes.

luni/src/main/native/NativeCrypto.cpp

New test of NativeCrypto SSL APIs

luni/src/test/java/org/apache/harmony/xnet/provider/jsse/NativeCryptoTest.java

Change-Id: I2fb7a40761e66320f73b02880e6e43def9594497
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
bda80cff4d206aa89157031e7acb8a1967dfa4e1 17-Jul-2010 Elliott Hughes <enh@google.com> Merge "Fix build (droiddoc @param error)." into dalvik-dev
6efc5229f2edc0f6a228e541cd5b23c53c4a01a8 17-Jul-2010 Elliott Hughes <enh@google.com> Fix build (droiddoc @param error).

Change-Id: I5996c9fd2c17e7b2fa8a44dd9b96beb65adc7ab1
ava/io/PipedOutputStream.java
e3a187163504f00c98bd75cbd8bcbdde123ae2cd 14-Jul-2010 Brian Carlstrom <bdc@google.com> Fix PKCS12 and BKS KeyStore as well as SSL renegotiation

Summary:
- Added KeyStoreTest and fixed PKCS and BKS keystores to be fully functional
- KeyStore and KeyStoreImpl improvements in libcore and bouncycastle for more RI-like behavior
- SSL Renegotiation fix for new implementation

Details:

external/bouncycastle

TwoFish added back for BKS KeyStore. Like RC2, it not supported as
a general cipher, but instead used internally for KeyStore
implementation.

src/main/java/org/bouncycastle/crypto/engines/TwofishEngine.java
bouncycastle.config

Added back PBEWITHSHAANDTWOFISH, PBEWITHSHAANDTWOFISH-CBC,
PBEWITHSHA1ANDRC2-CBC, PBEWITHHMACSHA, PBEWITHHMACSHA1 to support
PKCS12 and BKS KeyStore implementations (as determined by new
KeyStoreTest)

src/main/java/org/bouncycastle/jce/provider/BouncyCastleProvider.java
src/main/java/org/bouncycastle/jce/provider/JCEBlockCipher.java
src/main/java/org/bouncycastle/jce/provider/JCEMac.java
src/main/java/org/bouncycastle/jce/provider/JCESecretKeyFactory.java

Don't throw an error when deleting a non-existing KeyStore entry. The
RI documentation (and behavior) says it throws an error when it fails
to remove an entry, not when the entry does not exist.

src/main/java/org/bouncycastle/jce/provider/JDKKeyStore.java
src/main/java/org/bouncycastle/jce/provider/JDKPKCS12KeyStore.java

Try to make BC's PKCS KeyStore have a more RI-like getCreationDate behavior

src/main/java/org/bouncycastle/jce/provider/JDKPKCS12KeyStore.java

Make BC's PKCS KeyStore failfast on setting non-supported key,
instead of failing later on get.

src/main/java/org/bouncycastle/jce/provider/JDKPKCS12KeyStore.java

Make BC's PKCS KeyStore handle setting a PrivateKey with an emtpy chain.

src/main/java/org/bouncycastle/jce/provider/JDKPKCS12KeyStore.java

Add more general avoidance of NullPointerExceptions on null aliases

src/main/java/org/bouncycastle/jce/provider/JDKPKCS12KeyStore.java

Added notes about changes improvements

patches/README

Regenerated patch with above changes

patches/android.patch

libcore

KeyStore improvements based on KeyStoreTest

- Fix UnrecoverableKeyException to be a subclass of
UnrecoverableEntryException, which was keeping the new
KeyStoreTest from compiling.

luni/src/main/java/java/security/UnrecoverableKeyException.java

- Fix to not convert UnrecoverableKeyException to KeyStoreException,
which was only being done because of the UnrecoverableKeyException
superclass bug.

luni/src/main/java/java/security/KeyStoreSpi.java

- Harmony KeyStore was being overly aggresive about throwing on null
alias arguments in cases where the RI was happy to pass them to the
KeyStoreSpi.

luni/src/main/java/java/security/KeyStore.java

- New test after PKCS12 regresion. It enumerates and excercises
all methods on all available KeyStore
implementations. Unfortunately, the main varieties of KeyStores
made this a lot more complicated than I was originally
expecting. It does clarifiy the differences between the RI and
BC KeyStore implementations, especially for PKCS12, where in
some ways the RI is more feature complete (setting key via
byte[]), but in other ways BC goes beyond some RI limitations
(allowing storage of certificates).

luni/src/test/java/java/security/KeyStoreTest.java

TestKeyStore improvements while writing KeyStoreTest
- Renamed "keyStorePassword" working usages to clarify if it really
means the "storePassword" on the whole KeyStore, or if it is a
"keyPassword" on individual keys.
- Moved TestKeyStore from javax.net.ssl to java.security

luni/src/test/java/javax/net/ssl/SSLContextTest.java
luni/src/test/java/javax/net/ssl/SSLEngineTest.java
luni/src/test/java/javax/net/ssl/SSLSessionTest.java
luni/src/test/java/javax/net/ssl/SSLSocketTest.java
support/src/test/java/java/security/StandardNames.java
support/src/test/java/java/security/TestKeyStore.java
support/src/test/java/javax/net/ssl/TestKeyStore.java
support/src/test/java/javax/net/ssl/TestSSLContext.java

Fixing up SSL renegotiation support. Now that we are not trying to
prevent renegotiation, make sure it is working correctly.

- Remove SSL_VERIFY_CLIENT_ONCE to take the default behavior of
re-requesting client certificate on renegotiation.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

- Updated comments to reflect renegotiation. Bug fix to not clear
out callback reference on handshake complete, since we need it for
renegotiation.

luni/src/main/native/NativeCrypto.cpp

Updated for PKCS12 KeyStore support

support/src/test/java/java/security/StandardNames.java

Added javadoc when writint KeyStoreTest

luni/src/test/java/java/security/ProviderTest.java

frameworks/base

Tracking changes to UnrecoverableKeyException superclass

api/8.xml
api/current.xml

Change-Id: I6349dbfc02896417595b52e364ade8000b567615
ava/security/KeyStore.java
ava/security/KeyStoreSpi.java
ava/security/UnrecoverableKeyException.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
95b6f9eb6c3ccd0c016245a75ac02cc9ac6534d5 15-Jul-2010 Jesse Wilson <jessewilson@google.com> Merge "Improving the performance of Class.getName() and Class.getMethods()." into dalvik-dev
b92764b27a1e26c4251c436d5cba299f6df05243 15-Jul-2010 Jesse Wilson <jessewilson@google.com> Improving the performance of Class.getName() and Class.getMethods().

Class.getName() was going to native code with every call. Caching
it in a field saves the native call and results in a large savings
in the new implementation of getAllMethods().

Class.getMethods() was allocating strings for every method as a hash
key for deduplicating overloads.

This table shows runtime with the optimization. The previous code
was hashing to deduplicate; the new code uses sorting.

run us linear runtime
hashing 4126.5 ===============
hashing+getName 3131.8 ===========
sorting 8062.4 ==============================
sorting+getName 2079.8 =======

Full details here, including some intermediate results:
http://microbenchmarks.appspot.com/run/jessewilson@google.com/java.lang.reflect.ReflectionBenchmark

Change-Id: I562785705847ab7af23dd57c98e593e7e0df284a
ava/lang/Class.java
ava/lang/ClassCache.java
ava/lang/reflect/Method.java
221d0ccb4cc23ee0bf0646e9abe471fb48b3a1a8 15-Jul-2010 Elliott Hughes <enh@google.com> Simplify the network send(2) interfaces.

Similar to the change for the recv(2) code.

Unrelatedly, I've pulled out our exception-throwing helpers for reuse. This
was meant to be in a separate change, but I accidentally mixed it in.

Bug: 2823977
Change-Id: I314a4337189277b6eff65f7ccf9e897b5d0b73f2
ava/net/SocketImpl.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
06a62bfda6aa4919d92a505ede4c8cd247fe15ba 15-Jul-2010 Elliott Hughes <enh@google.com> Match the RI in the exception thrown by DatagramPacket's constructor.

We were failing an existing harmony test, so no new test necessary.

Change-Id: I056187225af52a2bc927da208f9d174f3249b5fa
ava/net/DatagramPacket.java
79ff4e73fd689dae6667a8137ee57137962ff13a 14-Jul-2010 Elliott Hughes <enh@google.com> Make it possible to interrupt network reads.

This patch simplifies the network I/O interface, in particular for read/recv.

The bounds checking from OSNetworkSystem.read goes, since the caller already
checks. (If we want that checking in native code, we should add it uniformly.)

We also remove supportsUrgentData (which was always returning true), and remove
the sole caller, so we just try the operation and report failures if they happen
rather than trying to predict the failure (as the original code seemed to want
to do, and which is never a good idea).

The native code gains logic to recognize when the FileDescriptor has been
closed from another thread, though this logic remains largely unused at this
point. (There's comment-out code in "close" that does a shutdown(2) to wake
us up so we can recognize this situation.) I've switched code over to using
the new NetFd class, but haven't ensured that we handle the wakeups correctly.
(The "read" implementation being the notable exception.) For now, with the
shutdown(2) commented out, this shouldn't have any visible behavioral changes.
(And our tests don't spot any.)

Code that was using malloc(3)/free(3) to allocate temporary buffers, and copying
to and from those buffers has been rewritten to use JNI-provided pointers onto
the heap, as part of the general "don't lie to the garbage collector" push.

The implementations for the various old forms of recv have been collapsed into
one.

Bug: 2823977
Change-Id: I05cf742c44827a24df3c1ff59727013ee4636233
ava/net/InetAddress.java
ava/net/Socket.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
3bf03b8be207d0c760bcad5eae5028e854498376 14-Jul-2010 Elliott Hughes <enh@google.com> Remove the last few "Answer"/"Answers" from javadoc.

Change-Id: I753bd9bbfc1462d948929197f00668fa1e1237f2
ava/beans/IndexedPropertyChangeEvent.java
ava/io/InputStreamReader.java
ava/net/ServerSocket.java
ava/sql/DatabaseMetaData.java
ava/sql/Wrapper.java
rg/apache/harmony/luni/internal/net/www/MimeTable.java
rg/apache/harmony/luni/net/NetUtil.java
rg/apache/harmony/luni/net/Socks4Message.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
059dbc04218144f985b20a228bbe98139d400d0c 08-Jul-2010 Brian Carlstrom <bdc@google.com> Improved client certificate and certificate chain support

Summary:
- openssl: add openssl support for specifying per key certificate chains
- libcore: properly implement client certificate request call back
- libcore: properly implement sending certificate chain
- libcore: properly implement retreiving local certificate chain
- libcore: added an SSLContext for non-OpenSSL SSLSocket creation

Details:

external/openssl

Improve patch generate support by applying all other patches to
baseline to remove cross polluting other patch changes into target
patch. Move cleanup of ./Configure output to import script from
openssl.config.

import_openssl.sh
openssl.config

Adding SSL_use_certificate_chain and SSL_get_certificate_chain to
continue to finish most of remaining JSSE issues.

include/openssl/ssl.h
ssl/s3_both.c
ssl/ssl.h
ssl/ssl_locl.h
ssl/ssl_rsa.c

Updated patch (and list of input files to patch)

patches/jsse.patch
openssl.config

libcore

Restoring SSLContextImpl as provider of non-OpenSSL SSLSocketImpl
instances for interoperability testing. OpenSSLContextImpl is the
new subclass that provides OpenSSLSocketImpl. JSSEProvider
provides the old style SSLContexts, OpenSSLProvider provides the
OpenSSL SSLContext, which includes the "default" context. Changed
to register SSLContexts without aliases to match the RI.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/JSSEProvider.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/DefaultSSLContextImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLContextImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLContextImpl.java

Native interface updates to support OpenSSLSocketImpl improvements
- KEY_TYPES now expanded based on what we are being provided by OpenSSL.
keyType function now maps key type values received from
clientCertificateRequested callback.
- Removed remaining uses of string PEM encoding, now using ASN1 DER consistently
Includes SSL_SESSION_get_peer_cert_chain, verifyCertificateChain
- Fixed clientCertificateRequested to properly include all key
types supported by server, not just the one from the cipher
suite. We also now properly include the list of supported CAs to
help the client select a certificate to use.
- Fixed NativeCrypto.SSL_use_certificate implementation to use new
SSL_use_certificate_chain function from openssl to pass chain to
OpenSSL.
- Added error handling of all uses of sk_*_push which can fail due to out of memory
- Fixed compile warning due to missing JNI_TRACE argument
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/native/NativeCrypto.cpp
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Pass this into chooseServerAlias call as well in significantly revamped choseClientAlias

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Minor code cleanup while reviewing diff between checkClientTrusted and checkServerTrusted

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java

Improvements to SSL test support to go along with client
certificate and certificate chain changes. TestSSLContext now has
separate contexts for the client and server (as well as seperate
key stores information). TestKeyStore now is more realistic by
default, creating a CA, intermediate CA, and separate client and
server certificates, as well as a client keystore that simply
contains the CA and no certificates.

support/src/test/java/javax/net/ssl/TestKeyStore.java
support/src/test/java/javax/net/ssl/TestSSLContext.java

Tests tracking API changes. Tests involving cert chains now now
updated to use TestKeyStore.assertChainLength to avoid hardwiring
expected chain length in tests. These tests also now use
TestSSLContext.assertClientCertificateChain to validate that the
chain is properly constructed and trusted by a trust manager.

luni/src/test/java/java/net/URLConnectionTest.java
luni/src/test/java/javax/net/ssl/SSLContextTest.java
luni/src/test/java/javax/net/ssl/SSLEngineTest.java
luni/src/test/java/javax/net/ssl/SSLSessionContextTest.java
luni/src/test/java/javax/net/ssl/SSLSessionTest.java
luni/src/test/java/javax/net/ssl/SSLSocketTest.java
support/src/test/java/java/security/StandardNames.java
support/src/test/java/javax/net/ssl/TestSSLEnginePair.java
support/src/test/java/javax/net/ssl/TestSSLSocketPair.java

frameworks/base

Tracking change of SSLContextImpl to OpenSSLContextImpl

core/java/android/net/SSLCertificateSocketFactory.java
core/java/android/net/http/HttpsConnection.java
tests/CoreTests/android/core/SSLPerformanceTest.java
tests/CoreTests/android/core/SSLSocketTest.java

Tracking changes to TestSSLContext

core/tests/coretests/src/android/net/http/HttpsThroughHttpProxyTest.java

Change-Id: Ie35ebce89966dfce62c316f7fe7252bf06935680
rg/apache/harmony/xnet/provider/jsse/DefaultSSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/JSSEProvider.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
a5df574bf93265d41986b7e5474fb2fbb527c9f0 14-Jul-2010 Jesse Wilson <jessewilson@google.com> Merge "Cleanup HTTP retries." into dalvik-dev
c0372d90016d241ac979faa6fa1731f30b6f2a03 13-Jul-2010 Jesse Wilson <jessewilson@google.com> Cleanup HTTP retries.

We now do the right thing when redirects point us at a different
host or a different scheme.

Also...

Invert the parameter to AbstractHttpInputStream.endOfInput()
and HttpURLConnection.releaseSocket() to be positive 'reuse'
rather than negative 'close'. It makes the code in that method
read better.

Combine discardResponse() and endRequest(). The new method is
discardIntermediateResponse(). Cleanup how we handle intermediate
responses, and how those connections get recycled.

Remove HttpURLConnection's cached fields for proxy addresses.
Instead just update the proxy field when those fields change.
This attempts to make it clear that the names represent the
connected address and not the origin server's address. (This
is different when a proxy is in use.)

Document a consistent interpretation of the inherited protected
field 'connected'. Unfortunately it does not mean connected.

Change-Id: I8d4b65bffa5aeba353186b60cf951232f7762a18
ava/net/InetSocketAddress.java
ibcore/base/Streams.java
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/ChunkedInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/FixedLengthInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/http/UnknownLengthHttpInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
e8ca15fac603d1adb0fd9007ea6343584a15db67 12-Jul-2010 Elliott Hughes <enh@google.com> Fix Throwable.printStackTrace for exceptions without stack traces.

Also improve the documentation for fillInStackTrace.

Bug: http://code.google.com/p/android/issues/detail?id=9722
Change-Id: I9c539df136058e5300b33aa0d1104d567db71ad4
ava/lang/Throwable.java
16773d4f29a6cc3d0ab11f66ff15d606cffe4059 12-Jul-2010 Elliott Hughes <enh@google.com> Improved System.getProperty documentation.

We were claiming to support properties we don't (and aren't required to), but
missing many that we do (and are required to).

Change-Id: I39e5c5beb2e341c690187557b4dd1bce369952da
ava/lang/System.java
ccbe3404e0691dab506d017550658e8e5974c83e 10-Jul-2010 Elliott Hughes <enh@google.com> Use 'dst' (or an even more appropriate name where possible) rather than 'dest'.

(The ArrayIndexOutOfBoundsException for System.arraycopy already talks
about 'dst' and 'dstPos'.)

Change-Id: Iba9415dd4a9ec3b457938ea4469b4a0024bab6e4
ava/io/File.java
ava/io/PipedOutputStream.java
ava/lang/AbstractStringBuilder.java
ava/lang/System.java
ava/math/Division.java
ava/net/InetAddress.java
ava/nio/ByteBuffer.java
ava/nio/CharArrayBuffer.java
ava/nio/CharBuffer.java
ava/nio/CharSequenceAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DoubleArrayBuffer.java
ava/nio/DoubleBuffer.java
ava/nio/FloatArrayBuffer.java
ava/nio/FloatBuffer.java
ava/nio/HeapByteBuffer.java
ava/nio/IntArrayBuffer.java
ava/nio/IntBuffer.java
ava/nio/LongArrayBuffer.java
ava/nio/LongBuffer.java
ava/nio/ShortArrayBuffer.java
ava/nio/ShortBuffer.java
ava/util/jar/Manifest.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/util/InputStreamHelper.java
rg/apache/harmony/xnet/provider/jsse/HandshakeIODataStream.java
99a8c7aecaaa5eb4278ef2b839f7c1648a8c8ad7 09-Jul-2010 Elliott Hughes <enh@google.com> Merge "Stop Matcher from copying its input onto the native heap." into dalvik-dev
da289bcd0a9e207cc03c752f7c21c9004056e179 09-Jul-2010 Jesse Wilson <jessewilson@google.com> Address feedback from change 57066,
Rewrite the main request retry loop of HttpURLConnection.

Change-Id: I7e10e356614970971253f2e3f60d173a2e5433d4
ava/net/HttpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/ChunkedInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/ChunkedOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/FixedLengthInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/http/RetryableOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/UnknownLengthHttpInputStream.java
e3836e959fe04ab6c0dcda61cc585e35c82317b8 09-Jul-2010 Jesse Wilson <jessewilson@google.com> Merge "Rewrite the main request retry loop of HttpURLConnection." into dalvik-dev
db54706229ed194dbe53316fc74b1f326154137c 09-Jul-2010 Carl Shapiro <cshapiro@google.com> Merge "Add a distinct field to thread pending references together." into dalvik-dev
ffd579b668428272b78f5c6c64f9c89766f37c1a 09-Jul-2010 Jesse Wilson <jessewilson@google.com> Rewrite the main request retry loop of HttpURLConnection.

We had problems where HTTP auth failures weren't eligible
for automatic retries, particularly when HTTP post was
in use.

This fixes that problem and generally cleans up the HTTP
request loop. In particular:
- Be more careful about keeping state about whether
we've sent a request or a request header.
- Document the nuanced behavior around when headers are
transmitted.
- Simplify the daisy-chain of methods. Formerly we had
sendReqeust, writeRequest, doRequest, and doRequestInternal.
We now have more intention-revealing method names.
- Manage reentrant calls to doRequest(). Previously weird
things would happen, such as the following chain of calls:
doRequest()
doRequestInternal()
sendRequest()
readServerResponse()
maybeCache()
ResponseCache.put()
getHeaders()
doRequest()
Things are now more straight forward and retrieveResponse()
initializes everything.
- Throw HttpRetryException when we should.

Also moving inner HttpOutputStreams into their own classes and
splitting DefaultHttpOutputStream into ChunkedOutputStream and
RetryableOutputStream.

Change-Id: I5c1da717f0dee7ecc896e51701b702e535867417
ava/net/HttpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/ChunkedOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/FixedLengthOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/http/RetryableOutputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
c1d2d99619f44fb5fea07744bc34de725e807f9d 09-Jul-2010 Carl Shapiro <cshapiro@google.com> Add a distinct field to thread pending references together.

Presently, reference objects discovered during a trace are threaded
together using the queueNext field. This field is also used by the
reference queue class to thread together its enqueued objects.

When the garbage collector is run concurrently, a user may enqueue a
reference object simultaneously discovered by the trace. This will
corrupt the pendingNext values by aliasing to a reference queue.

To avoid this problem, a forthcoming VM change will use this new field
to thread pending references. If the garbage collector discovers that
a pending reference has been added to a reference queue it will short
circuit the reference processing of that object.

Change-Id: I280cc4a4fc4abd67dd80add1969aed12133c9369
ava/lang/ref/Reference.java
b7eec62f6db198a76b67d7915b03e59189c6df4f 02-Jul-2010 Brian Carlstrom <bdc@google.com> TestKeyStore only use RSA by default & fixing SSLEngine client auth with DSA client and RSA server

Summary:

Goal here was to just make most tests faster by only having
TestKeyStore create RSA keys by default. However, when I did that
SSLEngineTest#test_SSLEngine_clientAuth started working, so I ended up
investigating a much deeper issue with DSA client authentication
against an RSA SSLEngine server.

Details:

Changed the TestKeyStore.get singleton to only contain RSA
keys. TestKeyStore.create now requires the caller enumerate what
keys they want if they need more than that or an alternative.

support/src/test/java/javax/net/ssl/TestKeyStore.java

Changed test_SSLSocket_getSupportedCipherSuites_connect to
explicitly request RSA and DSA keys since it needs both to try
connecting all possible cipher suites.

luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Fixing SSLEngine client authentication when server uses RSA but client uses DSA

Fixed java.net.ssl.SSLEngineTest#test_SSLEngine_clientAuth

expectations/knownfailures.txt

Added CiperSuite.authType field which contains the algorithm name
such as RSA, DSA, DH, that the client will use to authenticate the
server. Like the cipherName, hmacName, and hashName, this is
logically derivable from the the CiperSuite.KEY_EXCHANGE_*, but we
remember it to avoid repeatedly doing large cascading "if" tests to
determine which key algorithm should be used for each
case.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CipherSuite.java

Fixed a number of client certificate authentication bugs in SSLEngine
- Changed ClientHandshakeImpl's in the SSL/Tls Certificate message
code to mirror ServerHandshakeImpl's implementation to properly
use chooseEngineClientAlias in the SSLEngine case.
- Changed to use the client certifcates key algorithm for computing
the signature for the SSL/TLS CertificateVerify
message. Previously we used the cipher suites negoitated key
exchange method, but if the client may select a certificate with
a different algorithm if the server provides a CA for another
algorithm.
- Also changed to use CipherSuite.isAnonymous in two places rather
than the inlined equivalent.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java

Fixed client authentication to use the client's certificate (not
the server's) to do verify the CertificateVerify message signature.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java

Fixed bug in DigitalSignature which did not Signature.update in
verifySignature, so it could never have properly authenticated DSA
signatures.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/DigitalSignature.java

Added CertificateMessage getAuthType convenience

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CertificateMessage.java

Made CertificateRequest certificate_authorities final, found we were double allocating it

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CertificateRequest.java

Cleaning up imports of HandshakeProtocol while working on its subclasses.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java

Cleaned up while looking at X509KeyManager implementations while debugging.

support/src/test/java/org/apache/harmony/xnet/tests/support/X509KeyManagerImpl.java

Change-Id: I74b98754c11000cbfea416f1571c380c9c67abf3
rg/apache/harmony/xnet/provider/jsse/CertificateMessage.java
rg/apache/harmony/xnet/provider/jsse/CertificateRequest.java
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/DigitalSignature.java
rg/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
0120b34f823a06763ef7b708249abf3c4bef40ed 08-Jul-2010 Elliott Hughes <enh@google.com> Remove dead code/unused variables from OSNetworkSystem.

This has never done anything, and we've no idea what -- if anything -- it was
meant to do, and it doesn't do anything upstream either, so out it goes...

Change-Id: I33a738700fd4811fe47089f0d0373ce9f0d525de
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
a233bbfcc80149b472c978ded50f9420936226fb 08-Jul-2010 Elliott Hughes <enh@google.com> Clean up OSFileSystem.

I accidentally opened this file instead of OSNetworkSystem, but took the
opportunity to move null pointer checking down into the JNI, where it doubles
as OOM checking. I've also added missing null checks to the JNI.

(Strictly, ScopedPrimitiveArray doesn't yet do the right thing in all cases,
it's ScopedUtfChars that does. An improved ScopedPrimitiveArray will be along
shortly...)

Also some cosmetic tidying.

Change-Id: Ie4d3a217332dae67a12db370246c7d87fe7edae4
rg/apache/harmony/luni/platform/OSFileSystem.java
5d40b59c6bba79dc978f173ad64cdfbd8a937018 08-Jul-2010 Elliott Hughes <enh@google.com> Clean up File.createTempFile and make Math.random thread-safe.

File.createTempFile has long annoyed me: using a SecureRandom but then always
incrementing by one is silly. Using a new Random is more random, more scalable,
and slightly faster than reusing a SecureRandom according to my benchmark.

Relatedly, access to the Random used by Math.random wasn't synchronized, which
is a bug.

I've also fixed a typo in a comment in a test. Woo!

Change-Id: Ief72ec0e378ed3d5807c278c589f7b0e44c21d3e
ava/io/File.java
ava/lang/Math.java
ab73941feb7f8677174cc97722201437edcb1299 03-Jul-2010 Jesse Wilson <jessewilson@google.com> Fix new String(String) to copy the backing array.

Adding documentation explaining the backing array, and
how it interacts with this copy constructor and substring().

Change-Id: I1044bcb614645e3f12c0701d5a883de6a65496f1
ava/lang/String.java
aecd669ba84f758222c374027df1cc6849d37eed 02-Jul-2010 Elliott Hughes <enh@google.com> Stop Matcher from copying its input onto the native heap.

This uses ICU 4.6 API that we've manually backported to Android's ICU 4.4.

Bug: 2777924
Change-Id: I799b3e621a8c87d560495bc3d7b48f2e11de9c60
ava/util/regex/Matcher.java
096aac7b8a607d3da237900f52cab1c5066bf992 01-Jul-2010 Jesse Wilson <jessewilson@google.com> Buffering the decoding of chunked encoding and HTTP headers.

Also cleanup of HttpConfiguration (renamed HttpConnection.Address),
including removing some dead code.

Also adding performance-run support to MockWebServer to permit
benchmarking.

I benchmarked different buffer sizes, and a buffer as small as 16 bytes
halved the runtime on some HTTP requests. Ultimately I chose a 128 byte
buffer, since that's the point of diminishing returns.

The following report shows benchmark results for 5 different buffer
sizes. Notice how our previous unbuffered behaviour was particularly
inefficient.

bodySize transferEncoding responseHeaders bufferSize ms logarithmic runtime
0 FIXED_LENGTH MINIMAL 0 5.44 =
0 FIXED_LENGTH MINIMAL 16 5.17 =
0 FIXED_LENGTH MINIMAL 128 5.06 =
0 FIXED_LENGTH MINIMAL 512 5.19 =
0 FIXED_LENGTH MINIMAL 1024 5.27 =
0 FIXED_LENGTH TYPICAL 0 14.61 ===========
0 FIXED_LENGTH TYPICAL 16 7.35 ====
0 FIXED_LENGTH TYPICAL 128 6.48 ===
0 FIXED_LENGTH TYPICAL 512 6.97 ====
0 FIXED_LENGTH TYPICAL 1024 6.92 ====
0 CHUNKED MINIMAL 0 5.72 ==
0 CHUNKED MINIMAL 16 5.26 =
0 CHUNKED MINIMAL 128 5.27 =
0 CHUNKED MINIMAL 512 5.16 =
0 CHUNKED MINIMAL 1024 5.31 =
0 CHUNKED TYPICAL 0 14.81 ===========
0 CHUNKED TYPICAL 16 7.30 ====
0 CHUNKED TYPICAL 128 6.62 ===
0 CHUNKED TYPICAL 512 6.51 ===
0 CHUNKED TYPICAL 1024 6.50 ===
1024 FIXED_LENGTH MINIMAL 0 5.47 =
1024 FIXED_LENGTH MINIMAL 16 5.40 =
1024 FIXED_LENGTH MINIMAL 128 5.43 =
1024 FIXED_LENGTH MINIMAL 512 5.40 =
1024 FIXED_LENGTH MINIMAL 1024 5.37 =
1024 FIXED_LENGTH TYPICAL 0 14.83 ===========
1024 FIXED_LENGTH TYPICAL 16 7.42 ====
1024 FIXED_LENGTH TYPICAL 128 6.50 ===
1024 FIXED_LENGTH TYPICAL 512 6.50 ===
1024 FIXED_LENGTH TYPICAL 1024 6.51 ===
1024 CHUNKED MINIMAL 0 6.12 ==
1024 CHUNKED MINIMAL 16 5.51 =
1024 CHUNKED MINIMAL 128 5.55 =
1024 CHUNKED MINIMAL 512 5.60 ==
1024 CHUNKED MINIMAL 1024 5.50 =
1024 CHUNKED TYPICAL 0 15.00 ===========
1024 CHUNKED TYPICAL 16 7.56 =====
1024 CHUNKED TYPICAL 128 6.86 ====
1024 CHUNKED TYPICAL 512 6.73 ===
1024 CHUNKED TYPICAL 1024 6.60 ===
1048576 FIXED_LENGTH MINIMAL 0 25.27 =================
1048576 FIXED_LENGTH MINIMAL 16 25.36 =================
1048576 FIXED_LENGTH MINIMAL 128 25.86 =================
1048576 FIXED_LENGTH MINIMAL 512 25.25 =================
1048576 FIXED_LENGTH MINIMAL 1024 32.51 ===================
1048576 FIXED_LENGTH TYPICAL 0 36.65 =====================
1048576 FIXED_LENGTH TYPICAL 16 27.43 ==================
1048576 FIXED_LENGTH TYPICAL 128 26.88 =================
1048576 FIXED_LENGTH TYPICAL 512 26.94 =================
1048576 FIXED_LENGTH TYPICAL 1024 33.13 ====================
1048576 CHUNKED MINIMAL 0 77.02 ============================
1048576 CHUNKED MINIMAL 16 51.32 ========================
1048576 CHUNKED MINIMAL 128 50.98 ========================
1048576 CHUNKED MINIMAL 512 51.82 ========================
1048576 CHUNKED MINIMAL 1024 50.40 ========================
1048576 CHUNKED TYPICAL 0 88.99 ==============================
1048576 CHUNKED TYPICAL 16 53.94 ========================
1048576 CHUNKED TYPICAL 128 53.03 ========================
1048576 CHUNKED TYPICAL 512 52.14 ========================
1048576 CHUNKED TYPICAL 1024 50.90 ========================

Benchmark source code is here:
http://code.google.com/p/dalvik/source/browse/trunk/benchmarks/regression/URLConnectionBenchmark.java

Change-Id: Ie3e754ab8497e6200f8b6e7f9c63c40a7d4784e2
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConfiguration.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnectionPool.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
5cd6df2f627e06f9b7f714181d70d3148a3d6c60 01-Jul-2010 Elliott Hughes <enh@google.com> Part 2 of the "new String"/String.getBytes performance work.

I didn't plan on a part 2, but my benchmark was bogus. I'd failed to take into
account the fact that the ICU code (which I was comparing against) has a higher
intercept but lower slope than the Java I replaced it with. This new code
offers the best of both worlds: low intercept (start-up cost) and low slope
(per-byte/char cost).

The bad news is that this means I'm adding more native code. In addition to the
improved benchmark, I'll commit a benchmark that contains the pure Java
implementations so we can see when the JIT advances to the point that we can
retire this native code.

Change-Id: Ibac24c2e3deed216bd492acf2fac7554d3f96d85
ava/lang/String.java
ava/nio/charset/Charset.java
ava/nio/charset/Charsets.java
7329fa972d9c20777444e5e1b13169d700de6567 29-Jun-2010 Brian Carlstrom <bdc@google.com> Fixes to support new dalvik.googlecode.com benchmarks

The following new benchmarks where tested with the below changes:
- DigestBenchmark
- MessageDigestBenchmark
- SSLSocketBenchmark
- SignatureBenchmark

Fix package name of OpenSSLProvider

luni/src/main/java/java/security/security.properties

Restore Java (vs OpenSSL) SSLSocket wrappers on SSLEngine for benchmarking

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLServerSocketFactoryImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLServerSocketImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSocketFactoryImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSocketInputStream.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSocketOutputStream.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSocketWrapper.java

Restore HandshakeProtocol.socketOwner code for SSLSocket to function

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java

Remove unneeded OpenSSLMessageDigestJDK.getInstance since these are
registered via OpenSSLProvider and SHA224 which is not part of the RI.
We had already removed the BouncyCastle version of this.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
luni/src/test/java/tests/targets/security/AllTests.java
luni/src/test/java/tests/targets/security/MessageDigestTestSHA224.java
luni/src/test/java/tests/targets/security/SignatureTestSHA224withRSA.java

Change-Id: I7daae7f0d9f50acad6df9157eac1b0133af83062
ava/security/security.properties
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketInputStream.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketOutputStream.java
rg/apache/harmony/xnet/provider/jsse/SSLSocketWrapper.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
deb236fb06f2a14861e7d40dea959f181cd5cf28 29-Jun-2010 Jesse Wilson <jessewilson@google.com> Eagerly read the chunked header when doing so (probably) won't block.

Some streams stop reading early, which was causing data corruption
(already fix) and preventing stream reuse (fixed in this change).

Change-Id: I7456306a6242a3269648a4309c49735a7fee29c9
http://code.google.com/p/android/issues/detail?id=7059
rg/apache/harmony/luni/internal/net/www/protocol/http/ChunkedInputStream.java
88010d88b9d5ee7fa6b5a6e761977626c4e320f4 29-Jun-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing chunked encoding to throw proper exceptions on malformed input." into dalvik-dev
6906b0c12dcf3216883d0373973a252812a20d32 29-Jun-2010 Jesse Wilson <jessewilson@google.com> Fixing chunked encoding to throw proper exceptions on malformed input.

http://code.google.com/p/android/issues/detail?id=4030

This moves ChunkedInputStream and three others to be top-level
classes. These classes stand-alone; and moving them removes
visibility of much inner state in AbstractHttpInputStream.

Change-Id: I7ffc5b0e020b4f5218aa64c5320be2bec8941f7e
rg/apache/harmony/luni/internal/net/www/protocol/http/AbstractHttpInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/ChunkedInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/FixedLengthInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/http/UnknownLengthHttpInputStream.java
59a31b8faee8d7cdeaa7bdbf3006654b23ad1692 29-Jun-2010 Elliott Hughes <enh@google.com> Merge "Stop using CharsetDecoder when reading JAR manifests." into dalvik-dev
bfdb06dfa90bad70f55ae5c302a699fe28184b81 29-Jun-2010 Elliott Hughes <enh@google.com> Stop using CharsetDecoder when reading JAR manifests.

This gives us simpler code and a 2x speedup reading the JARs in
/system/framework. No new test failures.

Bug: 2772041
Change-Id: I750616923580196614d75db6e9e38984a66651f2
ava/lang/UnsafeByteSequence.java
ava/util/jar/InitManifest.java
ava/util/jar/Manifest.java
51e468abf2628ce964d3657042f3ac8f2c947504 26-Jun-2010 Jesse Wilson <jessewilson@google.com> Fixing response cache and connection reuse for HTTP client.

The code splits our HTTP input streams into four (!) inner
classes. The base class takes care of ensuring split() and
single byte reads get cached and call disconnect() as necessary.
Our code closes the cache when the stream is exhausted; this
is different from the RI which closes it when in.close() is
called.

When a fixed length input stream of length 0 is received,
we cache it immediately. This has behavior consequences for
CONNECT, which needs the otherwise-recyclable connection to
stick around.

This adds explicit shutdown capabilities to MockWebServer.
This is necessary now that we don't guarantee all enqueued
responses will be requested.

We still need test coverage for malformed chunk sizes.

Change-Id: Iaf866af4fc1d76faea559df267a4bde6fdfa1d83
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
12cd1f00c2fa1a7f37bf644cecdf7588bdc0b0a9 23-Jun-2010 Brian Carlstrom <bdc@google.com> Remove libcore's dependency on bouncycastle

external/bouncycastle
- Change to be the primary build for bouncycastle sources (as opposed to part of libcore)
- Moved OpenSSLMessageDigest from libcore to OpenSSLDigest
It uses NativeCrypto API from core, but implements a bouncycastle specific interface
- restored registration of bouncycastle MessageDigests for SHA-1, SHA-256, MD5
OpenSSLProvider versions take precedence, but explicit provider of "BC" allows choice
- enabled native versions of SHA-384 and SHA-512
- pruned MD4 implementation

frameworks/base
- frameworks and CoreTests modules now depend on bouncycastle
- update preloades classes for NativeBN package change
- moved CryptoTest to libcore

libcore
- core now builds without bouncycastle sources
- core-tests, core-tests-support, core-tests-supportlib now depend on bouncycastle
- removed libcore/openssl directory, moving NativeBN to java/math
- minor cleanup of Provider, Security, Services style while working on ProviderTest
- added new OpenSSLProvider registered as first provider to have
priority over the others to ensure our native implementations are used
- moved BouncyCastle to have priority as a provider over Harmony
- JarVerifier and JarUtils now implicitly use OpenSSLMessageDigest
- Cleanedup OpenSSLSignature, implementation needs to be finished to move to OpenSSLProvider
- To avoid using PEMWriter from BouncyCastle, NativeCrypto now takes binary encoded certs and keys
This is more efficient as well avoiding the base64 decode/encode of the binary data
- removed SHA-224 to match the RI

packages/apps/CertInstaller
- CertificateInstaller module now depends on bouncycastle
this is the only app to depend on bouncycastle

system/core
- updated BOOTCLASSPATH

Change-Id: I6205366b12baec4331b4a76e2c85d8324bf64b2c
ava/math/BigInt.java
ava/math/NativeBN.java
ava/security/Provider.java
ava/security/Security.java
ava/security/security.properties
ava/util/jar/JarVerifier.java
rg/apache/harmony/security/fortress/SecurityAccess.java
rg/apache/harmony/security/fortress/Services.java
rg/apache/harmony/security/provider/cert/X509CertImpl.java
rg/apache/harmony/security/utils/JarUtils.java
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/JSSEProvider.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigest.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
768595838705d7e03921f8eb259e1f3a4b13b6d9 26-Jun-2010 Elliott Hughes <enh@google.com> Merge "Rewrite java.util.regex to use ICU's C++ API." into dalvik-dev
e377c5a424823bacf28e8ffb2a2f02bfe46d4a2b 26-Jun-2010 Elliott Hughes <enh@google.com> Rewrite java.util.regex to use ICU's C++ API.

I've also removed a bunch of dead code and changed the interface to reduce the
number of JNI transitions. Error checking is more uniform, various special
cases have been removed, and we pass all the tests referenced by
libcore/luni/src/test/java/tests/regex/AllTests.java for the first time.

This should also be a stepping-stone to fixing http://b/2777924, removing the
need to copy the input string to the native heap.

Bug: 2587040
Change-Id: I62685a2384db441cd02df159e117187f3175e10d
om/ibm/icu4jni/regex/NativeRegEx.java
ava/util/regex/Matcher.java
ava/util/regex/Pattern.java
a86610254b4fe8dcd7a57986c8115f346d3fe067 25-Jun-2010 Barry Hayes <bhayes@google.com> Merge "Remove the vmData field from java.lang.ref.Reference." into dalvik-dev
870b23b3febc851c9cd2321f82a9971a34093e77 24-Jun-2010 Elliott Hughes <enh@google.com> Fix String.replace("", _).

Bug: http://code.google.com/p/android/issues/detail?id=8807
Change-Id: Id587df266a547ff17db4dbb32493bed394a7c51e
ava/lang/String.java
095cbb8709ed62713b64f8dfe91164507ac7a65b 24-Jun-2010 Elliott Hughes <enh@google.com> Merge "Use Charset.defaultCharset() instead of "file.encoding"." into dalvik-dev
46ff2ede6c9f5ad431303d388986ec3d72b2fbd3 24-Jun-2010 Elliott Hughes <enh@google.com> Use Charset.defaultCharset() instead of "file.encoding".

It's cheaper, simpler, and we've already found that all bets are off in the RI
if you try to change "file.encoding" at runtime anyway (in terms of whether any
given class notices the change).

Also revert a premature optimization that breaks tests; saving a single
comparison before calling code that takes tens of microseconds is
counterproductive. (I have a bug to make that code faster, but it's never
going to be fast enough to worry about a single comparison.)

Also use the canonical name of ISO-8859-1, and use Charsets.UTF_8 in yet
another place I missed.

Change-Id: Ic15c2bae2f2ed57968ee7e34652f564a1420b458
ava/io/InputStreamReader.java
ava/io/OutputStreamWriter.java
ava/io/PrintStream.java
ava/lang/Runtime.java
ava/util/Properties.java
3b777d1b4c1dc5d4c817fb70167b02a4f7e15092 24-Jun-2010 Elliott Hughes <enh@google.com> A couple of intention-revealing renames I missed in the last commit.

Change-Id: Ifb16948b201d3f5e2359550d36ef66b213b0ac4c
ava/text/SimpleDateFormat.java
ibcore/icu/TimeZones.java
21557bb6a8f35a2f9889adba449cac950c9d41b9 23-Jun-2010 Elliott Hughes <enh@google.com> Add TimeZones.forLocale, plus some tidying.

The new feature here is TimeZones.forLocale and the accompanying JNI. I've also
taken the liberty of pulling the time zone stuff out of ICU.java and ICU.cpp,
and I've moved some of the ICU-related code I've written recently (NativeIDN,
NativeNormalizer, and NativePluralRules) into a new libcore.icu package.

I've also renamed various things so the implementation details use the same
terminology as the thing they're implementing.

Bug: 2790386
Change-Id: Ie39a2f5f7023e8e29864de15790be8a660f5cba6
om/ibm/icu4jni/text/NativeIDN.java
om/ibm/icu4jni/text/NativeNormalizer.java
om/ibm/icu4jni/text/NativePluralRules.java
om/ibm/icu4jni/util/ICU.java
ava/net/IDN.java
ava/text/DateFormatSymbols.java
ava/text/Normalizer.java
ava/text/SimpleDateFormat.java
ava/util/TimeZone.java
ibcore/icu/NativeIDN.java
ibcore/icu/NativeNormalizer.java
ibcore/icu/NativePluralRules.java
ibcore/icu/TimeZones.java
e608e409843d2a0bb356522f2781a00cb0493cec 23-Jun-2010 Barry Hayes <bhayes@google.com> Remove the vmData field from java.lang.ref.Reference.

It is no longer needed.

Change-Id: If0e8ff7438c31cc2f88be401d826b0efba308ff1
ava/lang/ref/Reference.java
561247df42b6d84bf0fae8412b7547ead01bf4f5 23-Jun-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing various test failures in Harmony's ArrayListTest." into dalvik-dev
a00b0e541a77ec76e0a327b2442147869c232ed0 23-Jun-2010 Jesse Wilson <jessewilson@google.com> Fixing various test failures in Harmony's ArrayListTest.

Alongside this are some fixes to Harmony's test, which is too
aggressive about checking that exceptions have messages.

Change-Id: I1b71066d89855770d3f733e4065bd62050b0cb91
ava/util/ArrayList.java
1d7a5c66d9973f3383e7e4f9f8be5262161a1421 23-Jun-2010 Elliott Hughes <enh@google.com> Fix Math.atan2 documentation.

The StrictMath.atan2 documentation is already correct.

Bug: http://code.google.com/p/android/issues/detail?id=9260
Change-Id: Ibd86cf7fe73a120578840dce4126a902a827fb40
ava/lang/Math.java
e7163561816da4afa9c800b53425007856fdbb9c 23-Jun-2010 Elliott Hughes <enh@google.com> Improve Formatter exception detail messages and fix test expectations.

Bug: 2788945
Change-Id: I959df2c338a4d85497a23705b553f0c749ef1070
ava/util/DuplicateFormatFlagsException.java
ava/util/FormatFlagsConversionMismatchException.java
ava/util/Formatter.java
ava/util/IllegalFormatCodePointException.java
ava/util/IllegalFormatConversionException.java
ava/util/IllegalFormatFlagsException.java
ava/util/IllegalFormatPrecisionException.java
ava/util/IllegalFormatWidthException.java
ava/util/MissingFormatArgumentException.java
ava/util/MissingFormatWidthException.java
ava/util/UnknownFormatConversionException.java
ava/util/UnknownFormatFlagsException.java
3879e020661c580a3ff58cbe6af079a21e91e335 23-Jun-2010 Elliott Hughes <enh@google.com> Merge "Minor java.util.regex.Pattern documentation fixes." into dalvik-dev
c78823c8b75283e8013b2665311527ef5e0c0228 23-Jun-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing ProcessBuilder.environment() to maintain a mutable copy." into dalvik-dev
9f05b37e3f0a1c0d30e1a64e1d5115e87fe03444 23-Jun-2010 Jesse Wilson <jessewilson@google.com> Fixing ProcessBuilder.environment() to maintain a mutable copy.

Previously we were failing with "UnsupportedOperationException: Can't modify environment"
when trying to set the env on a forked process.

Change-Id: Id42b7d431574925bc29a2bd4e16667f3cca5fdb5
ava/lang/ProcessBuilder.java
069774ea75c32440ad39f54c9a77d0eda6b20b53 23-Jun-2010 Elliott Hughes <enh@google.com> Minor java.util.regex.Pattern documentation fixes.

Change-Id: If6a4afc8c9365cfce42fcaef00f19b0597a068bf
ava/util/regex/Pattern.java
151a7022d25b58cc2788f0cbe2922f9653e9ee7c 23-Jun-2010 Elliott Hughes <enh@google.com> String should throw UnsupportedEncodingException if Charset.forName fails.

Bug: 2788958
Change-Id: I1be003c58338a63c34294dfe0498c3f5ede10996
ava/lang/String.java
5dd6c39e4ce96fc0050988b7e487c237aacc765d 23-Jun-2010 Elliott Hughes <enh@google.com> Merge "Stop using GetStringChars/ReleaseStringChars." into dalvik-dev
4e3714f7fe8ac7f6b20896038e491d378f4e6464 22-Jun-2010 Elliott Hughes <enh@google.com> Stop using GetStringChars/ReleaseStringChars.

Also fix unused variable warnings in "ExpatParser.cpp".

This fixes one actual bug in the regular expression code where we weren't
returning after throwing an exception from JNI, in a case where executing
the remaining code in the native method would cause a crash.

Change-Id: Ib5ce7ea9a3b6476cf47bda2384d5ba43579c785a
rg/apache/harmony/xml/ExpatParser.java
afa010c8a6456c1b8375cd3e0587deb43ff4a963 22-Jun-2010 Brian Carlstrom <bdc@google.com> Merge "Move IndexedPKIXParameters from external/bouncycastle to libcore to avoid cyclic build dependency" into dalvik-dev
2da83dc205e701b8dbe2cb84c54c2f8bb1073869 22-Jun-2010 Elliott Hughes <enh@google.com> Stop using CharsetEncoder in File.newCString.

Also reuse Charsets.UTF_8.

Bug: 2772041
Change-Id: Ie1e910b519b365eb581b22b147bb97c5faf74b65
ava/io/File.java
b1b8fbeeae579e9f49c41166bb5d9b2e60b75438 22-Jun-2010 Elliott Hughes <enh@google.com> Switch Base64 over to Charset.

Using Charset is faster and removes the need to handle impossible run-time
errors.

Change-Id: I0d0531b5f2c296725aa97ce4258264c694f640a5
ava/util/prefs/AbstractPreferences.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/util/Base64.java
06fb2e026572e4f67ac80c927d30e9be787bbe6e 22-Jun-2010 Brian Carlstrom <bdc@google.com> Move IndexedPKIXParameters from external/bouncycastle to libcore to avoid cyclic build dependency

Change-Id: I65292321560c9f4551dc79fc7c6795f093638bbf
rg/apache/harmony/xnet/provider/jsse/IndexedPKIXParameters.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
2304b91fe0b80e61502c40c64a89766336702637 21-Jun-2010 Jean-Baptiste Queru <jbq@google.com> am 5b1fb173: resolved conflicts for merge of c4c9ba1d to master

Merge commit '5b1fb17362830a90aff5a9a5ad41d13a39bc7533' into dalvik-dev

* commit '5b1fb17362830a90aff5a9a5ad41d13a39bc7533':
New implementation for java.lang.Runtime's availableProcessors().
5b1fb17362830a90aff5a9a5ad41d13a39bc7533 21-Jun-2010 Jean-Baptiste Queru <jbq@google.com> resolved conflicts for merge of c4c9ba1d to master

Change-Id: I9103e220058fbc348b821f321b5761ffd2d5800c
72b87f0a44f75b050f6d7eec48de57077742e05e 19-Jun-2010 Elliott Hughes <enh@google.com> Merge "Add support for ICU's PluralRules." into dalvik-dev
7775409378596fd980dbd576f9738d337bd8a76d 18-Jun-2010 Elliott Hughes <enh@google.com> Add support for ICU's PluralRules.

Note that this doesn't address the original submitter's complaint: ICU agrees
that zero isn't a special case in English. What this does is allow us to fix
getQuantityString to work with languages other than English and Czech (which
currently have hard-coded implementations in frameworks/base).

Bug: 2663392
Change-Id: I4cf80a61cd5183636381511d6b860d2059f788ee
om/ibm/icu4jni/text/NativePluralRules.java
e32b21f14d52bac429a9c54fe031f9e92c911d64 18-Jun-2010 Jesse Wilson <jessewilson@google.com> Implementing ZoneInfo.hasSameRules().

Moving TimeZoneTest to OldTimeZoneTest and removing test methods
that are duplicated between libcore and Harmony.

Also adding Objects.equals() to make implementing this easy,
and removing redundant time zone tests. I did a few searches
to find candidate code that could take advantage of this new
utility method and adopted it there.

Change-Id: I133298f1b36d755bd35c1ad0dc0ab366fd164270
ava/io/File.java
ava/io/FilePermission.java
ava/net/HttpCookie.java
ava/net/URLStreamHandler.java
ava/security/Identity.java
ava/text/MessageFormat.java
ava/util/HashMap.java
ava/util/TimeZone.java
ava/util/TreeMap.java
ava/util/logging/Level.java
ibcore/base/Objects.java
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/security/asn1/DerOutputStream.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
845cc0816af30c6753dee2fb33f8c3ece638bd66 17-Jun-2010 Brian Carlstrom <bdc@google.com> libcore/luni/src/main/java/org/bouncycastle moved to external/bouncycastle/src/main/java/org/bouncycastle

Change-Id: I288db1607ad6f45dea71e7496d4d94c9707779f6
rg/bouncycastle/asn1/ASN1Choice.java
rg/bouncycastle/asn1/ASN1Collection.java
rg/bouncycastle/asn1/ASN1Encodable.java
rg/bouncycastle/asn1/ASN1EncodableVector.java
rg/bouncycastle/asn1/ASN1InputStream.java
rg/bouncycastle/asn1/ASN1Null.java
rg/bouncycastle/asn1/ASN1OctetString.java
rg/bouncycastle/asn1/ASN1OutputStream.java
rg/bouncycastle/asn1/ASN1Sequence.java
rg/bouncycastle/asn1/ASN1Set.java
rg/bouncycastle/asn1/ASN1TaggedObject.java
rg/bouncycastle/asn1/BERConstructedOctetString.java
rg/bouncycastle/asn1/BERConstructedSequence.java
rg/bouncycastle/asn1/BERInputStream.java
rg/bouncycastle/asn1/BERNull.java
rg/bouncycastle/asn1/BEROutputStream.java
rg/bouncycastle/asn1/BERSequence.java
rg/bouncycastle/asn1/BERSet.java
rg/bouncycastle/asn1/BERTaggedObject.java
rg/bouncycastle/asn1/DERApplicationSpecific.java
rg/bouncycastle/asn1/DERBMPString.java
rg/bouncycastle/asn1/DERBitString.java
rg/bouncycastle/asn1/DERBoolean.java
rg/bouncycastle/asn1/DERConstructedSequence.java
rg/bouncycastle/asn1/DERConstructedSet.java
rg/bouncycastle/asn1/DEREncodable.java
rg/bouncycastle/asn1/DEREncodableVector.java
rg/bouncycastle/asn1/DEREnumerated.java
rg/bouncycastle/asn1/DERGeneralString.java
rg/bouncycastle/asn1/DERGeneralizedTime.java
rg/bouncycastle/asn1/DERIA5String.java
rg/bouncycastle/asn1/DERInputStream.java
rg/bouncycastle/asn1/DERInteger.java
rg/bouncycastle/asn1/DERNull.java
rg/bouncycastle/asn1/DERNumericString.java
rg/bouncycastle/asn1/DERObject.java
rg/bouncycastle/asn1/DERObjectIdentifier.java
rg/bouncycastle/asn1/DEROctetString.java
rg/bouncycastle/asn1/DEROutputStream.java
rg/bouncycastle/asn1/DERPrintableString.java
rg/bouncycastle/asn1/DERSequence.java
rg/bouncycastle/asn1/DERSet.java
rg/bouncycastle/asn1/DERString.java
rg/bouncycastle/asn1/DERT61String.java
rg/bouncycastle/asn1/DERTaggedObject.java
rg/bouncycastle/asn1/DERTags.java
rg/bouncycastle/asn1/DERUTCTime.java
rg/bouncycastle/asn1/DERUTF8String.java
rg/bouncycastle/asn1/DERUniversalString.java
rg/bouncycastle/asn1/DERUnknownTag.java
rg/bouncycastle/asn1/DERVisibleString.java
rg/bouncycastle/asn1/OIDTokenizer.java
rg/bouncycastle/asn1/OrderedTable.java
rg/bouncycastle/asn1/cmp/PKIFailureInfo.java
rg/bouncycastle/asn1/cmp/PKIFreeText.java
rg/bouncycastle/asn1/cmp/PKIStatus.java
rg/bouncycastle/asn1/cmp/PKIStatusInfo.java
rg/bouncycastle/asn1/cms/Attribute.java
rg/bouncycastle/asn1/cms/AttributeTable.java
rg/bouncycastle/asn1/cms/CMSAttributes.java
rg/bouncycastle/asn1/cms/CMSObjectIdentifiers.java
rg/bouncycastle/asn1/cms/CompressedData.java
rg/bouncycastle/asn1/cms/ContentInfo.java
rg/bouncycastle/asn1/cms/EncryptedContentInfo.java
rg/bouncycastle/asn1/cms/EnvelopedData.java
rg/bouncycastle/asn1/cms/IssuerAndSerialNumber.java
rg/bouncycastle/asn1/cms/KEKIdentifier.java
rg/bouncycastle/asn1/cms/KEKRecipientInfo.java
rg/bouncycastle/asn1/cms/KeyAgreeRecipientInfo.java
rg/bouncycastle/asn1/cms/KeyTransRecipientInfo.java
rg/bouncycastle/asn1/cms/OriginatorIdentifierOrKey.java
rg/bouncycastle/asn1/cms/OriginatorInfo.java
rg/bouncycastle/asn1/cms/OriginatorPublicKey.java
rg/bouncycastle/asn1/cms/OtherKeyAttribute.java
rg/bouncycastle/asn1/cms/OtherRecipientInfo.java
rg/bouncycastle/asn1/cms/PasswordRecipientInfo.java
rg/bouncycastle/asn1/cms/RecipientIdentifier.java
rg/bouncycastle/asn1/cms/RecipientInfo.java
rg/bouncycastle/asn1/cms/RecipientKeyIdentifier.java
rg/bouncycastle/asn1/cms/SignedData.java
rg/bouncycastle/asn1/cms/SignerIdentifier.java
rg/bouncycastle/asn1/cms/SignerInfo.java
rg/bouncycastle/asn1/cms/Time.java
rg/bouncycastle/asn1/cryptopro/CryptoProObjectIdentifiers.java
rg/bouncycastle/asn1/esf/CommitmentTypeIdentifier.java
rg/bouncycastle/asn1/esf/CommitmentTypeIndication.java
rg/bouncycastle/asn1/esf/CommitmentTypeQualifier.java
rg/bouncycastle/asn1/esf/ESFAttributes.java
rg/bouncycastle/asn1/esf/SignerLocation.java
rg/bouncycastle/asn1/ess/ContentIdentifier.java
rg/bouncycastle/asn1/ess/ESSCertID.java
rg/bouncycastle/asn1/ess/OtherCertID.java
rg/bouncycastle/asn1/ess/OtherSigningCertificate.java
rg/bouncycastle/asn1/ess/SigningCertificate.java
rg/bouncycastle/asn1/gnu/GNUObjectIdentifiers.java
rg/bouncycastle/asn1/iana/IANAObjectIdentifiers.java
rg/bouncycastle/asn1/icao/DataGroupHash.java
rg/bouncycastle/asn1/icao/ICAOObjectIdentifiers.java
rg/bouncycastle/asn1/icao/LDSSecurityObject.java
rg/bouncycastle/asn1/misc/IDEACBCPar.java
rg/bouncycastle/asn1/misc/MiscObjectIdentifiers.java
rg/bouncycastle/asn1/misc/NetscapeCertType.java
rg/bouncycastle/asn1/misc/NetscapeRevocationURL.java
rg/bouncycastle/asn1/misc/VerisignCzagExtension.java
rg/bouncycastle/asn1/mozilla/PublicKeyAndChallenge.java
rg/bouncycastle/asn1/nist/NISTObjectIdentifiers.java
rg/bouncycastle/asn1/ocsp/BasicOCSPResponse.java
rg/bouncycastle/asn1/ocsp/CertID.java
rg/bouncycastle/asn1/ocsp/CertStatus.java
rg/bouncycastle/asn1/ocsp/CrlID.java
rg/bouncycastle/asn1/ocsp/OCSPObjectIdentifiers.java
rg/bouncycastle/asn1/ocsp/OCSPRequest.java
rg/bouncycastle/asn1/ocsp/OCSPResponse.java
rg/bouncycastle/asn1/ocsp/OCSPResponseStatus.java
rg/bouncycastle/asn1/ocsp/Request.java
rg/bouncycastle/asn1/ocsp/ResponderID.java
rg/bouncycastle/asn1/ocsp/ResponseBytes.java
rg/bouncycastle/asn1/ocsp/ResponseData.java
rg/bouncycastle/asn1/ocsp/RevokedInfo.java
rg/bouncycastle/asn1/ocsp/ServiceLocator.java
rg/bouncycastle/asn1/ocsp/Signature.java
rg/bouncycastle/asn1/ocsp/SingleResponse.java
rg/bouncycastle/asn1/ocsp/TBSRequest.java
rg/bouncycastle/asn1/oiw/OIWObjectIdentifiers.java
rg/bouncycastle/asn1/pkcs/Attribute.java
rg/bouncycastle/asn1/pkcs/AuthenticatedSafe.java
rg/bouncycastle/asn1/pkcs/CertBag.java
rg/bouncycastle/asn1/pkcs/CertificationRequest.java
rg/bouncycastle/asn1/pkcs/CertificationRequestInfo.java
rg/bouncycastle/asn1/pkcs/ContentInfo.java
rg/bouncycastle/asn1/pkcs/DHParameter.java
rg/bouncycastle/asn1/pkcs/EncryptedData.java
rg/bouncycastle/asn1/pkcs/EncryptedPrivateKeyInfo.java
rg/bouncycastle/asn1/pkcs/EncryptionScheme.java
rg/bouncycastle/asn1/pkcs/IssuerAndSerialNumber.java
rg/bouncycastle/asn1/pkcs/KeyDerivationFunc.java
rg/bouncycastle/asn1/pkcs/MacData.java
rg/bouncycastle/asn1/pkcs/PBES2Algorithms.java
rg/bouncycastle/asn1/pkcs/PBES2Parameters.java
rg/bouncycastle/asn1/pkcs/PBKDF2Params.java
rg/bouncycastle/asn1/pkcs/PKCS12PBEParams.java
rg/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers.java
rg/bouncycastle/asn1/pkcs/Pfx.java
rg/bouncycastle/asn1/pkcs/PrivateKeyInfo.java
rg/bouncycastle/asn1/pkcs/RC2CBCParameter.java
rg/bouncycastle/asn1/pkcs/RSAESOAEPparams.java
rg/bouncycastle/asn1/pkcs/RSAPrivateKeyStructure.java
rg/bouncycastle/asn1/pkcs/RSASSAPSSparams.java
rg/bouncycastle/asn1/pkcs/SafeBag.java
rg/bouncycastle/asn1/pkcs/SignedData.java
rg/bouncycastle/asn1/pkcs/SignerInfo.java
rg/bouncycastle/asn1/teletrust/TeleTrusTObjectIdentifiers.java
rg/bouncycastle/asn1/tsp/Accuracy.java
rg/bouncycastle/asn1/tsp/MessageImprint.java
rg/bouncycastle/asn1/tsp/TSTInfo.java
rg/bouncycastle/asn1/tsp/TimeStampReq.java
rg/bouncycastle/asn1/tsp/TimeStampResp.java
rg/bouncycastle/asn1/util/ASN1Dump.java
rg/bouncycastle/asn1/util/DERDump.java
rg/bouncycastle/asn1/util/Dump.java
rg/bouncycastle/asn1/x509/AccessDescription.java
rg/bouncycastle/asn1/x509/AlgorithmIdentifier.java
rg/bouncycastle/asn1/x509/AttCertIssuer.java
rg/bouncycastle/asn1/x509/AttCertValidityPeriod.java
rg/bouncycastle/asn1/x509/Attribute.java
rg/bouncycastle/asn1/x509/AttributeCertificate.java
rg/bouncycastle/asn1/x509/AttributeCertificateInfo.java
rg/bouncycastle/asn1/x509/AuthorityInformationAccess.java
rg/bouncycastle/asn1/x509/AuthorityKeyIdentifier.java
rg/bouncycastle/asn1/x509/BasicConstraints.java
rg/bouncycastle/asn1/x509/CRLDistPoint.java
rg/bouncycastle/asn1/x509/CRLNumber.java
rg/bouncycastle/asn1/x509/CRLReason.java
rg/bouncycastle/asn1/x509/CertPolicyId.java
rg/bouncycastle/asn1/x509/CertificateList.java
rg/bouncycastle/asn1/x509/CertificatePolicies.java
rg/bouncycastle/asn1/x509/DSAParameter.java
rg/bouncycastle/asn1/x509/DigestInfo.java
rg/bouncycastle/asn1/x509/DisplayText.java
rg/bouncycastle/asn1/x509/DistributionPoint.java
rg/bouncycastle/asn1/x509/DistributionPointName.java
rg/bouncycastle/asn1/x509/ExtendedKeyUsage.java
rg/bouncycastle/asn1/x509/GeneralName.java
rg/bouncycastle/asn1/x509/GeneralNames.java
rg/bouncycastle/asn1/x509/GeneralSubtree.java
rg/bouncycastle/asn1/x509/Holder.java
rg/bouncycastle/asn1/x509/IetfAttrSyntax.java
rg/bouncycastle/asn1/x509/IssuerSerial.java
rg/bouncycastle/asn1/x509/IssuingDistributionPoint.java
rg/bouncycastle/asn1/x509/KeyPurposeId.java
rg/bouncycastle/asn1/x509/KeyUsage.java
rg/bouncycastle/asn1/x509/NameConstraints.java
rg/bouncycastle/asn1/x509/NoticeReference.java
rg/bouncycastle/asn1/x509/ObjectDigestInfo.java
rg/bouncycastle/asn1/x509/PolicyInformation.java
rg/bouncycastle/asn1/x509/PolicyMappings.java
rg/bouncycastle/asn1/x509/PolicyQualifierId.java
rg/bouncycastle/asn1/x509/PolicyQualifierInfo.java
rg/bouncycastle/asn1/x509/RSAPublicKeyStructure.java
rg/bouncycastle/asn1/x509/ReasonFlags.java
rg/bouncycastle/asn1/x509/RoleSyntax.java
rg/bouncycastle/asn1/x509/SubjectDirectoryAttributes.java
rg/bouncycastle/asn1/x509/SubjectKeyIdentifier.java
rg/bouncycastle/asn1/x509/SubjectPublicKeyInfo.java
rg/bouncycastle/asn1/x509/TBSCertList.java
rg/bouncycastle/asn1/x509/TBSCertificateStructure.java
rg/bouncycastle/asn1/x509/Time.java
rg/bouncycastle/asn1/x509/UserNotice.java
rg/bouncycastle/asn1/x509/V1TBSCertificateGenerator.java
rg/bouncycastle/asn1/x509/V2AttributeCertificateInfoGenerator.java
rg/bouncycastle/asn1/x509/V2Form.java
rg/bouncycastle/asn1/x509/V2TBSCertListGenerator.java
rg/bouncycastle/asn1/x509/V3TBSCertificateGenerator.java
rg/bouncycastle/asn1/x509/X509Attributes.java
rg/bouncycastle/asn1/x509/X509CertificateStructure.java
rg/bouncycastle/asn1/x509/X509DefaultEntryConverter.java
rg/bouncycastle/asn1/x509/X509Extension.java
rg/bouncycastle/asn1/x509/X509Extensions.java
rg/bouncycastle/asn1/x509/X509Name.java
rg/bouncycastle/asn1/x509/X509NameElementList.java
rg/bouncycastle/asn1/x509/X509NameEntryConverter.java
rg/bouncycastle/asn1/x509/X509NameTokenizer.java
rg/bouncycastle/asn1/x509/X509ObjectIdentifiers.java
rg/bouncycastle/asn1/x509/qualified/BiometricData.java
rg/bouncycastle/asn1/x509/qualified/ETSIQCObjectIdentifiers.java
rg/bouncycastle/asn1/x509/qualified/Iso4217CurrencyCode.java
rg/bouncycastle/asn1/x509/qualified/MonetaryValue.java
rg/bouncycastle/asn1/x509/qualified/QCStatement.java
rg/bouncycastle/asn1/x509/qualified/RFC3739QCObjectIdentifiers.java
rg/bouncycastle/asn1/x509/qualified/SemanticsInformation.java
rg/bouncycastle/asn1/x509/qualified/TypeOfBiometricData.java
rg/bouncycastle/asn1/x509/sigi/SigIObjectIdentifiers.java
rg/bouncycastle/asn1/x9/X9ObjectIdentifiers.java
rg/bouncycastle/crypto/AsymmetricBlockCipher.java
rg/bouncycastle/crypto/AsymmetricCipherKeyPair.java
rg/bouncycastle/crypto/AsymmetricCipherKeyPairGenerator.java
rg/bouncycastle/crypto/BasicAgreement.java
rg/bouncycastle/crypto/BlockCipher.java
rg/bouncycastle/crypto/BufferedAsymmetricBlockCipher.java
rg/bouncycastle/crypto/BufferedBlockCipher.java
rg/bouncycastle/crypto/CipherKeyGenerator.java
rg/bouncycastle/crypto/CipherParameters.java
rg/bouncycastle/crypto/CryptoException.java
rg/bouncycastle/crypto/DSA.java
rg/bouncycastle/crypto/DataLengthException.java
rg/bouncycastle/crypto/DerivationFunction.java
rg/bouncycastle/crypto/DerivationParameters.java
rg/bouncycastle/crypto/Digest.java
rg/bouncycastle/crypto/ExtendedDigest.java
rg/bouncycastle/crypto/InvalidCipherTextException.java
rg/bouncycastle/crypto/KeyGenerationParameters.java
rg/bouncycastle/crypto/Mac.java
rg/bouncycastle/crypto/PBEParametersGenerator.java
rg/bouncycastle/crypto/RuntimeCryptoException.java
rg/bouncycastle/crypto/Signer.java
rg/bouncycastle/crypto/SignerWithRecovery.java
rg/bouncycastle/crypto/StreamBlockCipher.java
rg/bouncycastle/crypto/StreamCipher.java
rg/bouncycastle/crypto/Wrapper.java
rg/bouncycastle/crypto/agreement/DHAgreement.java
rg/bouncycastle/crypto/agreement/DHBasicAgreement.java
rg/bouncycastle/crypto/digests/GeneralDigest.java
rg/bouncycastle/crypto/digests/LongDigest.java
rg/bouncycastle/crypto/digests/MD4Digest.java
rg/bouncycastle/crypto/digests/MD5Digest.java
rg/bouncycastle/crypto/digests/SHA1Digest.java
rg/bouncycastle/crypto/digests/SHA224Digest.java
rg/bouncycastle/crypto/digests/SHA256Digest.java
rg/bouncycastle/crypto/digests/SHA384Digest.java
rg/bouncycastle/crypto/digests/SHA512Digest.java
rg/bouncycastle/crypto/digests/ShortenedDigest.java
rg/bouncycastle/crypto/encodings/ISO9796d1Encoding.java
rg/bouncycastle/crypto/encodings/OAEPEncoding.java
rg/bouncycastle/crypto/encodings/PKCS1Encoding.java
rg/bouncycastle/crypto/engines/AESEngine.java
rg/bouncycastle/crypto/engines/AESFastEngine.java
rg/bouncycastle/crypto/engines/AESLightEngine.java
rg/bouncycastle/crypto/engines/AESWrapEngine.java
rg/bouncycastle/crypto/engines/DESEngine.java
rg/bouncycastle/crypto/engines/DESedeEngine.java
rg/bouncycastle/crypto/engines/DESedeWrapEngine.java
rg/bouncycastle/crypto/engines/IESEngine.java
rg/bouncycastle/crypto/engines/NullEngine.java
rg/bouncycastle/crypto/engines/RC2Engine.java
rg/bouncycastle/crypto/engines/RSAEngine.java
rg/bouncycastle/crypto/generators/BaseKDFBytesGenerator.java
rg/bouncycastle/crypto/generators/DESKeyGenerator.java
rg/bouncycastle/crypto/generators/DESedeKeyGenerator.java
rg/bouncycastle/crypto/generators/DHBasicKeyPairGenerator.java
rg/bouncycastle/crypto/generators/DHKeyGeneratorHelper.java
rg/bouncycastle/crypto/generators/DHKeyPairGenerator.java
rg/bouncycastle/crypto/generators/DHParametersGenerator.java
rg/bouncycastle/crypto/generators/DSAKeyPairGenerator.java
rg/bouncycastle/crypto/generators/DSAParametersGenerator.java
rg/bouncycastle/crypto/generators/KDF1BytesGenerator.java
rg/bouncycastle/crypto/generators/KDF2BytesGenerator.java
rg/bouncycastle/crypto/generators/MGF1BytesGenerator.java
rg/bouncycastle/crypto/generators/OpenSSLPBEParametersGenerator.java
rg/bouncycastle/crypto/generators/PKCS12ParametersGenerator.java
rg/bouncycastle/crypto/generators/PKCS5S1ParametersGenerator.java
rg/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator.java
rg/bouncycastle/crypto/generators/RSAKeyPairGenerator.java
rg/bouncycastle/crypto/io/DigestInputStream.java
rg/bouncycastle/crypto/io/DigestOutputStream.java
rg/bouncycastle/crypto/io/MacInputStream.java
rg/bouncycastle/crypto/io/MacOutputStream.java
rg/bouncycastle/crypto/macs/BlockCipherMac.java
rg/bouncycastle/crypto/macs/CBCBlockCipherMac.java
rg/bouncycastle/crypto/macs/CFBBlockCipherMac.java
rg/bouncycastle/crypto/macs/HMac.java
rg/bouncycastle/crypto/macs/ISO9797Alg3Mac.java
rg/bouncycastle/crypto/macs/OldHMac.java
rg/bouncycastle/crypto/modes/CBCBlockCipher.java
rg/bouncycastle/crypto/modes/CCMBlockCipher.java
rg/bouncycastle/crypto/modes/CFBBlockCipher.java
rg/bouncycastle/crypto/modes/CTSBlockCipher.java
rg/bouncycastle/crypto/modes/GOFBBlockCipher.java
rg/bouncycastle/crypto/modes/OFBBlockCipher.java
rg/bouncycastle/crypto/modes/PaddedBlockCipher.java
rg/bouncycastle/crypto/modes/SICBlockCipher.java
rg/bouncycastle/crypto/paddings/BlockCipherPadding.java
rg/bouncycastle/crypto/paddings/ISO10126d2Padding.java
rg/bouncycastle/crypto/paddings/ISO7816d4Padding.java
rg/bouncycastle/crypto/paddings/PKCS7Padding.java
rg/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher.java
rg/bouncycastle/crypto/paddings/TBCPadding.java
rg/bouncycastle/crypto/paddings/X923Padding.java
rg/bouncycastle/crypto/paddings/ZeroBytePadding.java
rg/bouncycastle/crypto/params/AsymmetricKeyParameter.java
rg/bouncycastle/crypto/params/CCMParameters.java
rg/bouncycastle/crypto/params/DESParameters.java
rg/bouncycastle/crypto/params/DESedeParameters.java
rg/bouncycastle/crypto/params/DHKeyGenerationParameters.java
rg/bouncycastle/crypto/params/DHKeyParameters.java
rg/bouncycastle/crypto/params/DHParameters.java
rg/bouncycastle/crypto/params/DHPrivateKeyParameters.java
rg/bouncycastle/crypto/params/DHPublicKeyParameters.java
rg/bouncycastle/crypto/params/DHValidationParameters.java
rg/bouncycastle/crypto/params/DSAKeyGenerationParameters.java
rg/bouncycastle/crypto/params/DSAKeyParameters.java
rg/bouncycastle/crypto/params/DSAParameters.java
rg/bouncycastle/crypto/params/DSAPrivateKeyParameters.java
rg/bouncycastle/crypto/params/DSAPublicKeyParameters.java
rg/bouncycastle/crypto/params/DSAValidationParameters.java
rg/bouncycastle/crypto/params/IESParameters.java
rg/bouncycastle/crypto/params/IESWithCipherParameters.java
rg/bouncycastle/crypto/params/ISO18033KDFParameters.java
rg/bouncycastle/crypto/params/KDFParameters.java
rg/bouncycastle/crypto/params/KeyParameter.java
rg/bouncycastle/crypto/params/MGFParameters.java
rg/bouncycastle/crypto/params/ParametersWithIV.java
rg/bouncycastle/crypto/params/ParametersWithRandom.java
rg/bouncycastle/crypto/params/ParametersWithSBox.java
rg/bouncycastle/crypto/params/ParametersWithSalt.java
rg/bouncycastle/crypto/params/RC2Parameters.java
rg/bouncycastle/crypto/params/RC5Parameters.java
rg/bouncycastle/crypto/params/RSAKeyGenerationParameters.java
rg/bouncycastle/crypto/params/RSAKeyParameters.java
rg/bouncycastle/crypto/params/RSAPrivateCrtKeyParameters.java
rg/bouncycastle/crypto/signers/DSASigner.java
rg/bouncycastle/crypto/signers/ISO9796d2PSSSigner.java
rg/bouncycastle/crypto/signers/ISO9796d2Signer.java
rg/bouncycastle/crypto/signers/PSSSigner.java
rg/bouncycastle/crypto/util/PrivateKeyFactory.java
rg/bouncycastle/crypto/util/PublicKeyFactory.java
rg/bouncycastle/i18n/ErrorBundle.java
rg/bouncycastle/i18n/LocalizedException.java
rg/bouncycastle/i18n/LocalizedMessage.java
rg/bouncycastle/i18n/MessageBundle.java
rg/bouncycastle/i18n/MissingEntryException.java
rg/bouncycastle/i18n/TextBundle.java
rg/bouncycastle/i18n/filter/Filter.java
rg/bouncycastle/i18n/filter/HTMLFilter.java
rg/bouncycastle/i18n/filter/SQLFilter.java
rg/bouncycastle/i18n/filter/UntrustedInput.java
rg/bouncycastle/jce/PKCS10CertificationRequest.java
rg/bouncycastle/jce/PKCS7SignedData.java
rg/bouncycastle/jce/PrincipalUtil.java
rg/bouncycastle/jce/X509KeyUsage.java
rg/bouncycastle/jce/X509Principal.java
rg/bouncycastle/jce/X509V1CertificateGenerator.java
rg/bouncycastle/jce/X509V2CRLGenerator.java
rg/bouncycastle/jce/X509V3CertificateGenerator.java
rg/bouncycastle/jce/interfaces/BCKeyStore.java
rg/bouncycastle/jce/interfaces/IESKey.java
rg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier.java
rg/bouncycastle/jce/netscape/NetscapeCertRequest.java
rg/bouncycastle/jce/provider/AnnotatedException.java
rg/bouncycastle/jce/provider/BouncyCastleProvider.java
rg/bouncycastle/jce/provider/BrokenJCEBlockCipher.java
rg/bouncycastle/jce/provider/BrokenKDF2BytesGenerator.java
rg/bouncycastle/jce/provider/BrokenPBE.java
rg/bouncycastle/jce/provider/CertPathValidatorUtilities.java
rg/bouncycastle/jce/provider/CertStoreCollectionSpi.java
rg/bouncycastle/jce/provider/DHUtil.java
rg/bouncycastle/jce/provider/DSAUtil.java
rg/bouncycastle/jce/provider/IndexedPKIXParameters.java
rg/bouncycastle/jce/provider/JCEBlockCipher.java
rg/bouncycastle/jce/provider/JCEDHKeyAgreement.java
rg/bouncycastle/jce/provider/JCEDHPrivateKey.java
rg/bouncycastle/jce/provider/JCEDHPublicKey.java
rg/bouncycastle/jce/provider/JCEDigestUtil.java
rg/bouncycastle/jce/provider/JCEIESCipher.java
rg/bouncycastle/jce/provider/JCEKeyGenerator.java
rg/bouncycastle/jce/provider/JCEMac.java
rg/bouncycastle/jce/provider/JCEPBEKey.java
rg/bouncycastle/jce/provider/JCERSACipher.java
rg/bouncycastle/jce/provider/JCERSAPrivateCrtKey.java
rg/bouncycastle/jce/provider/JCERSAPrivateKey.java
rg/bouncycastle/jce/provider/JCERSAPublicKey.java
rg/bouncycastle/jce/provider/JCESecretKeyFactory.java
rg/bouncycastle/jce/provider/JCEStreamCipher.java
rg/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator.java
rg/bouncycastle/jce/provider/JDKAlgorithmParameters.java
rg/bouncycastle/jce/provider/JDKDSAPrivateKey.java
rg/bouncycastle/jce/provider/JDKDSAPublicKey.java
rg/bouncycastle/jce/provider/JDKDSASigner.java
rg/bouncycastle/jce/provider/JDKDigestSignature.java
rg/bouncycastle/jce/provider/JDKECDSAAlgParameters.java
rg/bouncycastle/jce/provider/JDKISOSignature.java
rg/bouncycastle/jce/provider/JDKKeyFactory.java
rg/bouncycastle/jce/provider/JDKKeyPairGenerator.java
rg/bouncycastle/jce/provider/JDKKeyStore.java
rg/bouncycastle/jce/provider/JDKMessageDigest.java
rg/bouncycastle/jce/provider/JDKPKCS12KeyStore.java
rg/bouncycastle/jce/provider/JDKPSSSigner.java
rg/bouncycastle/jce/provider/JDKX509CertificateFactory.java
rg/bouncycastle/jce/provider/PBE.java
rg/bouncycastle/jce/provider/PKIXCertPath.java
rg/bouncycastle/jce/provider/PKIXCertPathBuilderSpi.java
rg/bouncycastle/jce/provider/PKIXCertPathValidatorSpi.java
rg/bouncycastle/jce/provider/PKIXPolicyNode.java
rg/bouncycastle/jce/provider/RSAUtil.java
rg/bouncycastle/jce/provider/WrapCipherSpi.java
rg/bouncycastle/jce/provider/X509CRLEntryObject.java
rg/bouncycastle/jce/provider/X509CRLObject.java
rg/bouncycastle/jce/provider/X509CertificateObject.java
rg/bouncycastle/jce/provider/X509SignatureUtil.java
rg/bouncycastle/jce/spec/IEKeySpec.java
rg/bouncycastle/jce/spec/IESParameterSpec.java
rg/bouncycastle/openssl/PEMWriter.java
rg/bouncycastle/util/Arrays.java
rg/bouncycastle/util/BigIntegers.java
rg/bouncycastle/util/Strings.java
rg/bouncycastle/util/encoders/Base64.java
rg/bouncycastle/util/encoders/Base64Encoder.java
rg/bouncycastle/util/encoders/BufferedDecoder.java
rg/bouncycastle/util/encoders/BufferedEncoder.java
rg/bouncycastle/util/encoders/Encoder.java
rg/bouncycastle/util/encoders/Hex.java
rg/bouncycastle/util/encoders/HexEncoder.java
rg/bouncycastle/util/encoders/HexTranslator.java
rg/bouncycastle/util/encoders/Translator.java
rg/bouncycastle/util/encoders/UrlBase64.java
rg/bouncycastle/util/encoders/UrlBase64Encoder.java
rg/bouncycastle/x509/AttributeCertificateHolder.java
rg/bouncycastle/x509/AttributeCertificateIssuer.java
rg/bouncycastle/x509/CertPathReviewerException.java
rg/bouncycastle/x509/CertPathReviewerMessages.properties
rg/bouncycastle/x509/PKIXCertPathReviewer.java
rg/bouncycastle/x509/X509Attribute.java
rg/bouncycastle/x509/X509AttributeCertificate.java
rg/bouncycastle/x509/X509Util.java
rg/bouncycastle/x509/X509V1CertificateGenerator.java
rg/bouncycastle/x509/X509V2AttributeCertificate.java
rg/bouncycastle/x509/X509V2AttributeCertificateGenerator.java
rg/bouncycastle/x509/X509V2CRLGenerator.java
rg/bouncycastle/x509/X509V3CertificateGenerator.java
rg/bouncycastle/x509/extension/AuthorityKeyIdentifierStructure.java
rg/bouncycastle/x509/extension/SubjectKeyIdentifierStructure.java
rg/bouncycastle/x509/extension/X509ExtensionUtil.java
a2952462d8f654b2e0ccfac4a1f2d54aa0259516 18-Jun-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing various problems with HTTPS proxies thru HTTP." into dalvik-dev
bdfbd4b92a0d86934025dab31b2b2367782f83f3 18-Jun-2010 Elliott Hughes <enh@google.com> Merge "Minor bidi tidying." into dalvik-dev
f10b2437ae5ec073f8c4118f7235022ba83667c4 18-Jun-2010 Elliott Hughes <enh@google.com> Minor bidi tidying.

Fix the bidi code to consistently use finally blocks to ensure we can't
leak native UBidi objects. Rename BidiWrapper to NativeBidi since it isn't
a class with a finalizer that wraps a UBidi: it's just a namespace for static
native methods.

Also remove the useless public constructor from NativeCollation.

Bug: 2772065
Change-Id: I441ff4811bb66c37daf270d74d5403b9848cce90
om/ibm/icu4jni/text/NativeCollation.java
ava/text/Bidi.java
rg/apache/harmony/text/BidiWrapper.java
rg/apache/harmony/text/NativeBidi.java
a39758ca6ea30746f142da23508571ef38da822f 18-Jun-2010 Brian Carlstrom <bdc@google.com> Merge "libcore/luni/src/main/java/org/bouncycastle moved to external/bouncycastle/src/main/java/org/bouncycastle" into dalvik-dev
74c50755c30b3afd4852e006aeedeb25232ca757 17-Jun-2010 Elliott Hughes <enh@google.com> Rewrite FileDescriptor and ProcessManager's JNI in terms of JNIHelp.h's API.

This lets us remove JniConstants::fileDescriptorClass and rely on the cached
jclass in JNIHelp.c.

Change-Id: Ie9b067113050e95413c28befe0143a8bbf2113de
ava/io/FileDescriptor.java
d3ae3dbba52b9eec408be9b2e74a9f93388d4202 17-Jun-2010 Brian Carlstrom <bdc@google.com> libcore/luni/src/main/java/org/bouncycastle moved to external/bouncycastle/src/main/java/org/bouncycastle

Change-Id: Ic8d81f1c057458e9fdf9b648c9d976a552b785b8
rg/bouncycastle/asn1/ASN1Choice.java
rg/bouncycastle/asn1/ASN1Collection.java
rg/bouncycastle/asn1/ASN1Encodable.java
rg/bouncycastle/asn1/ASN1EncodableVector.java
rg/bouncycastle/asn1/ASN1InputStream.java
rg/bouncycastle/asn1/ASN1Null.java
rg/bouncycastle/asn1/ASN1OctetString.java
rg/bouncycastle/asn1/ASN1OutputStream.java
rg/bouncycastle/asn1/ASN1Sequence.java
rg/bouncycastle/asn1/ASN1Set.java
rg/bouncycastle/asn1/ASN1TaggedObject.java
rg/bouncycastle/asn1/BERConstructedOctetString.java
rg/bouncycastle/asn1/BERConstructedSequence.java
rg/bouncycastle/asn1/BERInputStream.java
rg/bouncycastle/asn1/BERNull.java
rg/bouncycastle/asn1/BEROutputStream.java
rg/bouncycastle/asn1/BERSequence.java
rg/bouncycastle/asn1/BERSet.java
rg/bouncycastle/asn1/BERTaggedObject.java
rg/bouncycastle/asn1/DERApplicationSpecific.java
rg/bouncycastle/asn1/DERBMPString.java
rg/bouncycastle/asn1/DERBitString.java
rg/bouncycastle/asn1/DERBoolean.java
rg/bouncycastle/asn1/DERConstructedSequence.java
rg/bouncycastle/asn1/DERConstructedSet.java
rg/bouncycastle/asn1/DEREncodable.java
rg/bouncycastle/asn1/DEREncodableVector.java
rg/bouncycastle/asn1/DEREnumerated.java
rg/bouncycastle/asn1/DERGeneralString.java
rg/bouncycastle/asn1/DERGeneralizedTime.java
rg/bouncycastle/asn1/DERIA5String.java
rg/bouncycastle/asn1/DERInputStream.java
rg/bouncycastle/asn1/DERInteger.java
rg/bouncycastle/asn1/DERNull.java
rg/bouncycastle/asn1/DERNumericString.java
rg/bouncycastle/asn1/DERObject.java
rg/bouncycastle/asn1/DERObjectIdentifier.java
rg/bouncycastle/asn1/DEROctetString.java
rg/bouncycastle/asn1/DEROutputStream.java
rg/bouncycastle/asn1/DERPrintableString.java
rg/bouncycastle/asn1/DERSequence.java
rg/bouncycastle/asn1/DERSet.java
rg/bouncycastle/asn1/DERString.java
rg/bouncycastle/asn1/DERT61String.java
rg/bouncycastle/asn1/DERTaggedObject.java
rg/bouncycastle/asn1/DERTags.java
rg/bouncycastle/asn1/DERUTCTime.java
rg/bouncycastle/asn1/DERUTF8String.java
rg/bouncycastle/asn1/DERUniversalString.java
rg/bouncycastle/asn1/DERUnknownTag.java
rg/bouncycastle/asn1/DERVisibleString.java
rg/bouncycastle/asn1/OIDTokenizer.java
rg/bouncycastle/asn1/OrderedTable.java
rg/bouncycastle/asn1/cmp/PKIFailureInfo.java
rg/bouncycastle/asn1/cmp/PKIFreeText.java
rg/bouncycastle/asn1/cmp/PKIStatus.java
rg/bouncycastle/asn1/cmp/PKIStatusInfo.java
rg/bouncycastle/asn1/cms/Attribute.java
rg/bouncycastle/asn1/cms/AttributeTable.java
rg/bouncycastle/asn1/cms/CMSAttributes.java
rg/bouncycastle/asn1/cms/CMSObjectIdentifiers.java
rg/bouncycastle/asn1/cms/CompressedData.java
rg/bouncycastle/asn1/cms/ContentInfo.java
rg/bouncycastle/asn1/cms/EncryptedContentInfo.java
rg/bouncycastle/asn1/cms/EnvelopedData.java
rg/bouncycastle/asn1/cms/IssuerAndSerialNumber.java
rg/bouncycastle/asn1/cms/KEKIdentifier.java
rg/bouncycastle/asn1/cms/KEKRecipientInfo.java
rg/bouncycastle/asn1/cms/KeyAgreeRecipientInfo.java
rg/bouncycastle/asn1/cms/KeyTransRecipientInfo.java
rg/bouncycastle/asn1/cms/OriginatorIdentifierOrKey.java
rg/bouncycastle/asn1/cms/OriginatorInfo.java
rg/bouncycastle/asn1/cms/OriginatorPublicKey.java
rg/bouncycastle/asn1/cms/OtherKeyAttribute.java
rg/bouncycastle/asn1/cms/OtherRecipientInfo.java
rg/bouncycastle/asn1/cms/PasswordRecipientInfo.java
rg/bouncycastle/asn1/cms/RecipientIdentifier.java
rg/bouncycastle/asn1/cms/RecipientInfo.java
rg/bouncycastle/asn1/cms/RecipientKeyIdentifier.java
rg/bouncycastle/asn1/cms/SignedData.java
rg/bouncycastle/asn1/cms/SignerIdentifier.java
rg/bouncycastle/asn1/cms/SignerInfo.java
rg/bouncycastle/asn1/cms/Time.java
rg/bouncycastle/asn1/cryptopro/CryptoProObjectIdentifiers.java
rg/bouncycastle/asn1/esf/CommitmentTypeIdentifier.java
rg/bouncycastle/asn1/esf/CommitmentTypeIndication.java
rg/bouncycastle/asn1/esf/CommitmentTypeQualifier.java
rg/bouncycastle/asn1/esf/ESFAttributes.java
rg/bouncycastle/asn1/esf/SignerLocation.java
rg/bouncycastle/asn1/ess/ContentIdentifier.java
rg/bouncycastle/asn1/ess/ESSCertID.java
rg/bouncycastle/asn1/ess/OtherCertID.java
rg/bouncycastle/asn1/ess/OtherSigningCertificate.java
rg/bouncycastle/asn1/ess/SigningCertificate.java
rg/bouncycastle/asn1/gnu/GNUObjectIdentifiers.java
rg/bouncycastle/asn1/iana/IANAObjectIdentifiers.java
rg/bouncycastle/asn1/icao/DataGroupHash.java
rg/bouncycastle/asn1/icao/ICAOObjectIdentifiers.java
rg/bouncycastle/asn1/icao/LDSSecurityObject.java
rg/bouncycastle/asn1/misc/IDEACBCPar.java
rg/bouncycastle/asn1/misc/MiscObjectIdentifiers.java
rg/bouncycastle/asn1/misc/NetscapeCertType.java
rg/bouncycastle/asn1/misc/NetscapeRevocationURL.java
rg/bouncycastle/asn1/misc/VerisignCzagExtension.java
rg/bouncycastle/asn1/mozilla/PublicKeyAndChallenge.java
rg/bouncycastle/asn1/nist/NISTObjectIdentifiers.java
rg/bouncycastle/asn1/ocsp/BasicOCSPResponse.java
rg/bouncycastle/asn1/ocsp/CertID.java
rg/bouncycastle/asn1/ocsp/CertStatus.java
rg/bouncycastle/asn1/ocsp/CrlID.java
rg/bouncycastle/asn1/ocsp/OCSPObjectIdentifiers.java
rg/bouncycastle/asn1/ocsp/OCSPRequest.java
rg/bouncycastle/asn1/ocsp/OCSPResponse.java
rg/bouncycastle/asn1/ocsp/OCSPResponseStatus.java
rg/bouncycastle/asn1/ocsp/Request.java
rg/bouncycastle/asn1/ocsp/ResponderID.java
rg/bouncycastle/asn1/ocsp/ResponseBytes.java
rg/bouncycastle/asn1/ocsp/ResponseData.java
rg/bouncycastle/asn1/ocsp/RevokedInfo.java
rg/bouncycastle/asn1/ocsp/ServiceLocator.java
rg/bouncycastle/asn1/ocsp/Signature.java
rg/bouncycastle/asn1/ocsp/SingleResponse.java
rg/bouncycastle/asn1/ocsp/TBSRequest.java
rg/bouncycastle/asn1/oiw/OIWObjectIdentifiers.java
rg/bouncycastle/asn1/pkcs/Attribute.java
rg/bouncycastle/asn1/pkcs/AuthenticatedSafe.java
rg/bouncycastle/asn1/pkcs/CertBag.java
rg/bouncycastle/asn1/pkcs/CertificationRequest.java
rg/bouncycastle/asn1/pkcs/CertificationRequestInfo.java
rg/bouncycastle/asn1/pkcs/ContentInfo.java
rg/bouncycastle/asn1/pkcs/DHParameter.java
rg/bouncycastle/asn1/pkcs/EncryptedData.java
rg/bouncycastle/asn1/pkcs/EncryptedPrivateKeyInfo.java
rg/bouncycastle/asn1/pkcs/EncryptionScheme.java
rg/bouncycastle/asn1/pkcs/IssuerAndSerialNumber.java
rg/bouncycastle/asn1/pkcs/KeyDerivationFunc.java
rg/bouncycastle/asn1/pkcs/MacData.java
rg/bouncycastle/asn1/pkcs/PBES2Algorithms.java
rg/bouncycastle/asn1/pkcs/PBES2Parameters.java
rg/bouncycastle/asn1/pkcs/PBKDF2Params.java
rg/bouncycastle/asn1/pkcs/PKCS12PBEParams.java
rg/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers.java
rg/bouncycastle/asn1/pkcs/Pfx.java
rg/bouncycastle/asn1/pkcs/PrivateKeyInfo.java
rg/bouncycastle/asn1/pkcs/RC2CBCParameter.java
rg/bouncycastle/asn1/pkcs/RSAESOAEPparams.java
rg/bouncycastle/asn1/pkcs/RSAPrivateKeyStructure.java
rg/bouncycastle/asn1/pkcs/RSASSAPSSparams.java
rg/bouncycastle/asn1/pkcs/SafeBag.java
rg/bouncycastle/asn1/pkcs/SignedData.java
rg/bouncycastle/asn1/pkcs/SignerInfo.java
rg/bouncycastle/asn1/teletrust/TeleTrusTObjectIdentifiers.java
rg/bouncycastle/asn1/tsp/Accuracy.java
rg/bouncycastle/asn1/tsp/MessageImprint.java
rg/bouncycastle/asn1/tsp/TSTInfo.java
rg/bouncycastle/asn1/tsp/TimeStampReq.java
rg/bouncycastle/asn1/tsp/TimeStampResp.java
rg/bouncycastle/asn1/util/ASN1Dump.java
rg/bouncycastle/asn1/util/DERDump.java
rg/bouncycastle/asn1/util/Dump.java
rg/bouncycastle/asn1/x509/AccessDescription.java
rg/bouncycastle/asn1/x509/AlgorithmIdentifier.java
rg/bouncycastle/asn1/x509/AttCertIssuer.java
rg/bouncycastle/asn1/x509/AttCertValidityPeriod.java
rg/bouncycastle/asn1/x509/Attribute.java
rg/bouncycastle/asn1/x509/AttributeCertificate.java
rg/bouncycastle/asn1/x509/AttributeCertificateInfo.java
rg/bouncycastle/asn1/x509/AuthorityInformationAccess.java
rg/bouncycastle/asn1/x509/AuthorityKeyIdentifier.java
rg/bouncycastle/asn1/x509/BasicConstraints.java
rg/bouncycastle/asn1/x509/CRLDistPoint.java
rg/bouncycastle/asn1/x509/CRLNumber.java
rg/bouncycastle/asn1/x509/CRLReason.java
rg/bouncycastle/asn1/x509/CertPolicyId.java
rg/bouncycastle/asn1/x509/CertificateList.java
rg/bouncycastle/asn1/x509/CertificatePolicies.java
rg/bouncycastle/asn1/x509/DSAParameter.java
rg/bouncycastle/asn1/x509/DigestInfo.java
rg/bouncycastle/asn1/x509/DisplayText.java
rg/bouncycastle/asn1/x509/DistributionPoint.java
rg/bouncycastle/asn1/x509/DistributionPointName.java
rg/bouncycastle/asn1/x509/ExtendedKeyUsage.java
rg/bouncycastle/asn1/x509/GeneralName.java
rg/bouncycastle/asn1/x509/GeneralNames.java
rg/bouncycastle/asn1/x509/GeneralSubtree.java
rg/bouncycastle/asn1/x509/Holder.java
rg/bouncycastle/asn1/x509/IetfAttrSyntax.java
rg/bouncycastle/asn1/x509/IssuerSerial.java
rg/bouncycastle/asn1/x509/IssuingDistributionPoint.java
rg/bouncycastle/asn1/x509/KeyPurposeId.java
rg/bouncycastle/asn1/x509/KeyUsage.java
rg/bouncycastle/asn1/x509/NameConstraints.java
rg/bouncycastle/asn1/x509/NoticeReference.java
rg/bouncycastle/asn1/x509/ObjectDigestInfo.java
rg/bouncycastle/asn1/x509/PolicyInformation.java
rg/bouncycastle/asn1/x509/PolicyMappings.java
rg/bouncycastle/asn1/x509/PolicyQualifierId.java
rg/bouncycastle/asn1/x509/PolicyQualifierInfo.java
rg/bouncycastle/asn1/x509/RSAPublicKeyStructure.java
rg/bouncycastle/asn1/x509/ReasonFlags.java
rg/bouncycastle/asn1/x509/RoleSyntax.java
rg/bouncycastle/asn1/x509/SubjectDirectoryAttributes.java
rg/bouncycastle/asn1/x509/SubjectKeyIdentifier.java
rg/bouncycastle/asn1/x509/SubjectPublicKeyInfo.java
rg/bouncycastle/asn1/x509/TBSCertList.java
rg/bouncycastle/asn1/x509/TBSCertificateStructure.java
rg/bouncycastle/asn1/x509/Time.java
rg/bouncycastle/asn1/x509/UserNotice.java
rg/bouncycastle/asn1/x509/V1TBSCertificateGenerator.java
rg/bouncycastle/asn1/x509/V2AttributeCertificateInfoGenerator.java
rg/bouncycastle/asn1/x509/V2Form.java
rg/bouncycastle/asn1/x509/V2TBSCertListGenerator.java
rg/bouncycastle/asn1/x509/V3TBSCertificateGenerator.java
rg/bouncycastle/asn1/x509/X509Attributes.java
rg/bouncycastle/asn1/x509/X509CertificateStructure.java
rg/bouncycastle/asn1/x509/X509DefaultEntryConverter.java
rg/bouncycastle/asn1/x509/X509Extension.java
rg/bouncycastle/asn1/x509/X509Extensions.java
rg/bouncycastle/asn1/x509/X509Name.java
rg/bouncycastle/asn1/x509/X509NameElementList.java
rg/bouncycastle/asn1/x509/X509NameEntryConverter.java
rg/bouncycastle/asn1/x509/X509NameTokenizer.java
rg/bouncycastle/asn1/x509/X509ObjectIdentifiers.java
rg/bouncycastle/asn1/x509/qualified/BiometricData.java
rg/bouncycastle/asn1/x509/qualified/ETSIQCObjectIdentifiers.java
rg/bouncycastle/asn1/x509/qualified/Iso4217CurrencyCode.java
rg/bouncycastle/asn1/x509/qualified/MonetaryValue.java
rg/bouncycastle/asn1/x509/qualified/QCStatement.java
rg/bouncycastle/asn1/x509/qualified/RFC3739QCObjectIdentifiers.java
rg/bouncycastle/asn1/x509/qualified/SemanticsInformation.java
rg/bouncycastle/asn1/x509/qualified/TypeOfBiometricData.java
rg/bouncycastle/asn1/x509/sigi/SigIObjectIdentifiers.java
rg/bouncycastle/asn1/x9/X9ObjectIdentifiers.java
rg/bouncycastle/crypto/AsymmetricBlockCipher.java
rg/bouncycastle/crypto/AsymmetricCipherKeyPair.java
rg/bouncycastle/crypto/AsymmetricCipherKeyPairGenerator.java
rg/bouncycastle/crypto/BasicAgreement.java
rg/bouncycastle/crypto/BlockCipher.java
rg/bouncycastle/crypto/BufferedAsymmetricBlockCipher.java
rg/bouncycastle/crypto/BufferedBlockCipher.java
rg/bouncycastle/crypto/CipherKeyGenerator.java
rg/bouncycastle/crypto/CipherParameters.java
rg/bouncycastle/crypto/CryptoException.java
rg/bouncycastle/crypto/DSA.java
rg/bouncycastle/crypto/DataLengthException.java
rg/bouncycastle/crypto/DerivationFunction.java
rg/bouncycastle/crypto/DerivationParameters.java
rg/bouncycastle/crypto/Digest.java
rg/bouncycastle/crypto/ExtendedDigest.java
rg/bouncycastle/crypto/InvalidCipherTextException.java
rg/bouncycastle/crypto/KeyGenerationParameters.java
rg/bouncycastle/crypto/Mac.java
rg/bouncycastle/crypto/PBEParametersGenerator.java
rg/bouncycastle/crypto/RuntimeCryptoException.java
rg/bouncycastle/crypto/Signer.java
rg/bouncycastle/crypto/SignerWithRecovery.java
rg/bouncycastle/crypto/StreamBlockCipher.java
rg/bouncycastle/crypto/StreamCipher.java
rg/bouncycastle/crypto/Wrapper.java
rg/bouncycastle/crypto/agreement/DHAgreement.java
rg/bouncycastle/crypto/agreement/DHBasicAgreement.java
rg/bouncycastle/crypto/digests/GeneralDigest.java
rg/bouncycastle/crypto/digests/LongDigest.java
rg/bouncycastle/crypto/digests/MD4Digest.java
rg/bouncycastle/crypto/digests/MD5Digest.java
rg/bouncycastle/crypto/digests/SHA1Digest.java
rg/bouncycastle/crypto/digests/SHA224Digest.java
rg/bouncycastle/crypto/digests/SHA256Digest.java
rg/bouncycastle/crypto/digests/SHA384Digest.java
rg/bouncycastle/crypto/digests/SHA512Digest.java
rg/bouncycastle/crypto/digests/ShortenedDigest.java
rg/bouncycastle/crypto/encodings/ISO9796d1Encoding.java
rg/bouncycastle/crypto/encodings/OAEPEncoding.java
rg/bouncycastle/crypto/encodings/PKCS1Encoding.java
rg/bouncycastle/crypto/engines/AESEngine.java
rg/bouncycastle/crypto/engines/AESFastEngine.java
rg/bouncycastle/crypto/engines/AESLightEngine.java
rg/bouncycastle/crypto/engines/AESWrapEngine.java
rg/bouncycastle/crypto/engines/DESEngine.java
rg/bouncycastle/crypto/engines/DESedeEngine.java
rg/bouncycastle/crypto/engines/DESedeWrapEngine.java
rg/bouncycastle/crypto/engines/IESEngine.java
rg/bouncycastle/crypto/engines/NullEngine.java
rg/bouncycastle/crypto/engines/RC2Engine.java
rg/bouncycastle/crypto/engines/RSAEngine.java
rg/bouncycastle/crypto/generators/BaseKDFBytesGenerator.java
rg/bouncycastle/crypto/generators/DESKeyGenerator.java
rg/bouncycastle/crypto/generators/DESedeKeyGenerator.java
rg/bouncycastle/crypto/generators/DHBasicKeyPairGenerator.java
rg/bouncycastle/crypto/generators/DHKeyGeneratorHelper.java
rg/bouncycastle/crypto/generators/DHKeyPairGenerator.java
rg/bouncycastle/crypto/generators/DHParametersGenerator.java
rg/bouncycastle/crypto/generators/DSAKeyPairGenerator.java
rg/bouncycastle/crypto/generators/DSAParametersGenerator.java
rg/bouncycastle/crypto/generators/KDF1BytesGenerator.java
rg/bouncycastle/crypto/generators/KDF2BytesGenerator.java
rg/bouncycastle/crypto/generators/MGF1BytesGenerator.java
rg/bouncycastle/crypto/generators/OpenSSLPBEParametersGenerator.java
rg/bouncycastle/crypto/generators/PKCS12ParametersGenerator.java
rg/bouncycastle/crypto/generators/PKCS5S1ParametersGenerator.java
rg/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator.java
rg/bouncycastle/crypto/generators/RSAKeyPairGenerator.java
rg/bouncycastle/crypto/io/DigestInputStream.java
rg/bouncycastle/crypto/io/DigestOutputStream.java
rg/bouncycastle/crypto/io/MacInputStream.java
rg/bouncycastle/crypto/io/MacOutputStream.java
rg/bouncycastle/crypto/macs/BlockCipherMac.java
rg/bouncycastle/crypto/macs/CBCBlockCipherMac.java
rg/bouncycastle/crypto/macs/CFBBlockCipherMac.java
rg/bouncycastle/crypto/macs/HMac.java
rg/bouncycastle/crypto/macs/ISO9797Alg3Mac.java
rg/bouncycastle/crypto/macs/OldHMac.java
rg/bouncycastle/crypto/modes/CBCBlockCipher.java
rg/bouncycastle/crypto/modes/CCMBlockCipher.java
rg/bouncycastle/crypto/modes/CFBBlockCipher.java
rg/bouncycastle/crypto/modes/CTSBlockCipher.java
rg/bouncycastle/crypto/modes/GOFBBlockCipher.java
rg/bouncycastle/crypto/modes/OFBBlockCipher.java
rg/bouncycastle/crypto/modes/PaddedBlockCipher.java
rg/bouncycastle/crypto/modes/SICBlockCipher.java
rg/bouncycastle/crypto/paddings/BlockCipherPadding.java
rg/bouncycastle/crypto/paddings/ISO10126d2Padding.java
rg/bouncycastle/crypto/paddings/ISO7816d4Padding.java
rg/bouncycastle/crypto/paddings/PKCS7Padding.java
rg/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher.java
rg/bouncycastle/crypto/paddings/TBCPadding.java
rg/bouncycastle/crypto/paddings/X923Padding.java
rg/bouncycastle/crypto/paddings/ZeroBytePadding.java
rg/bouncycastle/crypto/params/AsymmetricKeyParameter.java
rg/bouncycastle/crypto/params/CCMParameters.java
rg/bouncycastle/crypto/params/DESParameters.java
rg/bouncycastle/crypto/params/DESedeParameters.java
rg/bouncycastle/crypto/params/DHKeyGenerationParameters.java
rg/bouncycastle/crypto/params/DHKeyParameters.java
rg/bouncycastle/crypto/params/DHParameters.java
rg/bouncycastle/crypto/params/DHPrivateKeyParameters.java
rg/bouncycastle/crypto/params/DHPublicKeyParameters.java
rg/bouncycastle/crypto/params/DHValidationParameters.java
rg/bouncycastle/crypto/params/DSAKeyGenerationParameters.java
rg/bouncycastle/crypto/params/DSAKeyParameters.java
rg/bouncycastle/crypto/params/DSAParameters.java
rg/bouncycastle/crypto/params/DSAPrivateKeyParameters.java
rg/bouncycastle/crypto/params/DSAPublicKeyParameters.java
rg/bouncycastle/crypto/params/DSAValidationParameters.java
rg/bouncycastle/crypto/params/IESParameters.java
rg/bouncycastle/crypto/params/IESWithCipherParameters.java
rg/bouncycastle/crypto/params/ISO18033KDFParameters.java
rg/bouncycastle/crypto/params/KDFParameters.java
rg/bouncycastle/crypto/params/KeyParameter.java
rg/bouncycastle/crypto/params/MGFParameters.java
rg/bouncycastle/crypto/params/ParametersWithIV.java
rg/bouncycastle/crypto/params/ParametersWithRandom.java
rg/bouncycastle/crypto/params/ParametersWithSBox.java
rg/bouncycastle/crypto/params/ParametersWithSalt.java
rg/bouncycastle/crypto/params/RC2Parameters.java
rg/bouncycastle/crypto/params/RC5Parameters.java
rg/bouncycastle/crypto/params/RSAKeyGenerationParameters.java
rg/bouncycastle/crypto/params/RSAKeyParameters.java
rg/bouncycastle/crypto/params/RSAPrivateCrtKeyParameters.java
rg/bouncycastle/crypto/signers/DSASigner.java
rg/bouncycastle/crypto/signers/ISO9796d2PSSSigner.java
rg/bouncycastle/crypto/signers/ISO9796d2Signer.java
rg/bouncycastle/crypto/signers/PSSSigner.java
rg/bouncycastle/crypto/util/PrivateKeyFactory.java
rg/bouncycastle/crypto/util/PublicKeyFactory.java
rg/bouncycastle/i18n/ErrorBundle.java
rg/bouncycastle/i18n/LocalizedException.java
rg/bouncycastle/i18n/LocalizedMessage.java
rg/bouncycastle/i18n/MessageBundle.java
rg/bouncycastle/i18n/MissingEntryException.java
rg/bouncycastle/i18n/TextBundle.java
rg/bouncycastle/i18n/filter/Filter.java
rg/bouncycastle/i18n/filter/HTMLFilter.java
rg/bouncycastle/i18n/filter/SQLFilter.java
rg/bouncycastle/i18n/filter/UntrustedInput.java
rg/bouncycastle/jce/PKCS10CertificationRequest.java
rg/bouncycastle/jce/PKCS7SignedData.java
rg/bouncycastle/jce/PrincipalUtil.java
rg/bouncycastle/jce/X509KeyUsage.java
rg/bouncycastle/jce/X509Principal.java
rg/bouncycastle/jce/X509V1CertificateGenerator.java
rg/bouncycastle/jce/X509V2CRLGenerator.java
rg/bouncycastle/jce/X509V3CertificateGenerator.java
rg/bouncycastle/jce/interfaces/BCKeyStore.java
rg/bouncycastle/jce/interfaces/IESKey.java
rg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier.java
rg/bouncycastle/jce/netscape/NetscapeCertRequest.java
rg/bouncycastle/jce/provider/AnnotatedException.java
rg/bouncycastle/jce/provider/BouncyCastleProvider.java
rg/bouncycastle/jce/provider/BrokenJCEBlockCipher.java
rg/bouncycastle/jce/provider/BrokenKDF2BytesGenerator.java
rg/bouncycastle/jce/provider/BrokenPBE.java
rg/bouncycastle/jce/provider/CertPathValidatorUtilities.java
rg/bouncycastle/jce/provider/CertStoreCollectionSpi.java
rg/bouncycastle/jce/provider/DHUtil.java
rg/bouncycastle/jce/provider/DSAUtil.java
rg/bouncycastle/jce/provider/IndexedPKIXParameters.java
rg/bouncycastle/jce/provider/JCEBlockCipher.java
rg/bouncycastle/jce/provider/JCEDHKeyAgreement.java
rg/bouncycastle/jce/provider/JCEDHPrivateKey.java
rg/bouncycastle/jce/provider/JCEDHPublicKey.java
rg/bouncycastle/jce/provider/JCEDigestUtil.java
rg/bouncycastle/jce/provider/JCEIESCipher.java
rg/bouncycastle/jce/provider/JCEKeyGenerator.java
rg/bouncycastle/jce/provider/JCEMac.java
rg/bouncycastle/jce/provider/JCEPBEKey.java
rg/bouncycastle/jce/provider/JCERSACipher.java
rg/bouncycastle/jce/provider/JCERSAPrivateCrtKey.java
rg/bouncycastle/jce/provider/JCERSAPrivateKey.java
rg/bouncycastle/jce/provider/JCERSAPublicKey.java
rg/bouncycastle/jce/provider/JCESecretKeyFactory.java
rg/bouncycastle/jce/provider/JCEStreamCipher.java
rg/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator.java
rg/bouncycastle/jce/provider/JDKAlgorithmParameters.java
rg/bouncycastle/jce/provider/JDKDSAPrivateKey.java
rg/bouncycastle/jce/provider/JDKDSAPublicKey.java
rg/bouncycastle/jce/provider/JDKDSASigner.java
rg/bouncycastle/jce/provider/JDKDigestSignature.java
rg/bouncycastle/jce/provider/JDKECDSAAlgParameters.java
rg/bouncycastle/jce/provider/JDKISOSignature.java
rg/bouncycastle/jce/provider/JDKKeyFactory.java
rg/bouncycastle/jce/provider/JDKKeyPairGenerator.java
rg/bouncycastle/jce/provider/JDKKeyStore.java
rg/bouncycastle/jce/provider/JDKMessageDigest.java
rg/bouncycastle/jce/provider/JDKPKCS12KeyStore.java
rg/bouncycastle/jce/provider/JDKPSSSigner.java
rg/bouncycastle/jce/provider/JDKX509CertificateFactory.java
rg/bouncycastle/jce/provider/PBE.java
rg/bouncycastle/jce/provider/PKIXCertPath.java
rg/bouncycastle/jce/provider/PKIXCertPathBuilderSpi.java
rg/bouncycastle/jce/provider/PKIXCertPathValidatorSpi.java
rg/bouncycastle/jce/provider/PKIXPolicyNode.java
rg/bouncycastle/jce/provider/RSAUtil.java
rg/bouncycastle/jce/provider/WrapCipherSpi.java
rg/bouncycastle/jce/provider/X509CRLEntryObject.java
rg/bouncycastle/jce/provider/X509CRLObject.java
rg/bouncycastle/jce/provider/X509CertificateObject.java
rg/bouncycastle/jce/provider/X509SignatureUtil.java
rg/bouncycastle/jce/spec/IEKeySpec.java
rg/bouncycastle/jce/spec/IESParameterSpec.java
rg/bouncycastle/openssl/PEMWriter.java
rg/bouncycastle/util/Arrays.java
rg/bouncycastle/util/BigIntegers.java
rg/bouncycastle/util/Strings.java
rg/bouncycastle/util/encoders/Base64.java
rg/bouncycastle/util/encoders/Base64Encoder.java
rg/bouncycastle/util/encoders/BufferedDecoder.java
rg/bouncycastle/util/encoders/BufferedEncoder.java
rg/bouncycastle/util/encoders/Encoder.java
rg/bouncycastle/util/encoders/Hex.java
rg/bouncycastle/util/encoders/HexEncoder.java
rg/bouncycastle/util/encoders/HexTranslator.java
rg/bouncycastle/util/encoders/Translator.java
rg/bouncycastle/util/encoders/UrlBase64.java
rg/bouncycastle/util/encoders/UrlBase64Encoder.java
rg/bouncycastle/x509/AttributeCertificateHolder.java
rg/bouncycastle/x509/AttributeCertificateIssuer.java
rg/bouncycastle/x509/CertPathReviewerException.java
rg/bouncycastle/x509/CertPathReviewerMessages.properties
rg/bouncycastle/x509/PKIXCertPathReviewer.java
rg/bouncycastle/x509/X509Attribute.java
rg/bouncycastle/x509/X509AttributeCertificate.java
rg/bouncycastle/x509/X509Util.java
rg/bouncycastle/x509/X509V1CertificateGenerator.java
rg/bouncycastle/x509/X509V2AttributeCertificate.java
rg/bouncycastle/x509/X509V2AttributeCertificateGenerator.java
rg/bouncycastle/x509/X509V2CRLGenerator.java
rg/bouncycastle/x509/X509V3CertificateGenerator.java
rg/bouncycastle/x509/extension/AuthorityKeyIdentifierStructure.java
rg/bouncycastle/x509/extension/SubjectKeyIdentifierStructure.java
rg/bouncycastle/x509/extension/X509ExtensionUtil.java
d93bf0f076628f52c56610853435f04ce9983a15 16-Jun-2010 Elliott Hughes <enh@google.com> Merge "Apply harmony patch for https://issues.apache.org/jira/browse/HARMONY-6271." into dalvik-dev
776982b51c97692b1fab09828057d2f2516f50b9 16-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> am 32a84bfe: am 65bfb219: am 7983be97: Sprinkle BlockGuard checks on DNS lookups.

Merge commit '32a84bfee7611f4553de46465a7fc00ecff99b81' into dalvik-dev

* commit '32a84bfee7611f4553de46465a7fc00ecff99b81':
Sprinkle BlockGuard checks on DNS lookups.
32a84bfee7611f4553de46465a7fc00ecff99b81 16-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> am 65bfb219: am 7983be97: Sprinkle BlockGuard checks on DNS lookups.

Merge commit '65bfb2194248a27d8bf35b39c9d0e234fd329d7d'

* commit '65bfb2194248a27d8bf35b39c9d0e234fd329d7d':
Sprinkle BlockGuard checks on DNS lookups.
5737216377e5a139745f32e39769c8ea6fbd4392 16-Jun-2010 Elliott Hughes <enh@google.com> Apply harmony patch for https://issues.apache.org/jira/browse/HARMONY-6271.

Bug: https://issues.apache.org/jira/browse/HARMONY-6271
Change-Id: I6d6be2fa89ebbe4b759420edf17418af9cea9d4d
ava/math/Multiplication.java
7983be972905950b4a4e7d66df908f083c81ee29 16-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> Sprinkle BlockGuard checks on DNS lookups.

Change-Id: Ib1ac2ce633fc1277ab8b6f11da37a739d0995cfe
ava/net/InetAddress.java
cb8d09e94846d073ee7b50bef89c0b33113697fb 16-Jun-2010 Elliott Hughes <enh@google.com> Use ServiceLoader in Charset.

Also more internal tidying to remove unnecessary levels of indirection, and
reduce the amount of time we spend under a lock in forName and friends.

Bug: 2567593
Change-Id: I1a309d8b685fe1b78eec6b94114061407dd382ae
ava/nio/charset/Charset.java
ava/nio/charset/CoderResult.java
476f42f709cca648bfa05598ac1b7191b839fa6c 15-Jun-2010 Elliott Hughes <enh@google.com> Merge "Various broken tests." into dalvik-dev
c8977f474b30c5f3807398859a6b16687af6fc7b 15-Jun-2010 Jesse Wilson <jessewilson@google.com> Fixing various problems with HTTPS proxies thru HTTP.

- reading extra bytes from the server depending on available()
- not sending the port with the proxy request
- returning a read-til-the-end stream instead of a read-0-bytes-stream
on CONNECT requests
- fixing MockWebServer to omit the unnecessary \r\n after
the response body
- tests no longer mask the issue by unambiguously reading characters.
Trailing newlines aren't discarded!
- New tests when content-length and content disagree. The RI fails
the test when the transfer-encoding is not chunked.

Change-Id: I888569844d323bc770cd5bb95ac71c740dd5e720
ava/net/HttpURLConnection.java
ava/net/URI.java
ava/net/URL.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
33df450a61620f4904bac7f787c444dc4fed981d 15-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> am d3ff6bb5: am 2eed1da5: am b5e5b53f: Merge "Add WrappedNetworkSystem to Blockguard for StrictMode work." into gingerbread

Merge commit 'd3ff6bb57d2e86bfac9bb3c958d98bb0d371714c' into dalvik-dev

* commit 'd3ff6bb57d2e86bfac9bb3c958d98bb0d371714c':
Add WrappedNetworkSystem to Blockguard for StrictMode work.
d3ff6bb57d2e86bfac9bb3c958d98bb0d371714c 15-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> am 2eed1da5: am b5e5b53f: Merge "Add WrappedNetworkSystem to Blockguard for StrictMode work." into gingerbread

Merge commit '2eed1da5004c1f014c39f191a863c638a931cb66'

* commit '2eed1da5004c1f014c39f191a863c638a931cb66':
Add WrappedNetworkSystem to Blockguard for StrictMode work.
a9d779fa6375b2d4bce8d15f369773480b7c6b71 15-Jun-2010 Elliott Hughes <enh@google.com> Various broken tests.

I'll commit a vogar bug fix to the public repository too.

Change-Id: I3c18a1b8f74303aab65f67940ff41539f9620df1
om/ibm/icu4jni/lang/UCharacter.java
ava/lang/Character.java
8bc336a6f9c9f17246041ed337331596dbc974ae 15-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> Add WrappedNetworkSystem to Blockguard for StrictMode work.

Change-Id: Idde4b6f878fad5e8bd90fa929cb434c9a130fbcb
rg/apache/harmony/luni/platform/Platform.java
4a35d4810b346a8198ab780a934ca3414b4136a1 15-Jun-2010 Elliott Hughes <enh@google.com> Merge "More charset-related cleanup/optimization." into dalvik-dev
e810d3b49631329b11440aa5b7a54db181d42ed1 15-Jun-2010 Elliott Hughes <enh@google.com> More charset-related cleanup/optimization.

This patch adds a Charsets class that lets us avoid a hash lookup and an extra
level of method call indirection when calling String.getBytes or "new String"
for a well-known guaranteed charset. It also fixes callers to take advantage.

This also adds a special case to "new String" for the UTF-8 charset to avoid
needless duplication if we guessed the correct buffer size (which we will for
input that happens to be US-ASCII too).

The ModifiedUtf8 class gives a more meaningful name for Utils.convertUTF8WithBuf.

This also removes a dead link and un-tinyurl'ed another.

Change-Id: I02712f53dee16feb3b1db2c14536dc055126cd04
ava/io/DataInputStream.java
ava/io/RandomAccessFile.java
ava/lang/ProcessManager.java
ava/lang/String.java
ava/net/URIEncoderDecoder.java
ava/net/URLConnection.java
ava/nio/charset/Charsets.java
ava/nio/charset/ModifiedUtf8.java
ava/util/jar/Attributes.java
ava/util/jar/JarVerifier.java
ava/util/prefs/AbstractPreferences.java
ava/util/zip/ZipEntry.java
ava/util/zip/ZipInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
rg/apache/harmony/luni/net/Socks4Message.java
rg/apache/harmony/luni/util/ThreadLocalCache.java
rg/apache/harmony/luni/util/Util.java
rg/apache/harmony/security/asn1/ASN1GeneralizedTime.java
rg/apache/harmony/security/asn1/ASN1StringType.java
rg/apache/harmony/security/asn1/ASN1UTCTime.java
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/apache/harmony/security/x509/GeneralName.java
rg/apache/harmony/xml/ExpatParser.java
16ad213de6a8e364c7f0065a4f539f9de56be776 14-Jun-2010 Elliott Hughes <enh@google.com> am 3c998caa: resolved conflicts for merge of 637d3aef to master

Merge commit '3c998caacc0ded3b97e0c53b039a30cde2b27389' into dalvik-dev

* commit '3c998caacc0ded3b97e0c53b039a30cde2b27389':
Make System.setSecurityManager throw in the actual gingerbread.
3c998caacc0ded3b97e0c53b039a30cde2b27389 14-Jun-2010 Elliott Hughes <enh@google.com> resolved conflicts for merge of 637d3aef to master

Change-Id: I025453c1064214ce2707239437b8c752b920e776
09ee91efa4b73c1d14179964e9edf21fcd5dccb5 14-Jun-2010 Elliott Hughes <enh@google.com> Merge "Fix serialization of DateFormatSymbols after https://android-git.corp.google.com/g/54091." into dalvik-dev
2cde53e669fdf0422c4dda13f5766dc68a7f63ce 12-Jun-2010 Elliott Hughes <enh@google.com> Fix serialization of DateFormatSymbols after https://android-git.corp.google.com/g/54091.

I added non-RI fields, but didn't make them transient. This patch fixes that (so we write
RI-compatible serialized forms), and copes with reading in RI-compatible forms (that don't
have the stand-alone names) by falling back to the regular names.

Bug: http://b/2633414
Change-Id: I03f6fae78f09fc9cb9235d16cb982944069ef292
ava/text/DateFormatSymbols.java
79f07cc86be9abc27d0da7df3245ba4bab809ae6 12-Jun-2010 Elliott Hughes <enh@google.com> Improve MessageDigest documentation.

As explained in the bug, I don't think we can/should fix this potential
native crash, but we can and should improve the documentation to explain
how you're _supposed_ to use MessageDigest.

Bug: http://code.google.com/p/android/issues/detail?id=8709
Change-Id: I1cbab5995e5673d5386e21270ac52b6f90b9f421
ava/security/MessageDigest.java
rg/apache/harmony/security/fortress/Engine.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigest.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
63710430c17f7c0a1e74b926cd21248fde8e9589 11-Jun-2010 Elliott Hughes <enh@google.com> Make BigInteger thread-safe.

We were sharing an openssl BN_CTX between threads, which is unsafe. Stop
doing that, creating BN_CTXes on demand (which seems to be what openssl
does internally). For 1024-bit integers, this makes division faster,
multiplication slower, and makes no convincing difference to gcd. I
instrumented a build to report any time one of the methods that needs
a BN_CTX gets called, and couldn't find anywhere they're used during
boot or https browser usage. (These things do use BigInteger; they just
don't use the methods this change affects.)

Bug: 2652542
Change-Id: I98c94b41df95566cb4c8598f299911e641f72f63
ava/math/BigInt.java
ava/math/BigInteger.java
ava/math/Primality.java
9a0668a7f531b04dd001a4d193c159dabdb7bf0c 11-Jun-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing some miscellaneous jtreg failures in pipes." into dalvik-dev
2375e98761ddc54d0a30a6c06a835a2f723dc748 11-Jun-2010 Elliott Hughes <enh@google.com> Merge "Support stand-alone month and weekday names in SimpleDateFormat." into dalvik-dev
143e8c9cf91cfc01c3c91c8e93cad661ec7554ee 11-Jun-2010 Elliott Hughes <enh@google.com> Support stand-alone month and weekday names in SimpleDateFormat.

Also rewrite the SimpleDateFormat documentation.

Bug: 2633414
Change-Id: I8fcc3b1f73dd6f264dd292852a8ab0c5a2742f5b
om/ibm/icu4jni/util/LocaleData.java
ava/sql/Date.java
ava/sql/Timestamp.java
ava/text/DateFormat.java
ava/text/DateFormatSymbols.java
ava/text/SimpleDateFormat.java
dfc6136d9473dfd0aa5b310035ce48d5f8eebe0d 11-Jun-2010 Jesse Wilson <jessewilson@google.com> Fixing some miscellaneous jtreg failures in pipes.

Change-Id: I52c69b027a1e7636ec0ee8d83b3c8d938bec71f2
http://b/issue?id=2224976
ava/io/PipedInputStream.java
ava/io/PipedReader.java
ava/io/PipedWriter.java
6969125ec1a8073ca1142df2d663cf9c052bfb6c 11-Jun-2010 Elliott Hughes <enh@google.com> www.ietf.org is the canonical home for RFCs.

Change-Id: Ib83ff61230649757917346645f6cf47d9df3f348
ava/lang/Character.java
c61e057ac9af32c1987d70d19cb2ead75ed8f612 09-Jun-2010 Elliott Hughes <enh@google.com> Optimize String.getBytes for ISO-8859-1, US-ASCII, and UTF-8.

This is 10x faster for UTF-8 and 20x for US-ASCII/ISO-8859-1.

Change-Id: Ie34c8d0522175c9e0a0433fe42bc1c2b1d328b49
ava/lang/String.java
ava/lang/UnsafeByteSequence.java
73113fb0d6ab5708b284913431b22ec93d335521 09-Jun-2010 Elliott Hughes <enh@google.com> Remove a duplicate of Charset.defaultCharset (from a deprecated method).

Change-Id: Ia7be1cfb2f7c3e891cd421fea4f814e62a1bc283
ava/net/URLDecoder.java
d0628c5cb80e3c1270634c56a784329a4836b9aa 08-Jun-2010 Elliott Hughes <enh@google.com> Make Charset.defaultCharset cheap.

This is a slight behavioral change, but this is how the RI works: changing
"file.encoding" after startup has no effect there either.

Change-Id: I0fd44edd3aedcfd7f72cda572bb2ff3c44ad3ab9
ava/lang/String.java
ava/nio/charset/Charset.java
c903e6720bbbf6540c29f141bd2fa559813ea20a 08-Jun-2010 Elliott Hughes <enh@google.com> Improve Charset.forName/"new String" performance.

Lookup String's default charset once at class initialization. Stop
creating a new empty char[] every time we create an empty string. Fix
the documentation not to lie about using ISO-8859-1 in all kinds of
places we don't (and where the RI doesn't specify that we should).
Fix the performance of the String(byte[]...String) and String(byte[]...Charset)
constructors to be equivalent rather than wildly different (and not in the way
anyone would reasonably expect). Canonicalize the requested charset's name
so that we can uniformly optimize all aliases of those charsets we
special-case, rather than just those few aliases we used to hard-code.

Tidy up the String.getBytes methods in preparation for optimization (in a later
patch).

Fix the performance of Charset.forName to be amortized constant time regardless
of what name is used, in recognition of the fact that Unicode TR#22 section 1.4
means that there are a potentially infinite number of valid pseudo-aliases for
any charset (at least two of which are relatively common in libcore itself, so
I'd imagine plenty are used in the wild too). Some slight synchronized-related
tidying, and more reuse of public API (because one day I'd like to improve the
locking situation deeper down in this code).

In HistoricalNameUtil.java, remove ugliness.

In File.java, use "new String" rather than junk from Util.

In RandomAccessFile.java, reuse convertUTF8WithBuf instead of the otherwise
unused convertFromUTF8 convenience method.

In Util.java, remove now-dead code and comment some code that looks like it
should be killed but is actually unique and necessary. (I'll probably move
this into an intention-revealing class in my next patch. "Util", FFS! "UTF8",
FFS!)

Also add a couple of tests to StringTest.java to show that my improved String
documentation is true, and that some bogus code that I removed was indeed
bogus.

Change-Id: I746f990172c51c30aa5f5037346644552a224841
ava/io/File.java
ava/io/RandomAccessFile.java
ava/lang/String.java
ava/nio/charset/Charset.java
rg/apache/harmony/luni/util/HistoricalNamesUtil.java
rg/apache/harmony/luni/util/Util.java
d0b3bfdf6eeae495a44940eb6e9f9a64ac906b50 07-Jun-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing a bug wherin exceptions weren't being reported for generic methods." into dalvik-dev
98a7a76fe5c0dd5ff949b38da809368681169205 07-Jun-2010 Jesse Wilson <jessewilson@google.com> Fixing a bug wherin exceptions weren't being reported for generic methods.

Change-Id: Ic695ce127c8b4d59508f888028102fb8410e1600
http://b/issue?id=2742467
ava/lang/reflect/Constructor.java
ava/lang/reflect/Method.java
rg/apache/harmony/luni/lang/reflect/GenericSignatureParser.java
6decf73f7142017e514bb1beb8aa4076848b968f 07-Jun-2010 Elliott Hughes <enh@google.com> am c7787cfa: Merge "ICU4.4.1 upgrade 1. Replaced the temp Android patch for BigDecimal support with ICU APIs. 2. Changed ICU.cpp for resource re-structure in ICU4.4 release. 3. Fixed the test data for NumberFormat test caused by the locale data changes."

Merge commit 'c7787cfacfb9800f57c4506db1ba773460335af2' into dalvik-dev

* commit 'c7787cfacfb9800f57c4506db1ba773460335af2':
ICU4.4.1 upgrade
c7787cfacfb9800f57c4506db1ba773460335af2 07-Jun-2010 Elliott Hughes <enh@google.com> Merge "ICU4.4.1 upgrade 1. Replaced the temp Android patch for BigDecimal support with ICU APIs. 2. Changed ICU.cpp for resource re-structure in ICU4.4 release. 3. Fixed the test data for NumberFormat test caused by the locale data changes."
d7d1ce2c63111de39905851e7970b782c7597dbf 07-Jun-2010 Jesse Wilson <jessewilson@google.com> Merge "Adding a few missing type parameters to reflect classes" into dalvik-dev
8556e0aed87cbbf5338e053f9df55a936f788f5f 05-Jun-2010 Jesse Wilson <jessewilson@google.com> Filling in missing Java 6 APIs for AccessController.

This keeps with our current policy: gracefully handle security manager
doPrivileged calls, but don't permit user-defined security managers.

Change-Id: Ie77274e1c82c2baddad74fe467d3a7b80d9dc379
ava/security/AccessController.java
fc01d49659672a4272a2f5a489ce950fb8576b05 05-Jun-2010 Jesse Wilson <jessewilson@google.com> Adding a few missing type parameters to reflect classes

Change-Id: Idae3034c37f3eaff6921d5cf01541abee85762f2
ava/lang/reflect/Array.java
ava/lang/reflect/Member.java
55b2d1c3f492f6140ad6dd18a4bec4ec2643d664 05-Jun-2010 Jesse Wilson <jessewilson@google.com> Fixing the last API deltas between Dalvik and Java 6.

This addresses some problems with generic type signatures (missing <?>)
and new factory methods for XML factory classes.

Change-Id: I9cd886e38b8bc9d495ae4e5ed70f71f27ac3f0cc
ava/lang/Class.java
avax/security/auth/Subject.java
avax/xml/datatype/DatatypeFactory.java
avax/xml/parsers/DocumentBuilderFactory.java
avax/xml/parsers/SAXParserFactory.java
avax/xml/transform/TransformerFactory.java
avax/xml/validation/SchemaFactory.java
947eeb80f985827209c9500851e288504d58ec2e 03-Jun-2010 claireho <chinglanho@gmail.com> ICU4.4.1 upgrade
1. Replaced the temp Android patch for BigDecimal support
with ICU APIs.
2. Changed ICU.cpp for resource re-structure in ICU4.4 release.
3. Fixed the test data for NumberFormat test caused by the locale
data changes.

Change-Id: I307e798f1a135a5024a693d23363733d020ed22f
om/ibm/icu4jni/text/NativeDecimalFormat.java
ava/text/DecimalFormat.java
b10f4611e8c74fd4e996c8ed999a16d81f0df986 03-Jun-2010 Elliott Hughes <enh@google.com> Fix javadoc error found by sdk build.

Can we build this target on our dalvik-dev continuous build too, so we catch
errors like this on our own branch before breaking master? What is the target?

Change-Id: I677220b3a95c2b053572a7d6dc916e1ecfcb61c4
ava/nio/charset/CharsetEncoder.java
9a0a73e14110bd84d0933c260c4ce1d773b83787 03-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> resolved conflicts for merge of e916ffd2 from kraken to master

Change-Id: Ie072d918eb0607d8d713ea885cbf0d353f809332
8396b3fb62f50089cbd727250c40d3eecfcbdd71 02-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> Introducing the beginning of "BlockGuard".

From the JavaDoc (even though this is a @hide class):

Mechanism to let threads set restrictions on what code is allowed
to do in their thread.

This is meant for applications to prevent certain blocking
operations from running on their main event loop (or "UI")
threads.

Note that this is all best-effort to catch most accidental
mistakes and isn't intended to be a perfect mechanism, nor provide
any sort of security.

This is just the start. Future CLs will wire this up in the framework
(giving developers some way to enable it, either via a tiny framework
API, or via their AndroidManifest.xml), add network and Binder
support, etc.

Change-Id: I212e1c8b9fa2bb9e495103e0c2fe6a998dc1f8d0
rg/apache/harmony/luni/platform/Platform.java
466b89ce07ef0ce77504f45690dba56cf933fd41 03-Jun-2010 Elliott Hughes <enh@google.com> Merge remote branch 'goog/dalvik-dev' into mm

Change-Id: I6905802cfe7cda73bb6f52fe0cc79767b4645e82
57a151cc43ef3dfc1040fad5581836c66c8e53f3 03-Jun-2010 Elliott Hughes <enh@google.com> Fix EUC-JP (and friends) to be better than before.

In froyo, EUC-JP, SCSU, and Shift_JIS all worked because we mangled their
replacement byte sequences to 0x3f, which didn't make a lot of sense but
which silenced the RI's mandated checks on valid replacement byte sequences.

This patch subverts the checking for ICU-supported charsets, and lets us
use the best byte sequences for the job.

Also new tests, and rewritten documentation for CharsetEncoder.

Bug: 2732849
Change-Id: Ia104a0bd2adc9c99bfeb550abfd7d5336c412c86
om/ibm/icu4jni/charset/CharsetEncoderICU.java
ava/nio/charset/CharsetEncoder.java
ava/nio/charset/CoderResult.java
42c2d693868179248e907ad864f2b8840945e95a 02-Jun-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing file leaks in SelectorImpl." into dalvik-dev
6b739231f8985f33f20672fe727fde0d0f023ead 02-Jun-2010 Jesse Wilson <jessewilson@google.com> Fixing file leaks in SelectorImpl.

There were two core problems:
source.close() and sink.close() weren't being called by SelectorImpl
ServerSocketChannelImpl was opening a stream socket into a file descriptor,
only to have its PlainServerSocketImpl clobber that file descriptor later
when create() was called.

Alongside fixing these problems I've done some style cleanup. None
of which should impact behavior.

Change-Id: I39eead3fbdc0290e83784e8b50861aeef7020513
ava/io/FileDescriptor.java
ava/net/SocketImpl.java
rg/apache/harmony/luni/net/PlainServerSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/nio/internal/SelectorImpl.java
rg/apache/harmony/nio/internal/ServerSocketChannelImpl.java
a93ce323574a318ffb78bbb1c493829aa204ac00 02-Jun-2010 Ben Murdoch <benm@google.com> Fix NPE in HttpURLConnectionImpl.

I observed this NPE in master (does not repro in Froyo) in the Browser when trying to save an image
as home screen wallpaper. The code path in the Browser uses java.net.URL.openStream() which goes into
HttpURLConnectionImpl and crashes when trying to use the default cookie handler. The other reference
to the cookie handler in this file does a null check before using it, so it seems reasonable to add one
here too.

Change-Id: I587b7fca6551ccf7be9dcbdf3978ee9e0fc22b0a
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
d6db7651bf7868ff780d284eb1bfd6ad860ddc1f 02-Jun-2010 Elliott Hughes <enh@google.com> Tidy up some junk in CharsetEncoderICU.

I claimed to have removed this earlier, but didn't "git add" the file.

Change-Id: I0298b7f356278a031a40390309822981f6cedfbb
om/ibm/icu4jni/charset/CharsetEncoderICU.java
753dcd862b31e85766225590d90ba0b9f481176f 02-Jun-2010 Elliott Hughes <enh@google.com> Refactor some of the OSNetworkSystem stuff to more appropriate homes.

Also rewrite PlainDatagramSocketImpl.peek in terms of existing primitives
rather than requiring its own. I still don't see how it can get called, but
at least now it doesn't require its own native code.

Bug: 2686833

Change-Id: I0453add66dab4c7095ee2a3f51a49efbd1205598
ava/net/InetAddress.java
ava/net/URI.java
ava/nio/channels/spi/SelectorProvider.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
a11db893ab7fdae4c096345a4959a06f71381fc1 02-Jun-2010 Elliott Hughes <enh@google.com> Merge "Rewrite Charset.contains to push the UConverter allocation/deallocation down to C++." into dalvik-dev
7d52d787302b862019da41aa753646d88d43fd61 01-Jun-2010 Elliott Hughes <enh@google.com> Rewrite Charset.contains to push the UConverter allocation/deallocation down to C++.

This also fixes the resource management so we can't leak decoders/encoders if
a constructor throws. (I thought I had a bug for fixing all classes with
finalizers in this way, but I can't find it.)

Bug: 2726958
Change-Id: I169242786cbbe8665aad151ca8f3946bc8c61603
om/ibm/icu4jni/charset/CharsetDecoderICU.java
om/ibm/icu4jni/charset/CharsetEncoderICU.java
om/ibm/icu4jni/charset/CharsetICU.java
om/ibm/icu4jni/charset/NativeConverter.java
3784ab1a0eafa37f1181df2815075300ab1c60f6 01-Jun-2010 Elliott Hughes <enh@google.com> Fix a mistake in the new Charset documentation: UTF-16 swallows BOMs.

Introduced in https://android-git.corp.google.com/g/52835.

Change-Id: I4c8ede55cbec84e25bc8cd522af1f56c79f4369a
ava/nio/charset/Charset.java
b004e4c3d1183a51b9d3d9e012abb1c28481e978 01-Jun-2010 Elliott Hughes <enh@google.com> Merge "Add tests to confirm that Charset behaves as the RI documentation claims." into dalvik-dev
57cbd53b0c4fd880ce5c3a1e07a80754dba28085 01-Jun-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing HttpURLConnection to work without a CookieHandler." into dalvik-dev
c89c180eb85cc0392c3a6c2eb4803594478e665c 28-May-2010 Elliott Hughes <enh@google.com> Add tests to confirm that Charset behaves as the RI documentation claims.

Also improve our Charset documentation.

Note that we fail these new tests, but ICU 4.4 has what we need to fix
this.

Bug: 2702411
Change-Id: I6195dd807e33acdee96138a1d16dde95a786a322
ava/nio/charset/Charset.java
8ee6350602b1cf57f82e07e2c200ef2feb19a239 29-May-2010 Elliott Hughes <enh@google.com> Merge "Remove the last exception message catalog." into dalvik-dev
897538a36c18f4db8f9f68ee566aec0bda842e9f 29-May-2010 Elliott Hughes <enh@google.com> Remove the last exception message catalog.

Bug: 1251121
Change-Id: I45931b9ff908531bda06d6569a4e9618986f821b
ava/security/AlgorithmParameterGenerator.java
ava/security/AlgorithmParameters.java
ava/security/AllPermissionCollection.java
ava/security/BasicPermission.java
ava/security/BasicPermissionCollection.java
ava/security/CodeSigner.java
ava/security/CodeSource.java
ava/security/Identity.java
ava/security/KeyFactory.java
ava/security/KeyPairGenerator.java
ava/security/KeyPairGeneratorSpi.java
ava/security/KeyRep.java
ava/security/KeyStore.java
ava/security/KeyStoreSpi.java
ava/security/MessageDigest.java
ava/security/MessageDigestSpi.java
ava/security/Permissions.java
ava/security/PermissionsHash.java
ava/security/Provider.java
ava/security/SecureRandom.java
ava/security/Security.java
ava/security/Signature.java
ava/security/SignatureSpi.java
ava/security/Timestamp.java
ava/security/UnresolvedPermission.java
ava/security/UnresolvedPermissionCollection.java
ava/security/cert/CertPath.java
ava/security/cert/CertPathBuilder.java
ava/security/cert/CertPathValidator.java
ava/security/cert/CertPathValidatorException.java
ava/security/cert/CertStore.java
ava/security/cert/Certificate.java
ava/security/cert/CertificateFactory.java
ava/security/cert/CertificateFactorySpi.java
ava/security/cert/PKIXBuilderParameters.java
ava/security/cert/PKIXCertPathBuilderResult.java
ava/security/cert/PKIXCertPathValidatorResult.java
ava/security/cert/PKIXParameters.java
ava/security/cert/PolicyQualifierInfo.java
ava/security/cert/TrustAnchor.java
ava/security/cert/X509CRL.java
ava/security/cert/X509CRLSelector.java
ava/security/cert/X509CertSelector.java
ava/security/cert/X509Certificate.java
ava/security/spec/ECFieldF2m.java
ava/security/spec/ECFieldFp.java
ava/security/spec/ECGenParameterSpec.java
ava/security/spec/ECParameterSpec.java
ava/security/spec/ECPoint.java
ava/security/spec/ECPrivateKeySpec.java
ava/security/spec/ECPublicKeySpec.java
ava/security/spec/EllipticCurve.java
ava/security/spec/MGF1ParameterSpec.java
ava/security/spec/PSSParameterSpec.java
ava/security/spec/RSAMultiPrimePrivateCrtKeySpec.java
ava/security/spec/RSAOtherPrimeInfo.java
avax/security/cert/X509Certificate.java
rg/apache/harmony/luni/util/Msg.java
rg/apache/harmony/luni/util/MsgHelp.java
rg/apache/harmony/security/DefaultPolicyScanner.java
rg/apache/harmony/security/SystemScope.java
rg/apache/harmony/security/UnresolvedPrincipal.java
rg/apache/harmony/security/asn1/ASN1BitString.java
rg/apache/harmony/security/asn1/ASN1Choice.java
rg/apache/harmony/security/asn1/ASN1Explicit.java
rg/apache/harmony/security/asn1/ASN1Implicit.java
rg/apache/harmony/security/asn1/ASN1Type.java
rg/apache/harmony/security/asn1/ASN1TypeCollection.java
rg/apache/harmony/security/asn1/BerInputStream.java
rg/apache/harmony/security/asn1/BitString.java
rg/apache/harmony/security/asn1/DerInputStream.java
rg/apache/harmony/security/asn1/ObjectIdentifier.java
rg/apache/harmony/security/fortress/DefaultPolicyParser.java
rg/apache/harmony/security/fortress/Engine.java
rg/apache/harmony/security/fortress/PolicyUtils.java
rg/apache/harmony/security/fortress/SecurityUtils.java
rg/apache/harmony/security/internal/nls/Messages.java
rg/apache/harmony/security/internal/nls/messages.properties
rg/apache/harmony/security/pkcs7/SignerInfo.java
rg/apache/harmony/security/provider/cert/DRLCertFactory.java
rg/apache/harmony/security/provider/cert/X509CRLImpl.java
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/security/provider/cert/X509CertImpl.java
rg/apache/harmony/security/provider/cert/X509CertPathImpl.java
rg/apache/harmony/security/provider/crypto/DSAKeyFactoryImpl.java
rg/apache/harmony/security/provider/crypto/DSAPrivateKeyImpl.java
rg/apache/harmony/security/provider/crypto/DSAPublicKeyImpl.java
rg/apache/harmony/security/provider/crypto/RandomBitsSupplier.java
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
rg/apache/harmony/security/provider/crypto/SHA1_MessageDigestImpl.java
rg/apache/harmony/security/provider/crypto/SHA1withDSA_SignatureImpl.java
rg/apache/harmony/security/utils/JarUtils.java
rg/apache/harmony/security/utils/ObjectIdentifier.java
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/apache/harmony/security/x501/Name.java
rg/apache/harmony/security/x509/CRLDistributionPoints.java
rg/apache/harmony/security/x509/DNParser.java
rg/apache/harmony/security/x509/DistributionPoint.java
rg/apache/harmony/security/x509/GeneralName.java
rg/apache/harmony/security/x509/InfoAccessSyntax.java
rg/apache/harmony/security/x509/NameConstraints.java
rg/apache/harmony/security/x509/tsp/TSTInfo.java
2fbf6b1a7519d3424c356122435efbbfc81de5eb 29-May-2010 Jesse Wilson <jessewilson@google.com> Fixing HttpURLConnection to work without a CookieHandler.

This was a huge regression that thankfully many of our tests pointed out.

Change-Id: I12db314cfe732402889d9cf7f1864789f3711686
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
018b67accb28954d35f3cd697be3428e9b45b7d8 28-May-2010 Jesse Wilson <jessewilson@google.com> Further small fixes to increase API compatibility with RI v6.

Highlights:
code was moved from SSLContextImpl to its superclass.
took X500Principal code from Harmony

Tested with Harmony's tests.api.javax.security.auth.x500.X500PrincipalTest.

Change-Id: I89b46d4b47e692a5461916cca972e05de95f3280
ava/sql/SQLException.java
ava/text/DecimalFormatSymbols.java
ava/util/Deque.java
ava/util/LinkedList.java
ava/util/concurrent/ConcurrentLinkedDeque.java
ava/util/zip/DeflaterInputStream.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/InflaterOutputStream.java
avax/net/ssl/SSLContextSpi.java
avax/security/auth/x500/X500Principal.java
rg/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
d23d1433b18b971771a14fa1ac1d1262a827b369 28-May-2010 Jesse Wilson <jessewilson@google.com> Merge "Filling in APIs from RI 6 that we missed." into dalvik-dev
f2422829389c7dba1b23c8c2c6fb34dd7a40fe42 28-May-2010 Jesse Wilson <jessewilson@google.com> Filling in APIs from RI 6 that we missed.

Change-Id: I7f98bbbb3c68efee61b88acc3bc25f2c9990b519
ava/awt/font/TextAttribute.java
bf87c56b39383f6b11c36c3cdc93df4b03fed914 28-May-2010 Brian Carlstrom <bdc@google.com> Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-master

Conflicts:
JavaLibrary.mk
luni/src/main/java/java/lang/System.java
luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
luni/src/test/java/java/net/URLConnectionTest.java
support/src/test/java/tests/TestSuiteFactory.java
x-net/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

Change-Id: I1038f749c8c9bd640aae7ca96627810936454883
82317aca10195366fe67b70b0d10554a8886e183 28-May-2010 Elliott Hughes <enh@google.com> Merge "Javadoc improvements." into dalvik-dev
4adff24306c86433ce4f771da8489a574e63318e 27-May-2010 Elliott Hughes <enh@google.com> Javadoc improvements.

Bug: 2718660
Change-Id: Ifae8541d269ac0fa5581802a8d78453af19a0e10
ava/lang/Object.java
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/util/HashMap.java
f0c42694d45de3d263ca8c123ec37e02818fefb0 28-May-2010 Jesse Wilson <jessewilson@google.com> Fixing Class.getMethod() to support synthetic methods from covariant return types.

Change-Id: I569d5d68888975f2828c8ab56b015fd323ad9114
ava/lang/ClassCache.java
04a837d3657716ea4e618194f4e8771554caec46 27-May-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing many test failures with the new cookie implementation." into dalvik-dev
6e5d43fafa5d4fa75cefa8e552c6c1c60a5d3534 27-May-2010 Jesse Wilson <jessewilson@google.com> Fixing many test failures with the new cookie implementation.

Highlights:
- don't send cookies with nonmatching ports or secure attributes
- default the port when "port" with no value is received
- make CookieStore threadsafe
- make CookieStore retain only host in URIs
- fix concurrent mod bug when removing expired cookies
- support null URIs in the CookieStore (unfortuantely)
- parse more date formats; even ridiculous date formats
- match ".google.com" to "google".
- support single quotes in attribute values
- exploit @hide to add a new API, URI.getEffectivePort()

Alongside this change I've fixed several test problems in dalvik-prebuild's
copy of both the Harmony tests and the jtreg tests. Most of the fixes involve
commenting out bogus assertions.

Change-Id: I71f09110b48d8ca4f3538fd21c8dde7ffdd35a6a
ava/net/CookieManager.java
ava/net/CookieStore.java
ava/net/CookieStoreImpl.java
ava/net/HttpCookie.java
ava/net/URI.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConfiguration.java
2be0ae9c8abc05d1c94c8bb170503ee2feae1866 27-May-2010 Brian Carlstrom <bdc@google.com> Add missing package on ambiguous class name and cast on ambiguous type

Change-Id: I470c929f67ecaffa91d5a67c87f1ed5358cfd84c
rg/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
0c131a2ca38465b7d1df4eaee63ac73ce4d5986d 21-May-2010 Brian Carlstrom <bdc@google.com> RI 6 support for javax.net.ssl

Summary:
- RI 6 support for javax.net.ssl
- SSLEngine fixes based on new SSLEngineTest
- fix Cipher.checkMode bug recently introduced in dalvik-dev

Details:

Fix Cipher.checkMode that was preventing most javax.net.ssl tests from working

luni/src/main/java/javax/crypto/Cipher.java

RI 6 has introduced the concept of a "Default" SSLContext. This is
accessed via SSLContext.getDefault() and also
SSLContext.getInstance("Default"). Harmony had its own
DefaultSSLContext but it was not created via an SSLContextSpi. It also
was a single shared instance whereas the new RI6 Default SSLContext
shares internal SSLSessionContext instances between different Default
SSLContexts.

Refactored the old code into an SSLContextImpl subclass that
allows it to be created via SSLContext.getInstance. SSLContextImpl
ensures that we only ever create one set of SSLSessionContext
instances for the Default context.

luni/src/main/java/javax/net/ssl/DefaultSSLContext.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/DefaultSSLContextImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLContextImpl.java

Added SSLContext.getDefault and SSLContext.setDefault

luni/src/main/java/javax/net/ssl/SSLContext.java

Replace dependencies of old DefaultSSLContext with use of SSLContext.getDefault

luni/src/main/java/javax/net/ssl/SSLServerSocketFactory.java
luni/src/main/java/javax/net/ssl/SSLSocketFactory.java

Register "SSLContext.Default" as DefaultSSLContextImpl class for SSLContext.getInstance()

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/JSSEProvider.java

Added constant for new "Default" standard name and added it to
SSL_CONTEXT_PROTOCOLS. New tests based on SSL_CONTEXT_PROTOCOLS
made it clear that neither Android or RI support SSLv2 so removed
it from SSL_CONTEXT_PROTOCOLS and SSL_SOCKET_PROTOCOLS. Added
constant for TLS as well which was previously scattered all over
tests. Remove SSLv2Hello from SSL_SOCKET_PROTOCOLS for Android
since with OpenSSL disablign SSLv2 means you can not use
SSLv2Hello either.

support/src/test/java/javax/net/ssl/StandardNames.java

Added tests for SSLContext.getDefault and
SSLContext.setDefault. Changed existing tests to work on all
protocols including new "Default".

luni/src/test/java/javax/net/ssl/SSLContextTest.java

RI 6 has introduced the notion of SSLParameters which encapsulate SSL
the handshake parameters of desired cipher suites, protocols, and
client authentication requirements.

The main new class SSLParameters is basically just a bag of fields
with accessors and a couple simple constructors. The only things
of note are that it clones all String arrays on input and output
and the setters for the two boolean fields ensure that only one is
true at a time.

luni/src/main/java/javax/net/ssl/SSLParameters.java

Added SSLContext.getDefaultSSLParameters and
SSLContext.getSupportedSSLParameters which simply delegate to the
SSLContextSpi.

luni/src/main/java/javax/net/ssl/SSLContext.java

Added abstract SSLContextSpi.engineGetDefaultSSLParameters and
SSLContext.engineGetSupportedSSLParameters.

luni/src/main/java/javax/net/ssl/SSLContextSpi.java

Added engineGetDefaultSSLParameters and
engineGetSupportedSSLParameters implementation. The RI documents
in SSLContextSpi that these are implemented by default by creating
a socket via the SSLContext's SocketFactory and asking for the
enabled/supported cipher suites and protocols respectively, so
that is what is done. The doc mentions throwing
UnsupportedOperationException if there is a problem, so we do that
as well.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLContextImpl.java

Added {SSLEngine,SSLSocket}.{getSSLParameters,setSSLParameters}
which are analogous.

luni/src/main/java/javax/net/ssl/SSLEngine.java
luni/src/main/java/javax/net/ssl/SSLSocket.java

Added SSLParametersTest

luni/src/test/java/javax/net/ssl/SSLParametersTest.java
luni/src/test/java/javax/net/ssl/AllTests.java

Added SSLContext.get{Default,Supported}SSLParameters tests

luni/src/test/java/javax/net/ssl/SSLContextTest.java

Added SSLSocket.{getSSLParameters,setSSLParameters} tests and added
some extra asserts to test_SSLSocketPair_create based on experience
with test_SSLEnginePair_create.

luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Dummy implementation of new SSLContextSpi for test classes.

support/src/test/java/org/apache/harmony/security/tests/support/MySSLContextSpi.java
support/src/test/java/org/apache/harmony/xnet/tests/support/MySSLContextSpi.java

Other minor RI 6 API changes:

RI 6 removed Serializable from HandshakeCompletedEvent and SSLSessionBindingEvent

luni/src/main/java/javax/net/ssl/HandshakeCompletedEvent.java
luni/src/main/java/javax/net/ssl/SSLSessionBindingEvent.java

RI 6 added generic types to the KeyStoreBuilderParameters List
constructor and accessor as well as to
SSLSessionContext.getIds. Fixed tests to compile with generic types.

luni/src/main/java/javax/net/ssl/KeyStoreBuilderParameters.java
luni/src/main/java/javax/net/ssl/SSLSessionContext.java
luni/src/test/java/tests/api/javax/net/ssl/KeyStoreBuilderParametersTest.java

SSLEngine improvements. Since I was changing SSLEngine, I wrote an
SSLEngineTest based on my SSLSocketTest to do some simply sanity
checking. It expose a number of issues. I've fixed the small ones,
marked the rest as known failures.

Renamed some TLS_ cipher suites to SSL_ to match JSSE standard
names. These were all old suites no longer supported by RI or
OpenSSL which is why they were missed in an earlier cleanup of this
type in this class. Also fixed SSLEngine supported cipher suites
list not to include SSL_NULL_WITH_NULL_NULL which is not a valid
suite to negotiate.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CipherSuite.java

SSLEngine instances can have null host values, which caused a
NullPointerException in the ClientSessionContext implementation.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientSessionContext.java

SSLEngine tests were failing because SSLParameters was throwing
NullPointerException instead of IllegalArgument exception on null
element values. Fixed null pointer message style while I was here.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLParameters.java

Fixed SSLEngine instances to default to server mode like RI

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLContextImpl.java

Fixed KEY_TYPES based on SSLEngine implementation. Removed dead
code NativeCrypto.getEnabledProtocols which was recently made
obsolete. Cleaned up null exception messages to follow our convention.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java

Added SSLEngineTest which parallels SSLSocketTest in its
coverage. Similarly added TestSSLEnginePair which loosely parallels
TestSSLSocketPair.

luni/src/test/java/javax/net/ssl/SSLEngineTest.java
luni/src/test/java/javax/net/ssl/AllTests.java
support/src/test/java/javax/net/ssl/TestSSLEnginePair.java

SSLEngineTest betters exposed the differences between SSLSocket and
SSLEngine supported cipher suites. StandardNames now has an
CIPHER_SUITES_SSLENGINE definition which denotes what is missing
and what is extra and why in the SSLEngine implementation.

support/src/test/java/javax/net/ssl/StandardNames.java

Created StandardNames.assert{Valid,Supported}{CipherSuites,Protocols}
to factor out some code test code that is also used by new tests.

support/src/test/java/javax/net/ssl/StandardNames.java
luni/src/test/java/javax/net/ssl/SSLSocketFactoryTest.java
luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Remove SSLSocketTest known failure and add new SSLEngineTest known failures

expectations/knownfailures.txt

SSL_OP_NO_TICKET change was recently merged from master which required some fixes.

For the moment, sslServerSocketSupportsSessionTickets always returns false.

support/src/test/java/javax/net/ssl/TestSSLContext.java

Fixed flakey test_SSLSocket_HandshakeCompletedListener which had a
race because the client thread look in the server session context
for an session by id potentially before the server thread had a
chance to store its session. Made noticable because of
SSL_OP_NO_TICKET recently merged from master (before this code
path was host only, not device)

luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Fix checkjni issue where we need to check for pending exception in
OpenSSL callback. Possibly introduced by recent merge of
SSL_OP_NO_TICKET from master.

luni/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

Expectation updates

Remove SSLSocketTest known failure and add new SSLEngineTest known failures

expectations/knownfailures.txt

Tag test_SSLSocket_getSupportedCipherSuites_connect as large

expectations/taggedtests.txt

Misc changes:

opening brace on wrong line

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerSessionContext.java

Long line cleanup while debugging

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketFactoryImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketFactoryImpl.java
support/src/test/java/javax/net/ssl/TestKeyStore.java

Removed bogus import

luni/src/test/java/javax/net/ssl/SSLSessionContextTest.java

Comment clarify while debugging

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Ctor -> Constructor in comment

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java

Fixed naming of SocketTest_Test_create to TestSocketPair_Create to match renamed classes

luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Change-Id: I99505e97d6047eeabe4a0b93202075a0b2d486ec
avax/crypto/Cipher.java
avax/net/ssl/DefaultSSLContext.java
avax/net/ssl/HandshakeCompletedEvent.java
avax/net/ssl/KeyStoreBuilderParameters.java
avax/net/ssl/SSLContext.java
avax/net/ssl/SSLContextSpi.java
avax/net/ssl/SSLEngine.java
avax/net/ssl/SSLParameters.java
avax/net/ssl/SSLServerSocketFactory.java
avax/net/ssl/SSLSessionBindingEvent.java
avax/net/ssl/SSLSessionContext.java
avax/net/ssl/SSLSocket.java
avax/net/ssl/SSLSocketFactory.java
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
rg/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
rg/apache/harmony/xnet/provider/jsse/DefaultSSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
rg/apache/harmony/xnet/provider/jsse/JSSEProvider.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLParameters.java
rg/apache/harmony/xnet/provider/jsse/ServerSessionContext.java
162a12c1442641a95fe95859fa4e561b22db049f 25-May-2010 Elliott Hughes <enh@google.com> Remove @hide from Java 6 API.

I've left the two new spi packages @hidden, because I think we shouldn't
support them without convincing demand from developers (and I don't
believe there could be such a thing --- they just don't make sense, and
if we add anything, it should be the ability to provide extra ICU data).

Also fix a handful of javadoc syntax errors in Arrays.java and TreeMap.java.

Bug: 2497395
Change-Id: I4176b72daff0face4ed6c7ee1d1f4267d52006b4
ava/io/Console.java
ava/io/File.java
ava/io/IOError.java
ava/io/IOException.java
ava/io/ObjectStreamClass.java
ava/io/PipedInputStream.java
ava/io/PipedReader.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/lang/Double.java
ava/lang/Enum.java
ava/lang/Float.java
ava/lang/Math.java
ava/lang/StrictMath.java
ava/lang/String.java
ava/lang/System.java
ava/net/IDN.java
ava/net/InterfaceAddress.java
ava/net/NetworkInterface.java
ava/nio/Buffer.java
ava/text/DateFormatSymbols.java
ava/text/DecimalFormat.java
ava/text/DecimalFormatSymbols.java
ava/text/Normalizer.java
ava/text/NumberFormat.java
ava/util/Arrays.java
ava/util/Calendar.java
ava/util/ListResourceBundle.java
ava/util/Locale.java
ava/util/Properties.java
ava/util/PropertyResourceBundle.java
ava/util/ResourceBundle.java
ava/util/Scanner.java
ava/util/ServiceConfigurationError.java
ava/util/ServiceLoader.java
ava/util/TreeMap.java
ava/util/logging/Logger.java
ava/util/zip/DeflaterInputStream.java
ava/util/zip/InflaterOutputStream.java
ava/util/zip/ZipError.java
36b3cdfbcd219d0308753d919638262c16fd34da 14-May-2010 Jeremy Sharpe <jsharpe@google.com> Implement Java 6 SQL API. Javadoc is still messy and some unit tests
need to be updated to reflect newly implemented parts of the API.

Change-Id: Icee718ef997d29aa08fc78b101f87532dc89167f
ava/sql/Array.java
ava/sql/BatchUpdateException.java
ava/sql/Blob.java
ava/sql/CallableStatement.java
ava/sql/ClientInfoStatus.java
ava/sql/Clob.java
ava/sql/Connection.java
ava/sql/DataTruncation.java
ava/sql/DatabaseMetaData.java
ava/sql/NClob.java
ava/sql/ParameterMetaData.java
ava/sql/PreparedStatement.java
ava/sql/ResultSet.java
ava/sql/ResultSetMetaData.java
ava/sql/RowId.java
ava/sql/RowIdLifetime.java
ava/sql/SQLClientInfoException.java
ava/sql/SQLDataException.java
ava/sql/SQLException.java
ava/sql/SQLFeatureNotSupportedException.java
ava/sql/SQLInput.java
ava/sql/SQLIntegrityConstraintViolationException.java
ava/sql/SQLInvalidAuthorizationSpecException.java
ava/sql/SQLNonTransientConnectionException.java
ava/sql/SQLNonTransientException.java
ava/sql/SQLOutput.java
ava/sql/SQLRecoverableException.java
ava/sql/SQLSyntaxErrorException.java
ava/sql/SQLTimeoutException.java
ava/sql/SQLTransactionRollbackException.java
ava/sql/SQLTransientConnectionException.java
ava/sql/SQLTransientException.java
ava/sql/SQLWarning.java
ava/sql/SQLXML.java
ava/sql/Statement.java
ava/sql/Types.java
ava/sql/Wrapper.java
avax/sql/CommonDataSource.java
avax/sql/ConnectionPoolDataSource.java
avax/sql/DataSource.java
avax/sql/PooledConnection.java
avax/sql/RowSet.java
avax/sql/StatementEvent.java
avax/sql/StatementEventListener.java
59cb78e2355929587089ee436a0172af652d2aa5 21-May-2010 Jeremy Sharpe <jsharpe@google.com> Fix NullPointerException from TreeMap immutable entry methods by checking the return values for null before wrapping them with new SimpleImmutableEntrys.

Change-Id: Ib8a78dd13b8b2895acd5f0016bc353f763ea50be
ava/util/TreeMap.java
a4a1f1ce70da1dd3a4ddf0b962b669cb78a63000 25-May-2010 Elliott Hughes <enh@google.com> Merge "Remove the luni localized exception messages." into dalvik-dev
b1396870f92135aa140bd2b86221768dea5bc11d 25-May-2010 Elliott Hughes <enh@google.com> Remove the luni localized exception messages.

Also fix a bug I introduced in KXmlSerializer: s.isEmpty() is not
equivalent to "".equals(s) if s is allowed to be null.

Bug: 1251121
Change-Id: I41a0a98ffb49f214041c9110f824d327af5c34e8
ava/io/BufferedInputStream.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/io/ByteArrayInputStream.java
ava/io/ByteArrayOutputStream.java
ava/io/CharArrayReader.java
ava/io/CharArrayWriter.java
ava/io/DataInputStream.java
ava/io/DataOutputStream.java
ava/io/File.java
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/FilePermission.java
ava/io/FilterOutputStream.java
ava/io/InputStream.java
ava/io/InputStreamReader.java
ava/io/LineNumberInputStream.java
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/OutputStream.java
ava/io/OutputStreamWriter.java
ava/io/PipedInputStream.java
ava/io/PipedOutputStream.java
ava/io/PipedReader.java
ava/io/PipedWriter.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/RandomAccessFile.java
ava/io/SequenceInputStream.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/io/StringWriter.java
ava/lang/AbstractStringBuilder.java
ava/lang/ArrayIndexOutOfBoundsException.java
ava/lang/ClassCastException.java
ava/lang/Enum.java
ava/lang/EnumConstantNotPresentException.java
ava/lang/StringIndexOutOfBoundsException.java
ava/lang/reflect/Proxy.java
ava/net/CookieStoreImpl.java
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ava/net/HttpURLConnection.java
ava/net/Inet6Address.java
ava/net/MulticastSocket.java
ava/net/NetworkInterface.java
ava/net/Proxy.java
ava/net/ProxySelectorImpl.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketImpl.java
ava/net/SocketPermission.java
ava/net/URIEncoderDecoder.java
ava/net/URISyntaxException.java
ava/net/URL.java
ava/net/URLClassLoader.java
ava/net/URLConnection.java
ava/net/URLDecoder.java
ava/net/URLStreamHandler.java
ava/util/Arrays.java
ava/util/BitSet.java
ava/util/Collections.java
ava/util/Currency.java
ava/util/MissingFormatArgumentException.java
ava/util/Scanner.java
ava/util/SimpleTimeZone.java
ava/util/Timer.java
ava/util/UUID.java
ava/util/UnknownFormatConversionException.java
ava/util/UnknownFormatFlagsException.java
rg/apache/harmony/luni/internal/net/www/protocol/file/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConfiguration.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/https/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnectionImpl.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/net/SocketInputStream.java
rg/apache/harmony/luni/net/SocketOutputStream.java
rg/apache/harmony/luni/net/Socks4Message.java
rg/apache/harmony/luni/util/ExternalMessages.properties
rg/apache/harmony/luni/util/NotImplementedException.java
rg/apache/harmony/luni/util/Util.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
d44d87eac62e1710d2cd420b00c05c98aebc8c98 25-May-2010 Jesse Wilson <jessewilson@google.com> Working through jtreg failures in java.util.

TreeMap.clone() failed on an empty treemap.
Some EnumSet tests needed to be suppressed or given an extended timeout.

Change-Id: I98240910f5fdbe3226ef1071f99a8cac37e2c7ef
ava/util/TreeMap.java
1ca3a957ea02c279214b668925e0b61e618da606 25-May-2010 Jesse Wilson <jessewilson@google.com> Reduce the visibility of HttpCookie.isFullyQualifiedDomainName().

This is a genuine bug caught by apicheck. Yay apicheck.

Change-Id: I8f9cb60d42d7cba1b65b3173660ef51cd8427622
ava/net/HttpCookie.java
3fab88eb2cd44ee5231b05f63e20917d3db12079 25-May-2010 Jesse Wilson <jessewilson@google.com> Merge "Redo HttpCookie.parse()." into dalvik-dev
77160e9cd7841fcf49d20b97a75d60e827c351ee 21-May-2010 Jesse Wilson <jessewilson@google.com> Redo HttpCookie.parse().

The previous code failed on quoted strings like ;Port="80,8080".
It also had weird behavior, like not supporting Expires headers
when the requesting locale wasn't English.

Tested with Harmony's tests and our CookieTest.

Change-Id: I271817b6febd30248f55f834cdcc2e3d5dfcd4c2
ava/net/CookieManager.java
ava/net/HttpCookie.java
ava/net/InetAddress.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
ebc652d27ed8d68240acf2ff778c01356e1e6ba6 24-May-2010 Elliott Hughes <enh@google.com> Merge "Remove more localized exception messages." into dalvik-dev
c8a71612646a1b0e2b787fe985245def93ecc705 24-May-2010 Jesse Wilson <jessewilson@google.com> Fixing binary search for large arrays of reference types.

Change-Id: Ibf2b49fd2cf1538a1a369fa36f2a1c8275e33677
ava/util/Collections.java
80a7fbab52b96c9fd47c72f8987d1babe2cd001d 22-May-2010 Elliott Hughes <enh@google.com> Remove more localized exception messages.

I also accidentally mixed two unrelated changes in here: replacing "".equals
and equals("") with String.isEmpty, and removing some dead code in
org.apache.harmony.luni.util.Util.

Change-Id: I0aaad43290b083085b3095b624caf096de487223
om/ibm/icu4jni/text/NativeDecimalFormat.java
ava/io/FilePermission.java
ava/lang/ClassLoader.java
ava/net/NetworkInterface.java
ava/net/ProxySelectorImpl.java
ava/net/SocketPermission.java
ava/net/URI.java
ava/net/URL.java
ava/net/URLClassLoader.java
ava/net/URLStreamHandler.java
ava/util/Scanner.java
ava/util/logging/Logger.java
ava/util/prefs/AbstractPreferences.java
avax/crypto/Cipher.java
avax/crypto/CipherSpi.java
avax/crypto/EncryptedPrivateKeyInfo.java
avax/crypto/ExemptionMechanism.java
avax/crypto/KeyAgreement.java
avax/crypto/KeyGenerator.java
avax/crypto/Mac.java
avax/crypto/SealedObject.java
avax/crypto/SecretKeyFactory.java
avax/crypto/spec/DESKeySpec.java
avax/crypto/spec/DESedeKeySpec.java
avax/crypto/spec/IvParameterSpec.java
avax/crypto/spec/PBEKeySpec.java
avax/crypto/spec/PBEParameterSpec.java
avax/crypto/spec/PSource.java
avax/crypto/spec/RC2ParameterSpec.java
avax/crypto/spec/RC5ParameterSpec.java
avax/crypto/spec/SecretKeySpec.java
rg/apache/harmony/crypto/internal/NullCipherSpi.java
rg/apache/harmony/crypto/internal/nls/Messages.java
rg/apache/harmony/crypto/internal/nls/messages.properties
rg/apache/harmony/luni/internal/net/www/protocol/jar/Handler.java
rg/apache/harmony/luni/util/Util.java
2313047d797e4daece04da8e8ed406d26b589f82 22-May-2010 Elliott Hughes <enh@google.com> Remove more localized exception messages.

Change-Id: I88eba4180e66d328c23a266f133b96d53cf62d40
avax/security/auth/AuthPermission.java
avax/security/auth/PrivateCredentialPermission.java
avax/security/auth/Subject.java
avax/security/auth/callback/PasswordCallback.java
avax/security/auth/x500/X500Principal.java
rg/apache/harmony/auth/internal/nls/Messages.java
rg/apache/harmony/auth/internal/nls/messages.properties
c941a854631c4bf2369adc84887bb6dd386a1bcc 22-May-2010 Elliott Hughes <enh@google.com> Fix build.

Change-Id: I61d838fdb9147b1e488cf6c9ea0aa1e1e87f935e
ava/util/jar/InitManifest.java
ava/util/jar/JarFile.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/GZIPInputStream.java
ava/util/zip/Inflater.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/ZipInputStream.java
ava/util/zip/ZipOutputStream.java
b1433b3bd4dfc05426e5d9c3100b5fbaa198d8a0 21-May-2010 Elliott Hughes <enh@google.com> More messages.properties removal.

Change-Id: Ie90ca910b1d9f23565f8929c63186879932a4dc3
ava/util/jar/InitManifest.java
ava/util/jar/JarFile.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/GZIPInputStream.java
ava/util/zip/Inflater.java
ava/util/zip/ZipInputStream.java
ava/util/zip/ZipOutputStream.java
rg/apache/harmony/archive/internal/nls/Messages.java
rg/apache/harmony/archive/internal/nls/messages.properties
40679a19b5de44363aa3f68d77cc13a74b41ffd6 21-May-2010 Elliott Hughes <enh@google.com> Merge "Fix more Charset/CharsetDecoder/CharsetEncoder bugs." into dalvik-dev
c60bc1815dca549f3fb4e572f6aac749d7fa9fc6 21-May-2010 Elliott Hughes <enh@google.com> Fix more Charset/CharsetDecoder/CharsetEncoder bugs.

Another round of Get/Release Critical removal led me to some code that couldn't
possibly be right, and wasn't. This patch fixes a large number of our
Charset-related bugs, including ones that previous hacks were added to paper
over. With this patch, we have three failures, all "new", but all there since
the start, and relating to the fact that our UTF-16 and UTF-32 encoders don't
write big-endian output on little-endian devices (for which I've raised
http://b/2702411).

Bug: 2663177
Change-Id: I70dfa55f88a3f635528be3ad27b2a5fc1bfb70fc
om/ibm/icu4jni/charset/CharsetDecoderICU.java
om/ibm/icu4jni/charset/CharsetEncoderICU.java
om/ibm/icu4jni/charset/CharsetICU.java
ava/nio/charset/Charset.java
ava/nio/charset/CharsetDecoder.java
ava/nio/charset/CharsetEncoder.java
ava/nio/charset/CoderResult.java
ava/nio/charset/IllegalCharsetNameException.java
ava/nio/charset/UnsupportedCharsetException.java
aacf6f9741dea0f12fbff5e7696e53f251177280 20-May-2010 Brian Carlstrom <bdc@google.com> Enable Diffie-Hellman cipher suites

Enable Diffie-Hellman cipher suites in NativeCrypto (and in
StandardNames to match for testing). This means we now have the same
default cipher suite list as RI 5.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
support/src/test/java/javax/net/ssl/StandardNames.java

Enabling DH made it obvious that the RI check for enable cipher suites
on SSLServerSocket.accept was not as stringent as first
thought. Apparently they don't care if all enabled cipher suites have
certificates/keys, just that at least one of them will work, even if
its anonymous. Factored out the logic to check this into
checkEnabledCipherSuites for clarity along with the supporting
checkForPrivateKey. Also only check if the socket is in server mode,
since its fine to have nothing configured for server acting as a
client for handshake purposes.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java

The real work to enable Diffie-Hellman was to use
SSL_CTX_set_tmp_dh_callback to set a callback to get DH
parameters. There are two ways to create the parameters. The first is
to use DH_generate_parameters_ex which is very slow (minutes) as is
recommended as install time option. The second is to use
DSA_generate_parameters_ex followed by DSA_dup_DH, which is faster for
a single call, but must be done every time, so slower overall. We
currently take the second approach to just have DH working.

luni/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

Changed ephemeral RSA keys to be stored per SSL in AppData, not in a static global.

luni/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

Fix LS_ to TLS_ typo in commented out constant. Removed easy to miss wrapping in array definition.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CipherSuite.java

Renamed CipherSuites defaultPretendant to defaultCipherSuites which
led to renaming the CipherSuites constants to follow the coding style.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CipherSuite.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/DigitalSignature.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLParameters.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerKeyExchange.java

Change-Id: Ia38de48cabb699b24fe6e341ba79f34e3da8b543
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/DigitalSignature.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLParameters.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerKeyExchange.java
cf6c3a752da274cc5025191d3bcd62e6222f4a4c 19-May-2010 Elliott Hughes <enh@google.com> Fix CharsetEncoder.replaceWith, and simplify our implementation.

All I wanted to do was remove some more Get/Release Critical calls,
but I stumbled across some code that couldn't possibly be right.

Bug: 2663177
Change-Id: I82e240fe27ff9fcfe7f036c2d7708a9e55afa3ee
om/ibm/icu4jni/charset/CharsetDecoderICU.java
om/ibm/icu4jni/charset/CharsetEncoderICU.java
om/ibm/icu4jni/charset/CharsetICU.java
om/ibm/icu4jni/charset/NativeConverter.java
ava/nio/charset/CharsetEncoder.java
ce32a5646e9905a55d1c03b18757d401b4ab587e 19-May-2010 Jesse Wilson <jessewilson@google.com> Merge "Fix the HTTP client to read from the cookie store on HTTP requests." into dalvik-dev
071fec0c99935ebf4dd01a799ca7e7bee69b7c76 19-May-2010 Jesse Wilson <jessewilson@google.com> Fix the HTTP client to read from the cookie store on HTTP requests.

The forthcoming follow up is to write to the cookie store on HTTP responses.

Change-Id: I346136d4a4409a003c391c8dfbcf755af19b708d
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
dda122a283ba0c5779b269347270fca8957b560c 19-May-2010 Brian Carlstrom <bdc@google.com> Merge "SSLServerSocket accept should make sure enabled cipher suites have supporting private keys" into dalvik-dev
8f78381c9c7a64f7c703913d702f2a8895207877 19-May-2010 Brian Carlstrom <bdc@google.com> SSLServerSocket accept should make sure enabled cipher suites have supporting private keys

Make CipherSuite static fields final (noticed because I tried to use some in a switch statement).
Also renamed "cuites*" to "suites*" and fixed UNKNOUN to UNKNOWN

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CipherSuite.java

SSLServerSocket now matches the RI behavior of throwing an
SSLException for missing keys for non-anonymous cipher suites.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java

Fixed one KnownFailure

luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Change-Id: I1ccbf93cfc5aa5951b1f33881446d93c380b6e68
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
4e2163262dcdd279f442d5d2b1cdacf4adf3b446 19-May-2010 Elliott Hughes <enh@google.com> Remove more uses of Get/Release Critical.

Bug: 2663177
Change-Id: I87325ca8bb064b6be6c3cc3c885a8b18cceaa36c
ava/math/BigInt.java
e38b310627d785e7052e5aabea85bcfacb2fc991 18-May-2010 Elliott Hughes <enh@google.com> Merge "Add error checking in setZoneStrings and improve the documentation." into dalvik-dev
bd55297544e2db648bce35c605c9257903fcb8aa 18-May-2010 Elliott Hughes <enh@google.com> Add error checking in setZoneStrings and improve the documentation.

Also some internal tidying, and a few more test expectations.

Change-Id: Ic183baecab7d12151fcdb3b73842c345075b173c
ava/text/DateFormatSymbols.java
ava/text/Format.java
ava/text/SimpleDateFormat.java
a653cca054f36de92bbef8498be3f0f01d9d6119 18-May-2010 Brian Carlstrom <bdc@google.com> SSLSocketFactory.connect(Socket...) should allow port of -1

SSLSession.getPeerPort is supposed to return -1 when the port is
undefined so now we initialize it to that value.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java

Avoid creating InetAddress to store the OpenSSLSessionImplWrapper host
and port arguments since it was causing an exception on an port value
of -1 and was just used to go back to the original host and port when
creating the SSLSession, which is allowed to return a port value of -1.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Remove last of KnownFailures for SSLSocketFactory

luni/src/test/java/javax/net/ssl/SSLSocketFactoryTest.java

Update classpath for newly seperated out junit jars

run-core-tests

Change-Id: I646a8f23c3d6ae01f1dd38e40bc9c32d436e6254
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
6df6339ecd4662d351c622a59533cbbe9f275ffd 18-May-2010 Brian Carlstrom <bdc@google.com> Client certificates should only be set on request from server

Client certificates should only be set into the SSL* when requested by
the server so that after the handshake is completed the client can
inspect its SSLSession to see what certificate if any was
requested. Previously the value was always non-null even if the server
didn't request the certificate.

- Created RAND_seed and RAND_load_file out of the NativeCrypto.SSL_new
- NativeCrypto.SSL_new now simply performs SSL_new and does not
deal with certificates, private keys, or random seeds.
- Removed helper version of NativeCrypto.SSL_new
Moved code to OpenSSLSocketImpl.setCertificate
- Created SSL_use_certificate, SSL_use_PrivateKey, SSL_check_private_key from SSL_new.
These are used not just on server handshake but also via clientCertificateRequested callback.
- Merged CertificateChainVerifier and HandshakeCompletedCallback into new SSLHandshakeCallbacks
while adding new clientCertificateRequested callback from OpenSSL C code to Java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
luni/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

In addition to supporting NativeCrypto.java changes, also changed
to_SSL_CTX and to_SSL_SESSION to allow null checking and throwing
NullPointerException. Changed these and to_SSL to log exception on
JNITrace, taking these logs out of individual functions. There
were a lot of null checks missing previously, mostly in
to_SSL_SESSION cases.

luni/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

All KnownFailures now fixed.

luni/src/test/java/javax/net/ssl/SSLSessionTest.java

Three more KnownFailures now fixed.

luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Change-Id: Iddcd5512e8395d947d3b894f03e3a059e63afe8a
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
1d4cff0114344c22b43007ecdd12903474f25e74 18-May-2010 Elliott Hughes <enh@google.com> Fix the exception thrown by Matcher.region.

Caught by a harmony test; the RI documentation agrees.

Change-Id: Ia7239033a35f6b952163d753ed36c5c8122dc171
ava/util/regex/Matcher.java
fbaef8384b817b1b3babbc069dbad7fee59dc8f0 18-May-2010 Elliott Hughes <enh@google.com> Merge "Expand upon the old ScopedByteArray, and start removing some of the Get/ReleaseCritical calls." into dalvik-dev
99c59bfa432e36933a7a5033fba8b89209f737bc 18-May-2010 Elliott Hughes <enh@google.com> Expand upon the old ScopedByteArray, and start removing some of the Get/ReleaseCritical calls.

This adds Scoped*Array classes for all primitive types, and switches all
read-only users of arrays over. At the same time, all read-only users of
Get/ReleaseCritical get switched to non-critical access.

Bug: 2663177
Change-Id: I5542cea3e24faa987ced463fcb695b9598da94af
ava/util/zip/Adler32.java
fd487fbac3547360ea81d96edea9827fad080f86 18-May-2010 Brian Carlstrom <bdc@google.com> Change Harmony CipherSuite to use JSSE names

Change text names of Harmony CipherSuite's (used by SSLEngine and some
places with OpenSSL code) to match JSSE names.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CipherSuite.java

Added StandardName constant for SSL_NULL_WITH_NULL_NULL

support/src/test/java/javax/net/ssl/StandardNames.java

Marked test as working with above fix, changed to use newly defined constant.

luni/src/test/java/javax/net/ssl/SSLSessionTest.java

Change-Id: Id48d2adcbbff71306296f1fdf8ff970c618fdcc6
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
204cab3c22b4d75c866c95e2d2eec42e14cbd924 18-May-2010 Brian Carlstrom <bdc@google.com> Supported cipher suites improvements

Added new test_SSLSocket_getSupportedCipherSuites_connect to make sure
all cipher suites we claim work actually do. It clearly exposed that
although a large number of cipher suites are supported by libssl.so,
they are not properly wired up into the OpenSSL JSSE
implementation. In particular Elliptic Curve has been disabled in our
version Bouncy Castle does not work. In addition Diffie-Hellman does
not work because we need to further integration work with OpenSSL via
SSL_set_tmp_dh_callback or SSL_set_tmp_dh. Finally,
SSL_RSA_EXPORT_WITH_RC4_40_MD5 doesn't work but that is being left as
KnownFailure for more immediate cleanup based on ServerHandshakeImpl's
handling of KeyExchange_RSA_EXPORT as part of having OpenSSL call us
back for certificates dynamically.

luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Refactored TestSSLContext.createKeyStore to create TestKeyStore which
now factors out TestSSLContext.createKeys from the old createKeyStore
method, which allows createKeys to be called multiple times for
different key algorithms (for example DSA in addition to RSA). Also
added a reusable singleton instance to cut down on test execution
time.

support/src/test/java/javax/net/ssl/TestKeyStore.java

Removed publicAlias/privateAlias from TestSSLContext since we now
include both RSA and DSA key pairs in they KeyStore by default. Added
TestSSLContext.assertCertificateInKeyStore methods to help tests the
previously used the alias fields fields. TestSSLContext.create API
changed as well since the alias names are no longer
required. TestSSLContext.createClient now needs to iterate over all
server certificates when setting up its TrustManager instead of just
grabbing one by alias name.

support/src/test/java/javax/net/ssl/TestSSLContext.java
luni/src/test/java/javax/net/ssl/SSLContextTest.java
luni/src/test/java/javax/net/ssl/SSLSessionTest.java
luni/src/test/java/javax/net/ssl/SSLSocketTest.java

TestSSLSocketPair.connect now allows optional inclusion of server
cipher suite list.

support/src/test/java/javax/net/ssl/TestSSLSocketPair.java
luni/src/test/java/javax/net/ssl/SSLSessionContextTest.java

Turning off Elliptic Curve and Diffie-Hellman which are not currently
working. Updating test expectations to match.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
support/src/test/java/javax/net/ssl/StandardNames.java

Turn on registration of ECDSA and DSA since this part is currently
functional (and excercised by TestKeyStore.create())

luni/src/main/java/org/bouncycastle/x509/X509Util.java

Improve logging by including SSL pointer in error messages, which
makes it easier to relate these errors to JNI_TRACE messages.

luni/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

Change-Id: I014d001a6a21a46c360678a346d3a3c8232f4d53
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/bouncycastle/x509/X509Util.java
b64216b26ade0c4da110590b7a7c5fabcbb3f021 15-May-2010 Elliott Hughes <enh@google.com> Remove dead code.

Change-Id: Ib9732c712a50a3bc9ed186464586a0f407e27287
ava/net/MulticastSocket.java
ava/net/Socket.java
d7119eb12622a4187553e68a32aafa61999d7162 15-May-2010 Elliott Hughes <enh@google.com> Merge "Fix getInetAddress/getPort/getLocalAddress/getLocalPort." into dalvik-dev
8cc54e9f098c4f299d2b88bb2b9110ce44354ed7 14-May-2010 Elliott Hughes <enh@google.com> Fix getInetAddress/getPort/getLocalAddress/getLocalPort.

Responsibility is split between Socket, SocketImpl, PlainSocketImpl,
SocketChannel, SocketChannelImpl, and SocketChannelImpl.SocketAdapter, and
we need to keep them synchronized. Our hands are somewhat tied by the fact
that the RI exposed way too much. I think, now I understand the relationships
a bit better, that we can probably rewrite this cluster of classes to be
simpler, but I don't want to bite off more than I can chew right now, and
this does fix the known problems.

This patch also makes us more compatible with the RI by making getLocalAddress
after the socket has been closed return the address we used.

By strange coincidence, harmony addressed this at the same time I was looking
at it (see http://svn.apache.org/viewvc?rev=944119&view=rev) but I feel they're
going in the wrong direction and making the relationships even more complicated.
I have run their new tests in addition to my own, though.

Bug: 1952042
Bug: http://code.google.com/p/android/issues/detail?id=1933
Bug: http://code.google.com/p/android/issues/detail?id=3123
Change-Id: Icb7793fb5d868e0d1f1b8b3d5da88c32fb973744
ava/net/Socket.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/nio/internal/ServerSocketChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImplWrapper.java
9acacc36bafda869c6e9cc63786cdddd995ca96a 14-May-2010 Brian Carlstrom <bdc@google.com> Use JSSE cipher suite names and restore JSSE SSLSessionContext semantics

Summary:
- Switch to using JSSE cipher suite names
- SSLSessionContext implementation cleanup
- Updated tests

Details:

Switch to using JSSE cipher suite names
- We maintain backward compatability for enabling cipher suites using
OpenSSL names for old code that did so without checking for the
presence of the names in the supported list.
- We now have a well defined list of the supported cipher suites which
are sorted in priority order as specified in JSSE documentation so
that callers doing:
s.setEnabledCipherSuites(s.getSupportedCipherSuites())
will get something reasonable.
- We now have a default cipher suite list that is chose to match RI
behavior and priority, not based on OpenSSLs default and priorities.

Details:
- Added NativeCrypto OPENSSL_TO_STANDARD and STANDARD_TO_OPENSSL
mapping between naming conventions. STANDARD_TO_OPENSSL is a
LinkedHashMap so enumerating it gives the proper order for
SUPPORTED_CIPHER_SUITES.
- SSL_get_ciphers and SSL_set_cipher_list are removed, we now use
our own SSL_set_cipher_lists (defined seperately in
external/openssl/patches/jsse.patch) to set the set and order of
cipher suites. SSL_CTX_get_ciphers is also removed because we no
longer rely on the OpenSSL for the default cipher suites
behavior.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

Add cipherSuite and protocol field caches for native values,
mapping the cipherSuite to a JSSE name from the OpenSSL name
returned by SSL_SESSION_cipher.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java

Fixed a long standing bug where we reused sessions found in the
client host/port cache even if the old protocol and cipher suite
where no longer compatible with what was specified by
setEnabledCipherSuites and setProtocols. Also fixed a recently
introduced bug where lastAccessedTime was being set on a cached
session even if it was not reused, found by fixed the above.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Move most of SSLSessionContext implementation from subclasses to
AbstractSessionContext. This was primarily to align the
implementations of how different sessions id for the same host and
port were handled for RI compatability. client subclasses now focuses
on handling its host/port based cache and both deal with their own
persistent cache details.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerSessionContext.java

Tests

Added some variants of assertSSLSessionContextSize to simplify tests code.
Broke test_SSLSessionContext_setSessionCacheSize_oneConnect out of
test_SSLSessionContext_setSessionCacheSize_dynamic. Renamed
test_SSLSessionContext_setSessionCacheSize_basic to
test_SSLSessionContext_setSessionCacheSize_noConnect to match name
of _oneConnect. _dynamic was cleaned up a bit as getting it working
was the only goal of this change list. Fixed to filter
SSL_RSA_EXPORT_ ciphers since our test certificate key length is
too long for those. Lower test requirement to 3 unique cipher suites.

luni/src/test/java/javax/net/ssl/SSLSessionContextTest.java

Added checks that cipher suites and protocols have standard names.

luni/src/test/java/javax/net/ssl/SSLSessionTest.java

Removing known failures related to cipher suite naming. Fixed bug
of using assertNotNull instead of assertTrue. Added extra
size/length check which would have found the
assertNotNull/assertTrue issue.

luni/src/test/java/javax/net/ssl/SSLSocketFactoryTest.java
luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Fixing test the explicitly worked around broken cipher suite naming.

luni/src/test/java/tests/api/javax/net/ssl/SSLSessionTest.java

Updated standard cipher suites to RI 6 list, which also now
specifies ordering, which we now align with.

support/src/test/java/javax/net/ssl/StandardNames.java

Unrelated

Remove more now obsolete jars from the test classpath

run-core-tests

Change-Id: I45c274a9327c9a1aeeccb39ecaf5a3fbe2903c8f
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerSessionContext.java
7cf7ec13b4e7e8f044c310e63dd0f6f9f58577d7 11-May-2010 Jeremy Sharpe <jsharpe@google.com> Fix bug in TreeMap. All methods that returns Entrys must return immutable Entrys, except entrySet(), which returns a set of mutable Entrys. Currently, the Entrys from entrySet() are immutable. Adds some new unit tests to verify this behavior.

Change-Id: I1149185412cd60d8e9c888179c43f5bef5057a69
ava/util/TreeMap.java
f33eae7e84eb6d3b0f4e86b59605bb3de73009f3 13-May-2010 Elliott Hughes <enh@google.com> Remove all trailing whitespace from the dalvik team-maintained parts of libcore.

Gentlemen, you may now set your editors to "strip trailing whitespace"...

Change-Id: I85b2f6c80e5fbef1af6cab11789790b078c11b1b
om/ibm/icu4jni/charset/CharsetDecoderICU.java
om/ibm/icu4jni/charset/CharsetEncoderICU.java
om/ibm/icu4jni/common/ErrorCode.java
om/ibm/icu4jni/lang/UCharacter.java
om/ibm/icu4jni/regex/NativeRegEx.java
om/ibm/icu4jni/text/CollationElementIterator.java
om/ibm/icu4jni/text/NativeCollation.java
om/ibm/icu4jni/text/NativeDecimalFormat.java
om/ibm/icu4jni/text/NativeNormalizer.java
ava/awt/font/NumericShaper.java
ava/awt/font/TextAttribute.java
ava/beans/IndexedPropertyChangeEvent.java
ava/beans/PropertyChangeEvent.java
ava/beans/PropertyChangeListener.java
ava/beans/PropertyChangeListenerProxy.java
ava/beans/PropertyChangeSupport.java
ava/io/BufferedInputStream.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/io/ByteArrayInputStream.java
ava/io/ByteArrayOutputStream.java
ava/io/CharArrayReader.java
ava/io/CharArrayWriter.java
ava/io/Closeable.java
ava/io/DataInput.java
ava/io/DataInputStream.java
ava/io/DataOutputStream.java
ava/io/EOFException.java
ava/io/EmulatedFields.java
ava/io/EmulatedFieldsForDumping.java
ava/io/EmulatedFieldsForLoading.java
ava/io/Externalizable.java
ava/io/File.java
ava/io/FileNotFoundException.java
ava/io/FileOutputStream.java
ava/io/FilePermission.java
ava/io/FilePermissionCollection.java
ava/io/FileReader.java
ava/io/FileWriter.java
ava/io/FilenameFilter.java
ava/io/FilterInputStream.java
ava/io/FilterOutputStream.java
ava/io/FilterReader.java
ava/io/Flushable.java
ava/io/IOError.java
ava/io/InputStream.java
ava/io/InputStreamReader.java
ava/io/InterruptedIOException.java
ava/io/InvalidClassException.java
ava/io/InvalidObjectException.java
ava/io/LineNumberInputStream.java
ava/io/NotActiveException.java
ava/io/NotSerializableException.java
ava/io/ObjectInput.java
ava/io/ObjectInputValidation.java
ava/io/ObjectOutput.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/ObjectStreamConstants.java
ava/io/ObjectStreamException.java
ava/io/ObjectStreamField.java
ava/io/OptionalDataException.java
ava/io/OutputStream.java
ava/io/OutputStreamWriter.java
ava/io/PipedInputStream.java
ava/io/PipedOutputStream.java
ava/io/PipedReader.java
ava/io/PipedWriter.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/RandomAccessFile.java
ava/io/SequenceInputStream.java
ava/io/SerializablePermission.java
ava/io/StreamCorruptedException.java
ava/io/StreamTokenizer.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/io/StringWriter.java
ava/io/SyncFailedException.java
ava/io/UTFDataFormatException.java
ava/io/UnsupportedEncodingException.java
ava/io/WriteAbortedException.java
ava/io/Writer.java
ava/lang/AbstractStringBuilder.java
ava/lang/Appendable.java
ava/lang/ArrayIndexOutOfBoundsException.java
ava/lang/AssertionError.java
ava/lang/Boolean.java
ava/lang/CaseMapper.java
ava/lang/Character.java
ava/lang/Class.java
ava/lang/ClassCache.java
ava/lang/ClassCastException.java
ava/lang/ClassLoader.java
ava/lang/Cloneable.java
ava/lang/Compiler.java
ava/lang/Double.java
ava/lang/EmptyEnumeration.java
ava/lang/Enum.java
ava/lang/EnumConstantNotPresentException.java
ava/lang/Error.java
ava/lang/Exception.java
ava/lang/ExceptionInInitializerError.java
ava/lang/Float.java
ava/lang/IllegalAccessError.java
ava/lang/IllegalAccessException.java
ava/lang/IllegalArgumentException.java
ava/lang/IllegalMonitorStateException.java
ava/lang/IllegalStateException.java
ava/lang/IllegalThreadStateException.java
ava/lang/IncompatibleClassChangeError.java
ava/lang/IndexOutOfBoundsException.java
ava/lang/InstantiationError.java
ava/lang/InstantiationException.java
ava/lang/Integer.java
ava/lang/InternalError.java
ava/lang/InterruptedException.java
ava/lang/Iterable.java
ava/lang/LangAccessImpl.java
ava/lang/LinkageError.java
ava/lang/Long.java
ava/lang/Math.java
ava/lang/NegativeArraySizeException.java
ava/lang/NoClassDefFoundError.java
ava/lang/NoSuchFieldError.java
ava/lang/NoSuchFieldException.java
ava/lang/NoSuchMethodError.java
ava/lang/NoSuchMethodException.java
ava/lang/NullPointerException.java
ava/lang/Number.java
ava/lang/NumberFormatException.java
ava/lang/Object.java
ava/lang/OutOfMemoryError.java
ava/lang/Override.java
ava/lang/Package.java
ava/lang/Process.java
ava/lang/ProcessBuilder.java
ava/lang/ProcessManager.java
ava/lang/Readable.java
ava/lang/Runtime.java
ava/lang/RuntimeException.java
ava/lang/RuntimePermission.java
ava/lang/SecurityException.java
ava/lang/SecurityManager.java
ava/lang/StackOverflowError.java
ava/lang/StackTraceElement.java
ava/lang/StrictMath.java
ava/lang/String.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
ava/lang/StringIndexOutOfBoundsException.java
ava/lang/SuppressWarnings.java
ava/lang/System.java
ava/lang/Thread.java
ava/lang/ThreadGroup.java
ava/lang/ThreadLocal.java
ava/lang/Throwable.java
ava/lang/TypeNotPresentException.java
ava/lang/UnknownError.java
ava/lang/UnsatisfiedLinkError.java
ava/lang/UnsupportedClassVersionError.java
ava/lang/UnsupportedOperationException.java
ava/lang/VerifyError.java
ava/lang/VirtualMachineError.java
ava/lang/Void.java
ava/lang/annotation/Annotation.java
ava/lang/annotation/AnnotationFormatError.java
ava/lang/annotation/AnnotationTypeMismatchException.java
ava/lang/annotation/Documented.java
ava/lang/annotation/ElementType.java
ava/lang/annotation/IncompleteAnnotationException.java
ava/lang/annotation/Inherited.java
ava/lang/annotation/Retention.java
ava/lang/annotation/RetentionPolicy.java
ava/lang/annotation/Target.java
ava/lang/ref/PhantomReference.java
ava/lang/ref/Reference.java
ava/lang/ref/SoftReference.java
ava/lang/ref/WeakReference.java
ava/lang/reflect/AccessibleObject.java
ava/lang/reflect/AnnotatedElement.java
ava/lang/reflect/Array.java
ava/lang/reflect/Constructor.java
ava/lang/reflect/Field.java
ava/lang/reflect/GenericArrayType.java
ava/lang/reflect/GenericDeclaration.java
ava/lang/reflect/GenericSignatureFormatError.java
ava/lang/reflect/InvocationHandler.java
ava/lang/reflect/InvocationTargetException.java
ava/lang/reflect/MalformedParameterizedTypeException.java
ava/lang/reflect/Member.java
ava/lang/reflect/Method.java
ava/lang/reflect/Modifier.java
ava/lang/reflect/ParameterizedType.java
ava/lang/reflect/Proxy.java
ava/lang/reflect/ReflectPermission.java
ava/lang/reflect/Type.java
ava/lang/reflect/TypeVariable.java
ava/lang/reflect/UndeclaredThrowableException.java
ava/math/BigInteger.java
ava/math/BitLevel.java
ava/math/Conversion.java
ava/math/Logical.java
ava/net/AddressCache.java
ava/net/Authenticator.java
ava/net/BindException.java
ava/net/CacheRequest.java
ava/net/CacheResponse.java
ava/net/ContentHandlerFactory.java
ava/net/CookieHandler.java
ava/net/CookieManager.java
ava/net/CookieStoreImpl.java
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ava/net/DatagramSocketImpl.java
ava/net/DatagramSocketImplFactory.java
ava/net/FileNameMap.java
ava/net/HttpCookie.java
ava/net/HttpRetryException.java
ava/net/HttpURLConnection.java
ava/net/IDN.java
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/InetSocketAddress.java
ava/net/JarURLConnection.java
ava/net/MalformedURLException.java
ava/net/MulticastSocket.java
ava/net/NetPermission.java
ava/net/NetworkInterface.java
ava/net/NoRouteToHostException.java
ava/net/PasswordAuthentication.java
ava/net/PortUnreachableException.java
ava/net/ProtocolException.java
ava/net/Proxy.java
ava/net/ProxySelector.java
ava/net/ProxySelectorImpl.java
ava/net/ResponseCache.java
ava/net/SecureCacheResponse.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketException.java
ava/net/SocketImplFactory.java
ava/net/SocketOptions.java
ava/net/SocketPermission.java
ava/net/SocketTimeoutException.java
ava/net/URI.java
ava/net/URIEncoderDecoder.java
ava/net/URISyntaxException.java
ava/net/URL.java
ava/net/URLClassLoader.java
ava/net/URLConnection.java
ava/net/URLDecoder.java
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ava/net/URLStreamHandlerFactory.java
ava/net/UnknownHostException.java
ava/net/UnknownServiceException.java
ava/nio/BaseByteBuffer.java
ava/nio/Buffer.java
ava/nio/BufferFactory.java
ava/nio/BufferOverflowException.java
ava/nio/BufferUnderflowException.java
ava/nio/ByteBuffer.java
ava/nio/ByteOrder.java
ava/nio/CharArrayBuffer.java
ava/nio/CharBuffer.java
ava/nio/CharSequenceAdapter.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DirectByteBuffers.java
ava/nio/DoubleArrayBuffer.java
ava/nio/DoubleBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatArrayBuffer.java
ava/nio/FloatBuffer.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/HeapByteBuffer.java
ava/nio/IntArrayBuffer.java
ava/nio/IntBuffer.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/InvalidMarkException.java
ava/nio/LongArrayBuffer.java
ava/nio/LongBuffer.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBuffer.java
ava/nio/ReadOnlyBufferException.java
ava/nio/ReadOnlyCharArrayBuffer.java
ava/nio/ReadOnlyDirectByteBuffer.java
ava/nio/ReadOnlyDoubleArrayBuffer.java
ava/nio/ReadOnlyFloatArrayBuffer.java
ava/nio/ReadOnlyHeapByteBuffer.java
ava/nio/ReadOnlyIntArrayBuffer.java
ava/nio/ReadOnlyLongArrayBuffer.java
ava/nio/ReadOnlyShortArrayBuffer.java
ava/nio/ReadWriteCharArrayBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ReadWriteDoubleArrayBuffer.java
ava/nio/ReadWriteFloatArrayBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
ava/nio/ReadWriteIntArrayBuffer.java
ava/nio/ReadWriteLongArrayBuffer.java
ava/nio/ReadWriteShortArrayBuffer.java
ava/nio/ShortArrayBuffer.java
ava/nio/ShortBuffer.java
ava/nio/ShortToByteBufferAdapter.java
ava/nio/channels/AlreadyConnectedException.java
ava/nio/channels/AsynchronousCloseException.java
ava/nio/channels/ByteChannel.java
ava/nio/channels/CancelledKeyException.java
ava/nio/channels/Channel.java
ava/nio/channels/Channels.java
ava/nio/channels/ClosedByInterruptException.java
ava/nio/channels/ClosedChannelException.java
ava/nio/channels/ClosedSelectorException.java
ava/nio/channels/ConnectionPendingException.java
ava/nio/channels/DatagramChannel.java
ava/nio/channels/FileChannel.java
ava/nio/channels/FileLock.java
ava/nio/channels/FileLockInterruptionException.java
ava/nio/channels/GatheringByteChannel.java
ava/nio/channels/IllegalBlockingModeException.java
ava/nio/channels/IllegalSelectorException.java
ava/nio/channels/InterruptibleChannel.java
ava/nio/channels/NoConnectionPendingException.java
ava/nio/channels/NonReadableChannelException.java
ava/nio/channels/NonWritableChannelException.java
ava/nio/channels/NotYetBoundException.java
ava/nio/channels/NotYetConnectedException.java
ava/nio/channels/OverlappingFileLockException.java
ava/nio/channels/Pipe.java
ava/nio/channels/ReadableByteChannel.java
ava/nio/channels/ScatteringByteChannel.java
ava/nio/channels/SelectableChannel.java
ava/nio/channels/SelectionKey.java
ava/nio/channels/Selector.java
ava/nio/channels/ServerSocketChannel.java
ava/nio/channels/SocketChannel.java
ava/nio/channels/UnresolvedAddressException.java
ava/nio/channels/UnsupportedAddressTypeException.java
ava/nio/channels/WritableByteChannel.java
ava/nio/channels/spi/AbstractInterruptibleChannel.java
ava/nio/channels/spi/AbstractSelectableChannel.java
ava/nio/channels/spi/AbstractSelectionKey.java
ava/nio/channels/spi/AbstractSelector.java
ava/nio/channels/spi/SelectorProvider.java
ava/nio/charset/Charset.java
ava/nio/charset/CharsetDecoder.java
ava/nio/charset/CharsetEncoder.java
ava/nio/charset/CoderMalfunctionError.java
ava/nio/charset/CoderResult.java
ava/nio/charset/CodingErrorAction.java
ava/nio/charset/IllegalCharsetNameException.java
ava/nio/charset/MalformedInputException.java
ava/nio/charset/UnmappableCharacterException.java
ava/nio/charset/UnsupportedCharsetException.java
ava/nio/charset/spi/CharsetProvider.java
ava/security/AccessControlContext.java
ava/security/AccessController.java
ava/security/AlgorithmParameterGenerator.java
ava/security/AlgorithmParameterGeneratorSpi.java
ava/security/AlgorithmParameters.java
ava/security/AlgorithmParametersSpi.java
ava/security/AllPermission.java
ava/security/AllPermissionCollection.java
ava/security/AuthProvider.java
ava/security/BasicPermission.java
ava/security/BasicPermissionCollection.java
ava/security/Certificate.java
ava/security/CodeSigner.java
ava/security/CodeSource.java
ava/security/DigestInputStream.java
ava/security/DigestOutputStream.java
ava/security/DomainCombiner.java
ava/security/Identity.java
ava/security/IdentityScope.java
ava/security/Key.java
ava/security/KeyFactory.java
ava/security/KeyFactorySpi.java
ava/security/KeyPair.java
ava/security/KeyPairGenerator.java
ava/security/KeyPairGeneratorSpi.java
ava/security/KeyRep.java
ava/security/KeyStore.java
ava/security/KeyStoreException.java
ava/security/KeyStoreSpi.java
ava/security/MessageDigest.java
ava/security/MessageDigestSpi.java
ava/security/Permission.java
ava/security/PermissionCollection.java
ava/security/Permissions.java
ava/security/Policy.java
ava/security/PrivateKey.java
ava/security/PrivilegedActionException.java
ava/security/ProtectionDomain.java
ava/security/Provider.java
ava/security/ProviderException.java
ava/security/PublicKey.java
ava/security/SecureClassLoader.java
ava/security/SecureRandom.java
ava/security/SecureRandomSpi.java
ava/security/Security.java
ava/security/Signature.java
ava/security/SignatureException.java
ava/security/SignatureSpi.java
ava/security/SignedObject.java
ava/security/Signer.java
ava/security/Timestamp.java
ava/security/UnrecoverableEntryException.java
ava/security/UnrecoverableKeyException.java
ava/security/UnresolvedPermission.java
ava/security/UnresolvedPermissionCollection.java
ava/security/acl/Acl.java
ava/security/acl/AclEntry.java
ava/security/acl/Group.java
ava/security/acl/NotOwnerException.java
ava/security/acl/Owner.java
ava/security/acl/Permission.java
ava/security/cert/CRL.java
ava/security/cert/CRLException.java
ava/security/cert/CRLSelector.java
ava/security/cert/CertPath.java
ava/security/cert/CertPathBuilder.java
ava/security/cert/CertPathBuilderException.java
ava/security/cert/CertPathBuilderResult.java
ava/security/cert/CertPathBuilderSpi.java
ava/security/cert/CertPathParameters.java
ava/security/cert/CertPathValidator.java
ava/security/cert/CertPathValidatorException.java
ava/security/cert/CertPathValidatorResult.java
ava/security/cert/CertSelector.java
ava/security/cert/CertStore.java
ava/security/cert/CertStoreException.java
ava/security/cert/CertStoreParameters.java
ava/security/cert/CertStoreSpi.java
ava/security/cert/Certificate.java
ava/security/cert/CertificateEncodingException.java
ava/security/cert/CertificateException.java
ava/security/cert/CertificateExpiredException.java
ava/security/cert/CertificateFactory.java
ava/security/cert/CertificateFactorySpi.java
ava/security/cert/CertificateNotYetValidException.java
ava/security/cert/CollectionCertStoreParameters.java
ava/security/cert/LDAPCertStoreParameters.java
ava/security/cert/PKIXBuilderParameters.java
ava/security/cert/PKIXCertPathBuilderResult.java
ava/security/cert/PKIXCertPathChecker.java
ava/security/cert/PKIXCertPathValidatorResult.java
ava/security/cert/PKIXParameters.java
ava/security/cert/PolicyNode.java
ava/security/cert/PolicyQualifierInfo.java
ava/security/cert/TrustAnchor.java
ava/security/cert/X509CRL.java
ava/security/cert/X509CRLEntry.java
ava/security/cert/X509CRLSelector.java
ava/security/cert/X509CertSelector.java
ava/security/cert/X509Certificate.java
ava/security/cert/X509Extension.java
ava/security/interfaces/DSAKey.java
ava/security/interfaces/DSAKeyPairGenerator.java
ava/security/interfaces/DSAParams.java
ava/security/interfaces/DSAPrivateKey.java
ava/security/interfaces/DSAPublicKey.java
ava/security/interfaces/ECKey.java
ava/security/interfaces/ECPrivateKey.java
ava/security/interfaces/ECPublicKey.java
ava/security/interfaces/RSAKey.java
ava/security/interfaces/RSAMultiPrimePrivateCrtKey.java
ava/security/interfaces/RSAPrivateCrtKey.java
ava/security/interfaces/RSAPrivateKey.java
ava/security/interfaces/RSAPublicKey.java
ava/security/spec/DSAParameterSpec.java
ava/security/spec/DSAPrivateKeySpec.java
ava/security/spec/DSAPublicKeySpec.java
ava/security/spec/ECField.java
ava/security/spec/ECFieldF2m.java
ava/security/spec/ECFieldFp.java
ava/security/spec/ECGenParameterSpec.java
ava/security/spec/ECParameterSpec.java
ava/security/spec/ECPoint.java
ava/security/spec/ECPrivateKeySpec.java
ava/security/spec/ECPublicKeySpec.java
ava/security/spec/EllipticCurve.java
ava/security/spec/EncodedKeySpec.java
ava/security/spec/InvalidKeySpecException.java
ava/security/spec/InvalidParameterSpecException.java
ava/security/spec/MGF1ParameterSpec.java
ava/security/spec/PKCS8EncodedKeySpec.java
ava/security/spec/PSSParameterSpec.java
ava/security/spec/RSAKeyGenParameterSpec.java
ava/security/spec/RSAMultiPrimePrivateCrtKeySpec.java
ava/security/spec/RSAOtherPrimeInfo.java
ava/security/spec/RSAPrivateCrtKeySpec.java
ava/security/spec/RSAPrivateKeySpec.java
ava/security/spec/RSAPublicKeySpec.java
ava/security/spec/X509EncodedKeySpec.java
ava/sql/Array.java
ava/sql/BatchUpdateException.java
ava/sql/Blob.java
ava/sql/CallableStatement.java
ava/sql/Clob.java
ava/sql/Connection.java
ava/sql/DataTruncation.java
ava/sql/DatabaseMetaData.java
ava/sql/Date.java
ava/sql/Driver.java
ava/sql/DriverManager.java
ava/sql/DriverPropertyInfo.java
ava/sql/ParameterMetaData.java
ava/sql/PreparedStatement.java
ava/sql/Ref.java
ava/sql/ResultSet.java
ava/sql/ResultSetMetaData.java
ava/sql/SQLData.java
ava/sql/SQLException.java
ava/sql/SQLInput.java
ava/sql/SQLOutput.java
ava/sql/SQLPermission.java
ava/sql/SQLWarning.java
ava/sql/Savepoint.java
ava/sql/Statement.java
ava/sql/Struct.java
ava/sql/Time.java
ava/sql/Timestamp.java
ava/sql/Types.java
ava/text/Annotation.java
ava/text/AttributedCharacterIterator.java
ava/text/AttributedString.java
ava/text/Bidi.java
ava/text/BreakIterator.java
ava/text/CharacterIterator.java
ava/text/ChoiceFormat.java
ava/text/CollationElementIterator.java
ava/text/CollationKey.java
ava/text/Collator.java
ava/text/DateFormat.java
ava/text/DateFormatSymbols.java
ava/text/DecimalFormat.java
ava/text/DecimalFormatSymbols.java
ava/text/FieldPosition.java
ava/text/Format.java
ava/text/MessageFormat.java
ava/text/Normalizer.java
ava/text/NumberFormat.java
ava/text/ParseException.java
ava/text/ParsePosition.java
ava/text/RuleBasedBreakIterator.java
ava/text/RuleBasedCollator.java
ava/text/SimpleDateFormat.java
ava/text/StringCharacterIterator.java
ava/text/spi/BreakIteratorProvider.java
ava/text/spi/CollatorProvider.java
ava/text/spi/DateFormatProvider.java
ava/text/spi/DateFormatSymbolsProvider.java
ava/text/spi/DecimalFormatSymbolsProvider.java
ava/text/spi/NumberFormatProvider.java
ava/util/AbstractCollection.java
ava/util/AbstractQueue.java
ava/util/AbstractSet.java
ava/util/ArrayList.java
ava/util/Arrays.java
ava/util/BitSet.java
ava/util/Calendar.java
ava/util/Collections.java
ava/util/ConcurrentModificationException.java
ava/util/Dictionary.java
ava/util/DuplicateFormatFlagsException.java
ava/util/EnumMap.java
ava/util/EnumSet.java
ava/util/Enumeration.java
ava/util/EventListener.java
ava/util/EventListenerProxy.java
ava/util/EventObject.java
ava/util/FormatFlagsConversionMismatchException.java
ava/util/Formattable.java
ava/util/FormattableFlags.java
ava/util/Formatter.java
ava/util/FormatterClosedException.java
ava/util/HashMap.java
ava/util/HashSet.java
ava/util/Hashtable.java
ava/util/HugeEnumSet.java
ava/util/IdentityHashMap.java
ava/util/IllegalFormatCodePointException.java
ava/util/IllegalFormatConversionException.java
ava/util/IllegalFormatException.java
ava/util/IllegalFormatFlagsException.java
ava/util/IllegalFormatPrecisionException.java
ava/util/IllegalFormatWidthException.java
ava/util/InputMismatchException.java
ava/util/InvalidPropertiesFormatException.java
ava/util/Iterator.java
ava/util/LinkedHashMap.java
ava/util/LinkedHashSet.java
ava/util/LinkedList.java
ava/util/List.java
ava/util/ListIterator.java
ava/util/ListResourceBundle.java
ava/util/Locale.java
ava/util/Map.java
ava/util/MiniEnumSet.java
ava/util/MissingFormatArgumentException.java
ava/util/MissingFormatWidthException.java
ava/util/MissingResourceException.java
ava/util/NoSuchElementException.java
ava/util/Observer.java
ava/util/PriorityQueue.java
ava/util/Properties.java
ava/util/PropertyPermission.java
ava/util/PropertyPermissionCollection.java
ava/util/PropertyResourceBundle.java
ava/util/Queue.java
ava/util/Random.java
ava/util/ResourceBundle.java
ava/util/Scanner.java
ava/util/ServiceLoader.java
ava/util/Set.java
ava/util/SimpleTimeZone.java
ava/util/SortedMap.java
ava/util/SortedSet.java
ava/util/SpecialAccess.java
ava/util/StringTokenizer.java
ava/util/TimSort.java
ava/util/Timer.java
ava/util/TimerTask.java
ava/util/TooManyListenersException.java
ava/util/UUID.java
ava/util/UnknownFormatConversionException.java
ava/util/UnknownFormatFlagsException.java
ava/util/Vector.java
ava/util/WeakHashMap.java
ava/util/jar/Attributes.java
ava/util/jar/InitManifest.java
ava/util/jar/JarEntry.java
ava/util/jar/JarFile.java
ava/util/jar/JarInputStream.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
ava/util/jar/Pack200.java
ava/util/logging/ConsoleHandler.java
ava/util/logging/ErrorManager.java
ava/util/logging/FileHandler.java
ava/util/logging/Filter.java
ava/util/logging/Formatter.java
ava/util/logging/Handler.java
ava/util/logging/Level.java
ava/util/logging/LogManager.java
ava/util/logging/LogRecord.java
ava/util/logging/Logger.java
ava/util/logging/LoggingMXBean.java
ava/util/logging/LoggingPermission.java
ava/util/logging/MemoryHandler.java
ava/util/logging/SimpleFormatter.java
ava/util/logging/SocketHandler.java
ava/util/logging/StreamHandler.java
ava/util/logging/XMLFormatter.java
ava/util/prefs/AbstractPreferences.java
ava/util/prefs/BackingStoreException.java
ava/util/prefs/FilePreferencesFactoryImpl.java
ava/util/prefs/FilePreferencesImpl.java
ava/util/prefs/InvalidPreferencesFormatException.java
ava/util/prefs/NodeChangeEvent.java
ava/util/prefs/NodeChangeListener.java
ava/util/prefs/NodeSet.java
ava/util/prefs/PreferenceChangeEvent.java
ava/util/prefs/PreferenceChangeListener.java
ava/util/prefs/Preferences.java
ava/util/prefs/PreferencesFactory.java
ava/util/prefs/XMLParser.java
ava/util/regex/MatchResultImpl.java
ava/util/regex/Matcher.java
ava/util/regex/Pattern.java
ava/util/regex/PatternSyntaxException.java
ava/util/zip/DeflaterInputStream.java
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/GZIPInputStream.java
ava/util/zip/Inflater.java
ava/util/zip/InflaterOutputStream.java
ava/util/zip/ZipError.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
ava/util/zip/ZipOutputStream.java
avax/crypto/BadPaddingException.java
avax/crypto/Cipher.java
avax/crypto/CipherInputStream.java
avax/crypto/CipherSpi.java
avax/crypto/EncryptedPrivateKeyInfo.java
avax/crypto/ExemptionMechanism.java
avax/crypto/ExemptionMechanismException.java
avax/crypto/IllegalBlockSizeException.java
avax/crypto/KeyAgreement.java
avax/crypto/KeyGenerator.java
avax/crypto/KeyGeneratorSpi.java
avax/crypto/Mac.java
avax/crypto/MacSpi.java
avax/crypto/NoSuchPaddingException.java
avax/crypto/NullCipher.java
avax/crypto/SealedObject.java
avax/crypto/SecretKeyFactory.java
avax/crypto/ShortBufferException.java
avax/crypto/spec/DESKeySpec.java
avax/crypto/spec/DESedeKeySpec.java
avax/crypto/spec/IvParameterSpec.java
avax/crypto/spec/OAEPParameterSpec.java
avax/crypto/spec/PBEKeySpec.java
avax/crypto/spec/PBEParameterSpec.java
avax/crypto/spec/PSource.java
avax/crypto/spec/RC2ParameterSpec.java
avax/crypto/spec/RC5ParameterSpec.java
avax/crypto/spec/SecretKeySpec.java
avax/net/ssl/CertPathTrustManagerParameters.java
avax/net/ssl/DefaultHostnameVerifier.java
avax/net/ssl/DefaultSSLContext.java
avax/net/ssl/DefaultSSLSocketFactory.java
avax/net/ssl/KeyManagerFactorySpi.java
avax/net/ssl/KeyStoreBuilderParameters.java
avax/net/ssl/SSLEngine.java
avax/security/auth/AuthPermission.java
avax/security/auth/PrivateCredentialPermission.java
avax/security/auth/Subject.java
avax/security/auth/SubjectDomainCombiner.java
avax/security/auth/callback/PasswordCallback.java
avax/security/auth/x500/X500Principal.java
avax/security/cert/Certificate.java
avax/security/cert/X509Certificate.java
avax/sql/ConnectionEvent.java
avax/sql/ConnectionEventListener.java
avax/sql/ConnectionPoolDataSource.java
avax/sql/DataSource.java
avax/sql/PooledConnection.java
avax/sql/RowSet.java
avax/sql/RowSetEvent.java
avax/sql/RowSetInternal.java
avax/sql/RowSetListener.java
avax/sql/RowSetMetaData.java
avax/sql/RowSetReader.java
avax/sql/RowSetWriter.java
avax/xml/XMLConstants.java
avax/xml/datatype/DatatypeConfigurationException.java
avax/xml/datatype/DatatypeConstants.java
avax/xml/datatype/DatatypeFactory.java
avax/xml/datatype/Duration.java
avax/xml/datatype/FactoryFinder.java
avax/xml/datatype/SecuritySupport.java
avax/xml/datatype/XMLGregorianCalendar.java
avax/xml/namespace/NamespaceContext.java
avax/xml/namespace/QName.java
avax/xml/parsers/DocumentBuilder.java
avax/xml/parsers/DocumentBuilderFactory.java
avax/xml/parsers/FactoryConfigurationError.java
avax/xml/parsers/FilePathToURI.java
avax/xml/parsers/ParserConfigurationException.java
avax/xml/parsers/SAXParser.java
avax/xml/parsers/SAXParserFactory.java
avax/xml/parsers/SecuritySupport.java
avax/xml/transform/Result.java
avax/xml/transform/SecuritySupport.java
avax/xml/transform/Transformer.java
avax/xml/transform/TransformerException.java
avax/xml/transform/TransformerFactory.java
avax/xml/transform/dom/DOMResult.java
avax/xml/transform/dom/DOMSource.java
avax/xml/transform/sax/SAXResult.java
avax/xml/transform/sax/SAXSource.java
avax/xml/transform/sax/TransformerHandler.java
avax/xml/transform/stream/FilePathToURI.java
avax/xml/transform/stream/StreamResult.java
avax/xml/transform/stream/StreamSource.java
avax/xml/validation/Schema.java
avax/xml/validation/SchemaFactory.java
avax/xml/validation/SchemaFactoryFinder.java
avax/xml/validation/SchemaFactoryLoader.java
avax/xml/validation/SecuritySupport.java
avax/xml/validation/TypeInfoProvider.java
avax/xml/validation/Validator.java
avax/xml/validation/ValidatorHandler.java
avax/xml/xpath/SecuritySupport.java
avax/xml/xpath/XPath.java
avax/xml/xpath/XPathConstants.java
avax/xml/xpath/XPathException.java
avax/xml/xpath/XPathExpression.java
avax/xml/xpath/XPathFactory.java
avax/xml/xpath/XPathFactoryConfigurationException.java
avax/xml/xpath/XPathFactoryFinder.java
avax/xml/xpath/XPathFunction.java
avax/xml/xpath/XPathFunctionResolver.java
avax/xml/xpath/XPathVariableResolver.java
rg/apache/harmony/archive/util/Util.java
rg/apache/harmony/auth/internal/nls/Messages.java
rg/apache/harmony/crypto/internal/NullCipherSpi.java
rg/apache/harmony/crypto/internal/nls/Messages.java
rg/apache/harmony/kernel/vm/LangAccess.java
rg/apache/harmony/kernel/vm/ReflectionAccess.java
rg/apache/harmony/kernel/vm/StringUtils.java
rg/apache/harmony/kernel/vm/VM.java
rg/apache/harmony/lang/annotation/AnnotationFactory.java
rg/apache/harmony/lang/annotation/AnnotationMember.java
rg/apache/harmony/luni/internal/net/www/MimeTable.java
rg/apache/harmony/luni/internal/net/www/protocol/file/FileURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/file/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConfiguration.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/https/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnectionImpl.java
rg/apache/harmony/luni/internal/util/TimezoneGetter.java
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/luni/lang/reflect/GenericSignatureParser.java
rg/apache/harmony/luni/lang/reflect/ImplForArray.java
rg/apache/harmony/luni/lang/reflect/ImplForType.java
rg/apache/harmony/luni/lang/reflect/ImplForVariable.java
rg/apache/harmony/luni/lang/reflect/ImplForWildcard.java
rg/apache/harmony/luni/lang/reflect/ListOfTypes.java
rg/apache/harmony/luni/net/GenericIPMreq.java
rg/apache/harmony/luni/net/NetUtil.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/net/SocketInputStream.java
rg/apache/harmony/luni/net/SocketOutputStream.java
rg/apache/harmony/luni/net/Socks4Message.java
rg/apache/harmony/luni/platform/AbstractMemorySpy.java
rg/apache/harmony/luni/platform/Endianness.java
rg/apache/harmony/luni/platform/FileDescriptorHandler.java
rg/apache/harmony/luni/platform/ICommonDataTypes.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/IMemorySpy.java
rg/apache/harmony/luni/platform/IMemorySystem.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/MappedPlatformAddress.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/Platform.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/platform/PlatformAddressFactory.java
rg/apache/harmony/luni/platform/RuntimeMemorySpy.java
rg/apache/harmony/luni/util/Base64.java
rg/apache/harmony/luni/util/BinarySearch.java
rg/apache/harmony/luni/util/FloatingPointParser.java
rg/apache/harmony/luni/util/HexStringParser.java
rg/apache/harmony/luni/util/Inet6Util.java
rg/apache/harmony/luni/util/InputStreamHelper.java
rg/apache/harmony/luni/util/InvalidJarIndexException.java
rg/apache/harmony/luni/util/Msg.java
rg/apache/harmony/luni/util/MsgHelp.java
rg/apache/harmony/luni/util/NotImplementedException.java
rg/apache/harmony/luni/util/NumberConverter.java
rg/apache/harmony/luni/util/PasswordProtectedInputStream.java
rg/apache/harmony/luni/util/PositionedInputStream.java
rg/apache/harmony/luni/util/PriviAction.java
rg/apache/harmony/luni/util/SHAOutputStream.java
rg/apache/harmony/luni/util/TwoKeyHashMap.java
rg/apache/harmony/luni/util/URLUtil.java
rg/apache/harmony/luni/util/Util.java
rg/apache/harmony/misc/HashCode.java
rg/apache/harmony/misc/SystemUtils.java
rg/apache/harmony/nio/AddressUtil.java
rg/apache/harmony/nio/FileChannelFactory.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/DirectBuffer.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
rg/apache/harmony/nio/internal/FileLockImpl.java
rg/apache/harmony/nio/internal/LockManager.java
rg/apache/harmony/nio/internal/MappedByteBufferFactory.java
rg/apache/harmony/nio/internal/PipeImpl.java
rg/apache/harmony/nio/internal/ReadWriteFileChannel.java
rg/apache/harmony/nio/internal/ServerSocketChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
rg/apache/harmony/nio/internal/WriteOnlyFileChannel.java
rg/apache/harmony/security/DefaultPolicyScanner.java
rg/apache/harmony/security/PolicyEntry.java
rg/apache/harmony/security/PrivateKeyImpl.java
rg/apache/harmony/security/PublicKeyImpl.java
rg/apache/harmony/security/SystemScope.java
rg/apache/harmony/security/UnresolvedPrincipal.java
rg/apache/harmony/security/asn1/ASN1Any.java
rg/apache/harmony/security/asn1/ASN1BitString.java
rg/apache/harmony/security/asn1/ASN1Boolean.java
rg/apache/harmony/security/asn1/ASN1Choice.java
rg/apache/harmony/security/asn1/ASN1Constants.java
rg/apache/harmony/security/asn1/ASN1Constructured.java
rg/apache/harmony/security/asn1/ASN1Enumerated.java
rg/apache/harmony/security/asn1/ASN1Exception.java
rg/apache/harmony/security/asn1/ASN1Explicit.java
rg/apache/harmony/security/asn1/ASN1GeneralizedTime.java
rg/apache/harmony/security/asn1/ASN1Implicit.java
rg/apache/harmony/security/asn1/ASN1Integer.java
rg/apache/harmony/security/asn1/ASN1OctetString.java
rg/apache/harmony/security/asn1/ASN1Oid.java
rg/apache/harmony/security/asn1/ASN1OpenType.java
rg/apache/harmony/security/asn1/ASN1Primitive.java
rg/apache/harmony/security/asn1/ASN1Sequence.java
rg/apache/harmony/security/asn1/ASN1SequenceOf.java
rg/apache/harmony/security/asn1/ASN1Set.java
rg/apache/harmony/security/asn1/ASN1SetOf.java
rg/apache/harmony/security/asn1/ASN1StringType.java
rg/apache/harmony/security/asn1/ASN1Time.java
rg/apache/harmony/security/asn1/ASN1Type.java
rg/apache/harmony/security/asn1/ASN1TypeCollection.java
rg/apache/harmony/security/asn1/ASN1UTCTime.java
rg/apache/harmony/security/asn1/ASN1ValueCollection.java
rg/apache/harmony/security/asn1/BerInputStream.java
rg/apache/harmony/security/asn1/BerOutputStream.java
rg/apache/harmony/security/asn1/BitString.java
rg/apache/harmony/security/asn1/DerInputStream.java
rg/apache/harmony/security/asn1/DerOutputStream.java
rg/apache/harmony/security/asn1/InformationObjectSet.java
rg/apache/harmony/security/asn1/ObjectIdentifier.java
rg/apache/harmony/security/fortress/DefaultPolicy.java
rg/apache/harmony/security/fortress/DefaultPolicyParser.java
rg/apache/harmony/security/fortress/Engine.java
rg/apache/harmony/security/fortress/PolicyUtils.java
rg/apache/harmony/security/fortress/SecurityAccess.java
rg/apache/harmony/security/fortress/SecurityUtils.java
rg/apache/harmony/security/fortress/Services.java
rg/apache/harmony/security/internal/nls/Messages.java
rg/apache/harmony/security/pkcs10/CertificationRequest.java
rg/apache/harmony/security/pkcs10/CertificationRequestInfo.java
rg/apache/harmony/security/pkcs7/AuthenticatedAttributes.java
rg/apache/harmony/security/pkcs7/ContentInfo.java
rg/apache/harmony/security/pkcs7/SignedData.java
rg/apache/harmony/security/pkcs7/SignerInfo.java
rg/apache/harmony/security/provider/cert/Cache.java
rg/apache/harmony/security/provider/cert/DRLCertFactory.java
rg/apache/harmony/security/provider/cert/X509CRLEntryImpl.java
rg/apache/harmony/security/provider/cert/X509CRLImpl.java
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/security/provider/cert/X509CertImpl.java
rg/apache/harmony/security/provider/cert/X509CertPathImpl.java
rg/apache/harmony/security/provider/crypto/CryptoProvider.java
rg/apache/harmony/security/provider/crypto/DSAKeyFactoryImpl.java
rg/apache/harmony/security/provider/crypto/DSAPrivateKeyImpl.java
rg/apache/harmony/security/provider/crypto/DSAPublicKeyImpl.java
rg/apache/harmony/security/provider/crypto/RandomBitsSupplier.java
rg/apache/harmony/security/provider/crypto/SHA1Impl.java
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
rg/apache/harmony/security/provider/crypto/SHA1_Data.java
rg/apache/harmony/security/provider/crypto/SHA1_MessageDigestImpl.java
rg/apache/harmony/security/provider/crypto/SHA1withDSA_SignatureImpl.java
rg/apache/harmony/security/provider/crypto/ThreeIntegerSequence.java
rg/apache/harmony/security/utils/AlgNameMapper.java
rg/apache/harmony/security/utils/Array.java
rg/apache/harmony/security/utils/JarUtils.java
rg/apache/harmony/security/utils/ObjectIdentifier.java
rg/apache/harmony/security/x501/AttributeType.java
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/apache/harmony/security/x501/AttributeTypeAndValueComparator.java
rg/apache/harmony/security/x501/AttributeValue.java
rg/apache/harmony/security/x501/Attributes.java
rg/apache/harmony/security/x501/DirectoryString.java
rg/apache/harmony/security/x501/Name.java
rg/apache/harmony/security/x509/AccessDescription.java
rg/apache/harmony/security/x509/AlgorithmIdentifier.java
rg/apache/harmony/security/x509/AlternativeName.java
rg/apache/harmony/security/x509/AuthorityKeyIdentifier.java
rg/apache/harmony/security/x509/BasicConstraints.java
rg/apache/harmony/security/x509/CRLDistributionPoints.java
rg/apache/harmony/security/x509/CRLNumber.java
rg/apache/harmony/security/x509/Certificate.java
rg/apache/harmony/security/x509/CertificateIssuer.java
rg/apache/harmony/security/x509/CertificateList.java
rg/apache/harmony/security/x509/CertificatePolicies.java
rg/apache/harmony/security/x509/DNParser.java
rg/apache/harmony/security/x509/DistributionPoint.java
rg/apache/harmony/security/x509/DistributionPointName.java
rg/apache/harmony/security/x509/EDIPartyName.java
rg/apache/harmony/security/x509/ExtendedKeyUsage.java
rg/apache/harmony/security/x509/Extension.java
rg/apache/harmony/security/x509/ExtensionValue.java
rg/apache/harmony/security/x509/Extensions.java
rg/apache/harmony/security/x509/GeneralName.java
rg/apache/harmony/security/x509/GeneralNames.java
rg/apache/harmony/security/x509/GeneralSubtree.java
rg/apache/harmony/security/x509/GeneralSubtrees.java
rg/apache/harmony/security/x509/InfoAccessSyntax.java
rg/apache/harmony/security/x509/InhibitAnyPolicy.java
rg/apache/harmony/security/x509/InvalidityDate.java
rg/apache/harmony/security/x509/IssuingDistributionPoint.java
rg/apache/harmony/security/x509/KeyUsage.java
rg/apache/harmony/security/x509/NameConstraints.java
rg/apache/harmony/security/x509/ORAddress.java
rg/apache/harmony/security/x509/OtherName.java
rg/apache/harmony/security/x509/PolicyConstraints.java
rg/apache/harmony/security/x509/PolicyInformation.java
rg/apache/harmony/security/x509/PolicyQualifierInfo.java
rg/apache/harmony/security/x509/PrivateKeyUsagePeriod.java
rg/apache/harmony/security/x509/ReasonCode.java
rg/apache/harmony/security/x509/ReasonFlags.java
rg/apache/harmony/security/x509/SubjectKeyIdentifier.java
rg/apache/harmony/security/x509/SubjectPublicKeyInfo.java
rg/apache/harmony/security/x509/TBSCertList.java
rg/apache/harmony/security/x509/TBSCertificate.java
rg/apache/harmony/security/x509/Time.java
rg/apache/harmony/security/x509/Utils.java
rg/apache/harmony/security/x509/Validity.java
rg/apache/harmony/security/x509/X509PublicKey.java
rg/apache/harmony/security/x509/tsp/MessageImprint.java
rg/apache/harmony/security/x509/tsp/PKIFailureInfo.java
rg/apache/harmony/security/x509/tsp/PKIStatus.java
rg/apache/harmony/security/x509/tsp/PKIStatusInfo.java
rg/apache/harmony/security/x509/tsp/TSTInfo.java
rg/apache/harmony/security/x509/tsp/TimeStampReq.java
rg/apache/harmony/security/x509/tsp/TimeStampResp.java
rg/apache/harmony/text/BidiRun.java
rg/apache/harmony/text/BidiWrapper.java
rg/apache/harmony/xml/ExpatParser.java
rg/apache/harmony/xml/ExpatPullParser.java
rg/apache/harmony/xml/dom/AttrImpl.java
rg/apache/harmony/xml/dom/CDATASectionImpl.java
rg/apache/harmony/xml/dom/DOMImplementationImpl.java
rg/apache/harmony/xml/dom/DocumentImpl.java
rg/apache/harmony/xml/dom/DocumentTypeImpl.java
rg/apache/harmony/xml/dom/ElementImpl.java
rg/apache/harmony/xml/dom/InnerNodeImpl.java
rg/apache/harmony/xml/dom/NamedNodeMapImpl.java
rg/apache/harmony/xml/dom/NodeImpl.java
rg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl.java
rg/apache/harmony/xml/parsers/DocumentBuilderImpl.java
rg/apache/harmony/xml/parsers/SAXParserFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/AlertException.java
rg/apache/harmony/xnet/provider/jsse/Appendable.java
rg/apache/harmony/xnet/provider/jsse/CertificateMessage.java
rg/apache/harmony/xnet/provider/jsse/CertificateRequest.java
rg/apache/harmony/xnet/provider/jsse/CertificateVerify.java
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/ClientHello.java
rg/apache/harmony/xnet/provider/jsse/ClientKeyExchange.java
rg/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
rg/apache/harmony/xnet/provider/jsse/ConnectionStateSSLv3.java
rg/apache/harmony/xnet/provider/jsse/ConnectionStateTLS.java
rg/apache/harmony/xnet/provider/jsse/DHParameters.java
rg/apache/harmony/xnet/provider/jsse/DelegatedTask.java
rg/apache/harmony/xnet/provider/jsse/DigitalSignature.java
rg/apache/harmony/xnet/provider/jsse/FileClientSessionCache.java
rg/apache/harmony/xnet/provider/jsse/Finished.java
rg/apache/harmony/xnet/provider/jsse/Handshake.java
rg/apache/harmony/xnet/provider/jsse/HandshakeIODataStream.java
rg/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
rg/apache/harmony/xnet/provider/jsse/HelloRequest.java
rg/apache/harmony/xnet/provider/jsse/JSSEProvider.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/Logger.java
rg/apache/harmony/xnet/provider/jsse/Message.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigest.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
rg/apache/harmony/xnet/provider/jsse/PRF.java
rg/apache/harmony/xnet/provider/jsse/ProtocolVersion.java
rg/apache/harmony/xnet/provider/jsse/SSLBufferedInput.java
rg/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineAppData.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLParameters.java
rg/apache/harmony/xnet/provider/jsse/SSLRecordProtocol.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLv3Constants.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerHello.java
rg/apache/harmony/xnet/provider/jsse/ServerHelloDone.java
rg/apache/harmony/xnet/provider/jsse/ServerKeyExchange.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerFactoryImpl.java
rg/w3c/dom/Attr.java
rg/w3c/dom/CDATASection.java
rg/w3c/dom/CharacterData.java
rg/w3c/dom/Comment.java
rg/w3c/dom/DOMConfiguration.java
rg/w3c/dom/DOMError.java
rg/w3c/dom/DOMErrorHandler.java
rg/w3c/dom/DOMException.java
rg/w3c/dom/DOMImplementation.java
rg/w3c/dom/DOMImplementationList.java
rg/w3c/dom/DOMImplementationSource.java
rg/w3c/dom/DOMLocator.java
rg/w3c/dom/DOMStringList.java
rg/w3c/dom/Document.java
rg/w3c/dom/DocumentFragment.java
rg/w3c/dom/DocumentType.java
rg/w3c/dom/Element.java
rg/w3c/dom/Entity.java
rg/w3c/dom/EntityReference.java
rg/w3c/dom/NameList.java
rg/w3c/dom/NamedNodeMap.java
rg/w3c/dom/Node.java
rg/w3c/dom/NodeList.java
rg/w3c/dom/Notation.java
rg/w3c/dom/ProcessingInstruction.java
rg/w3c/dom/Text.java
rg/w3c/dom/TypeInfo.java
rg/w3c/dom/UserDataHandler.java
rg/w3c/dom/ls/DOMImplementationLS.java
rg/w3c/dom/ls/LSException.java
rg/w3c/dom/ls/LSInput.java
rg/w3c/dom/ls/LSOutput.java
rg/w3c/dom/ls/LSParser.java
rg/w3c/dom/ls/LSParserFilter.java
rg/w3c/dom/ls/LSResourceResolver.java
rg/w3c/dom/ls/LSSerializer.java
rg/w3c/dom/ls/LSSerializerFilter.java
rg/w3c/dom/traversal/NodeFilter.java
rg/w3c/dom/traversal/NodeIterator.java
rg/xml/sax/AttributeList.java
rg/xml/sax/Attributes.java
rg/xml/sax/ContentHandler.java
rg/xml/sax/DTDHandler.java
rg/xml/sax/DocumentHandler.java
rg/xml/sax/EntityResolver.java
rg/xml/sax/ErrorHandler.java
rg/xml/sax/HandlerBase.java
rg/xml/sax/InputSource.java
rg/xml/sax/Locator.java
rg/xml/sax/Parser.java
rg/xml/sax/SAXException.java
rg/xml/sax/SAXNotSupportedException.java
rg/xml/sax/SAXParseException.java
rg/xml/sax/XMLReader.java
rg/xml/sax/ext/Attributes2Impl.java
rg/xml/sax/ext/DeclHandler.java
rg/xml/sax/ext/DefaultHandler2.java
rg/xml/sax/ext/EntityResolver2.java
rg/xml/sax/ext/LexicalHandler.java
rg/xml/sax/ext/Locator2.java
rg/xml/sax/ext/Locator2Impl.java
rg/xml/sax/helpers/AttributeListImpl.java
rg/xml/sax/helpers/AttributesImpl.java
rg/xml/sax/helpers/DefaultHandler.java
rg/xml/sax/helpers/LocatorImpl.java
rg/xml/sax/helpers/NamespaceSupport.java
rg/xml/sax/helpers/NewInstance.java
rg/xml/sax/helpers/ParserAdapter.java
rg/xml/sax/helpers/ParserFactory.java
rg/xml/sax/helpers/XMLFilterImpl.java
rg/xml/sax/helpers/XMLReaderAdapter.java
rg/xml/sax/helpers/XMLReaderFactory.java
un/misc/Unsafe.java
d21d78fd49a2d798218e8c8aefbddb26a0e71bbb 13-May-2010 Elliott Hughes <enh@google.com> Convert tabs to spaces.

Change-Id: I16cfbd2faac6b565b78b5dd97e2345323a36f652
ava/io/ObjectInputStream.java
ava/lang/Short.java
ava/lang/Void.java
ava/net/URL.java
ava/security/DigestInputStream.java
ava/security/DigestOutputStream.java
ava/security/KeyStore.java
ava/security/Provider.java
ava/security/UnresolvedPermission.java
ava/security/UnresolvedPermissionCollection.java
ava/security/cert/CollectionCertStoreParameters.java
ava/security/cert/LDAPCertStoreParameters.java
ava/security/cert/X509CRLSelector.java
ava/security/cert/X509CertSelector.java
ava/util/LinkedList.java
ava/util/Timer.java
ava/util/prefs/XMLParser.java
avax/xml/datatype/DatatypeConstants.java
avax/xml/datatype/DatatypeFactory.java
avax/xml/datatype/Duration.java
avax/xml/datatype/FactoryFinder.java
avax/xml/datatype/SecuritySupport.java
avax/xml/datatype/XMLGregorianCalendar.java
avax/xml/namespace/QName.java
avax/xml/parsers/DocumentBuilder.java
avax/xml/parsers/DocumentBuilderFactory.java
avax/xml/parsers/SAXParser.java
avax/xml/parsers/SAXParserFactory.java
avax/xml/parsers/SecuritySupport.java
avax/xml/transform/SecuritySupport.java
avax/xml/transform/Transformer.java
avax/xml/transform/TransformerFactory.java
avax/xml/validation/SchemaFactory.java
avax/xml/validation/SchemaFactoryFinder.java
avax/xml/validation/SecuritySupport.java
avax/xml/validation/Validator.java
avax/xml/xpath/SecuritySupport.java
avax/xml/xpath/XPath.java
avax/xml/xpath/XPathFactory.java
avax/xml/xpath/XPathFactoryFinder.java
fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726 13-May-2010 Elliott Hughes <enh@google.com> Remove //$NON-NLS-\d$ cruft.

Mostly done by perl(1), with manual cleanup of the few misspelled instances.
This makes our trailing whitespace slightly worse, but I'll fix all that with
a follow-on change.

Change-Id: I0b4ca98819be6f9519c4ba980d759bd1ee1a0303
ava/awt/font/NumericShaper.java
ava/awt/font/TextAttribute.java
ava/beans/PropertyChangeSupport.java
ava/io/BufferedInputStream.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/io/ByteArrayInputStream.java
ava/io/ByteArrayOutputStream.java
ava/io/CharArrayReader.java
ava/io/CharArrayWriter.java
ava/io/DataInputStream.java
ava/io/DataOutputStream.java
ava/io/File.java
ava/io/FileOutputStream.java
ava/io/FilePermission.java
ava/io/FilterOutputStream.java
ava/io/InputStream.java
ava/io/InputStreamReader.java
ava/io/InvalidClassException.java
ava/io/LineNumberInputStream.java
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/ObjectStreamConstants.java
ava/io/ObjectStreamField.java
ava/io/OutputStream.java
ava/io/OutputStreamWriter.java
ava/io/PipedInputStream.java
ava/io/PipedOutputStream.java
ava/io/PipedReader.java
ava/io/PipedWriter.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/RandomAccessFile.java
ava/io/SequenceInputStream.java
ava/io/StreamTokenizer.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/io/StringWriter.java
ava/io/WriteAbortedException.java
ava/io/Writer.java
ava/lang/AbstractStringBuilder.java
ava/lang/ArrayIndexOutOfBoundsException.java
ava/lang/Boolean.java
ava/lang/ClassCastException.java
ava/lang/Double.java
ava/lang/Enum.java
ava/lang/Float.java
ava/lang/ProcessBuilder.java
ava/lang/RuntimePermission.java
ava/lang/SecurityManager.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
ava/lang/StringIndexOutOfBoundsException.java
ava/lang/Void.java
ava/lang/reflect/Proxy.java
ava/math/Conversion.java
ava/net/Authenticator.java
ava/net/CookieHandler.java
ava/net/CookieManager.java
ava/net/CookieStoreImpl.java
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ava/net/HttpCookie.java
ava/net/HttpURLConnection.java
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetSocketAddress.java
ava/net/JarURLConnection.java
ava/net/MulticastSocket.java
ava/net/NetworkInterface.java
ava/net/Proxy.java
ava/net/ProxySelector.java
ava/net/ProxySelectorImpl.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketImpl.java
ava/net/SocketPermission.java
ava/net/URIEncoderDecoder.java
ava/net/URISyntaxException.java
ava/net/URL.java
ava/net/URLClassLoader.java
ava/net/URLConnection.java
ava/net/URLDecoder.java
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ava/nio/ByteBuffer.java
ava/nio/ByteOrder.java
ava/nio/CharBuffer.java
ava/nio/DoubleBuffer.java
ava/nio/FloatBuffer.java
ava/nio/IntBuffer.java
ava/nio/LongBuffer.java
ava/nio/ShortBuffer.java
ava/nio/channels/FileChannel.java
ava/nio/channels/spi/AbstractInterruptibleChannel.java
ava/nio/channels/spi/SelectorProvider.java
ava/nio/charset/Charset.java
ava/nio/charset/CoderResult.java
ava/nio/charset/CodingErrorAction.java
ava/nio/charset/spi/CharsetProvider.java
ava/security/AlgorithmParameterGenerator.java
ava/security/AlgorithmParameters.java
ava/security/AllPermission.java
ava/security/AllPermissionCollection.java
ava/security/BasicPermission.java
ava/security/BasicPermissionCollection.java
ava/security/CodeSigner.java
ava/security/CodeSource.java
ava/security/DigestInputStream.java
ava/security/DigestOutputStream.java
ava/security/Identity.java
ava/security/IdentityScope.java
ava/security/KeyFactory.java
ava/security/KeyPairGenerator.java
ava/security/KeyPairGeneratorSpi.java
ava/security/KeyRep.java
ava/security/KeyStore.java
ava/security/KeyStoreSpi.java
ava/security/MessageDigest.java
ava/security/MessageDigestSpi.java
ava/security/Permission.java
ava/security/PermissionCollection.java
ava/security/Permissions.java
ava/security/Policy.java
ava/security/PrivilegedActionException.java
ava/security/ProtectionDomain.java
ava/security/Provider.java
ava/security/SecureRandom.java
ava/security/Security.java
ava/security/Signature.java
ava/security/SignatureSpi.java
ava/security/Signer.java
ava/security/Timestamp.java
ava/security/UnresolvedPermission.java
ava/security/UnresolvedPermissionCollection.java
ava/security/cert/CertPath.java
ava/security/cert/CertPathBuilder.java
ava/security/cert/CertPathValidator.java
ava/security/cert/CertPathValidatorException.java
ava/security/cert/CertStore.java
ava/security/cert/Certificate.java
ava/security/cert/CertificateFactory.java
ava/security/cert/CertificateFactorySpi.java
ava/security/cert/CollectionCertStoreParameters.java
ava/security/cert/LDAPCertStoreParameters.java
ava/security/cert/PKIXBuilderParameters.java
ava/security/cert/PKIXCertPathBuilderResult.java
ava/security/cert/PKIXCertPathValidatorResult.java
ava/security/cert/PKIXParameters.java
ava/security/cert/PolicyQualifierInfo.java
ava/security/cert/TrustAnchor.java
ava/security/cert/X509CRL.java
ava/security/cert/X509CRLSelector.java
ava/security/cert/X509CertSelector.java
ava/security/cert/X509Certificate.java
ava/security/spec/ECFieldF2m.java
ava/security/spec/ECFieldFp.java
ava/security/spec/ECGenParameterSpec.java
ava/security/spec/ECParameterSpec.java
ava/security/spec/ECPoint.java
ava/security/spec/ECPrivateKeySpec.java
ava/security/spec/ECPublicKeySpec.java
ava/security/spec/EllipticCurve.java
ava/security/spec/MGF1ParameterSpec.java
ava/security/spec/PKCS8EncodedKeySpec.java
ava/security/spec/PSSParameterSpec.java
ava/security/spec/RSAMultiPrimePrivateCrtKeySpec.java
ava/security/spec/RSAOtherPrimeInfo.java
ava/security/spec/X509EncodedKeySpec.java
ava/sql/DataTruncation.java
ava/sql/Date.java
ava/sql/Time.java
ava/text/Annotation.java
ava/text/DecimalFormat.java
ava/text/FieldPosition.java
ava/text/ParsePosition.java
ava/util/AbstractCollection.java
ava/util/Arrays.java
ava/util/BitSet.java
ava/util/Calendar.java
ava/util/Collections.java
ava/util/EnumMap.java
ava/util/EventObject.java
ava/util/IdentityHashMap.java
ava/util/PropertyPermission.java
ava/util/PropertyPermissionCollection.java
ava/util/ResourceBundle.java
ava/util/Scanner.java
ava/util/SimpleTimeZone.java
ava/util/StringTokenizer.java
ava/util/Timer.java
ava/util/UUID.java
ava/util/UnknownFormatFlagsException.java
ava/util/Vector.java
ava/util/WeakHashMap.java
ava/util/jar/Attributes.java
ava/util/jar/InitManifest.java
ava/util/jar/JarEntry.java
ava/util/jar/JarFile.java
ava/util/jar/JarInputStream.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
ava/util/jar/Pack200.java
ava/util/logging/FileHandler.java
ava/util/logging/Formatter.java
ava/util/logging/Handler.java
ava/util/logging/Level.java
ava/util/logging/Logger.java
ava/util/logging/SimpleFormatter.java
ava/util/logging/SocketHandler.java
ava/util/logging/XMLFormatter.java
ava/util/prefs/AbstractPreferences.java
ava/util/prefs/FilePreferencesImpl.java
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/GZIPInputStream.java
ava/util/zip/Inflater.java
ava/util/zip/ZipInputStream.java
ava/util/zip/ZipOutputStream.java
avax/crypto/Cipher.java
avax/crypto/CipherSpi.java
avax/crypto/EncryptedPrivateKeyInfo.java
avax/crypto/ExemptionMechanism.java
avax/crypto/KeyAgreement.java
avax/crypto/KeyGenerator.java
avax/crypto/Mac.java
avax/crypto/SealedObject.java
avax/crypto/SecretKeyFactory.java
avax/crypto/spec/DESKeySpec.java
avax/crypto/spec/DESedeKeySpec.java
avax/crypto/spec/IvParameterSpec.java
avax/crypto/spec/OAEPParameterSpec.java
avax/crypto/spec/PBEKeySpec.java
avax/crypto/spec/PBEParameterSpec.java
avax/crypto/spec/PSource.java
avax/crypto/spec/RC2ParameterSpec.java
avax/crypto/spec/RC5ParameterSpec.java
avax/crypto/spec/SecretKeySpec.java
avax/security/auth/AuthPermission.java
avax/security/auth/PrivateCredentialPermission.java
avax/security/auth/Subject.java
avax/security/auth/SubjectDomainCombiner.java
avax/security/auth/callback/PasswordCallback.java
avax/security/auth/x500/X500Principal.java
avax/security/cert/X509Certificate.java
rg/apache/harmony/crypto/internal/NullCipherSpi.java
rg/apache/harmony/crypto/internal/nls/Messages.java
rg/apache/harmony/luni/internal/net/www/MimeTable.java
rg/apache/harmony/luni/internal/net/www/protocol/file/FileURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/file/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConfiguration.java
rg/apache/harmony/luni/internal/net/www/protocol/https/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnectionImpl.java
rg/apache/harmony/luni/net/NetUtil.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/net/SocketInputStream.java
rg/apache/harmony/luni/net/SocketOutputStream.java
rg/apache/harmony/luni/net/Socks4Message.java
rg/apache/harmony/luni/platform/AbstractMemorySpy.java
rg/apache/harmony/luni/platform/Endianness.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/util/FloatingPointParser.java
rg/apache/harmony/luni/util/HexStringParser.java
rg/apache/harmony/luni/util/InputStreamHelper.java
rg/apache/harmony/luni/util/MsgHelp.java
rg/apache/harmony/luni/util/URLUtil.java
rg/apache/harmony/misc/SystemUtils.java
rg/apache/harmony/nio/internal/MappedByteBufferFactory.java
rg/apache/harmony/security/DefaultPolicyScanner.java
rg/apache/harmony/security/PrivateKeyImpl.java
rg/apache/harmony/security/PublicKeyImpl.java
rg/apache/harmony/security/SystemScope.java
rg/apache/harmony/security/UnresolvedPrincipal.java
rg/apache/harmony/security/asn1/ASN1BitString.java
rg/apache/harmony/security/asn1/ASN1Choice.java
rg/apache/harmony/security/asn1/ASN1Explicit.java
rg/apache/harmony/security/asn1/ASN1GeneralizedTime.java
rg/apache/harmony/security/asn1/ASN1Implicit.java
rg/apache/harmony/security/asn1/ASN1OpenType.java
rg/apache/harmony/security/asn1/ASN1StringType.java
rg/apache/harmony/security/asn1/ASN1Time.java
rg/apache/harmony/security/asn1/ASN1Type.java
rg/apache/harmony/security/asn1/ASN1TypeCollection.java
rg/apache/harmony/security/asn1/ASN1UTCTime.java
rg/apache/harmony/security/asn1/BerInputStream.java
rg/apache/harmony/security/asn1/BitString.java
rg/apache/harmony/security/asn1/DerInputStream.java
rg/apache/harmony/security/asn1/ObjectIdentifier.java
rg/apache/harmony/security/fortress/DefaultPolicy.java
rg/apache/harmony/security/fortress/DefaultPolicyParser.java
rg/apache/harmony/security/fortress/Engine.java
rg/apache/harmony/security/fortress/PolicyUtils.java
rg/apache/harmony/security/fortress/SecurityUtils.java
rg/apache/harmony/security/fortress/Services.java
rg/apache/harmony/security/internal/nls/Messages.java
rg/apache/harmony/security/pkcs10/CertificationRequestInfo.java
rg/apache/harmony/security/pkcs7/ContentInfo.java
rg/apache/harmony/security/pkcs7/SignedData.java
rg/apache/harmony/security/pkcs7/SignerInfo.java
rg/apache/harmony/security/provider/cert/Cache.java
rg/apache/harmony/security/provider/cert/DRLCertFactory.java
rg/apache/harmony/security/provider/cert/X509CRLEntryImpl.java
rg/apache/harmony/security/provider/cert/X509CRLImpl.java
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/security/provider/cert/X509CertImpl.java
rg/apache/harmony/security/provider/cert/X509CertPathImpl.java
rg/apache/harmony/security/provider/crypto/CryptoProvider.java
rg/apache/harmony/security/provider/crypto/DSAKeyFactoryImpl.java
rg/apache/harmony/security/provider/crypto/DSAPrivateKeyImpl.java
rg/apache/harmony/security/provider/crypto/DSAPublicKeyImpl.java
rg/apache/harmony/security/provider/crypto/RandomBitsSupplier.java
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
rg/apache/harmony/security/provider/crypto/SHA1_Data.java
rg/apache/harmony/security/provider/crypto/SHA1_MessageDigestImpl.java
rg/apache/harmony/security/provider/crypto/SHA1withDSA_SignatureImpl.java
rg/apache/harmony/security/utils/AlgNameMapper.java
rg/apache/harmony/security/utils/Array.java
rg/apache/harmony/security/utils/JarUtils.java
rg/apache/harmony/security/utils/ObjectIdentifier.java
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/apache/harmony/security/x501/Name.java
rg/apache/harmony/security/x509/AccessDescription.java
rg/apache/harmony/security/x509/AlgorithmIdentifier.java
rg/apache/harmony/security/x509/AlternativeName.java
rg/apache/harmony/security/x509/AuthorityKeyIdentifier.java
rg/apache/harmony/security/x509/BasicConstraints.java
rg/apache/harmony/security/x509/CRLDistributionPoints.java
rg/apache/harmony/security/x509/CRLNumber.java
rg/apache/harmony/security/x509/Certificate.java
rg/apache/harmony/security/x509/CertificateIssuer.java
rg/apache/harmony/security/x509/CertificateList.java
rg/apache/harmony/security/x509/CertificatePolicies.java
rg/apache/harmony/security/x509/DNParser.java
rg/apache/harmony/security/x509/DistributionPoint.java
rg/apache/harmony/security/x509/DistributionPointName.java
rg/apache/harmony/security/x509/ExtendedKeyUsage.java
rg/apache/harmony/security/x509/Extension.java
rg/apache/harmony/security/x509/ExtensionValue.java
rg/apache/harmony/security/x509/Extensions.java
rg/apache/harmony/security/x509/GeneralName.java
rg/apache/harmony/security/x509/GeneralSubtree.java
rg/apache/harmony/security/x509/InfoAccessSyntax.java
rg/apache/harmony/security/x509/InhibitAnyPolicy.java
rg/apache/harmony/security/x509/InvalidityDate.java
rg/apache/harmony/security/x509/IssuingDistributionPoint.java
rg/apache/harmony/security/x509/KeyUsage.java
rg/apache/harmony/security/x509/NameConstraints.java
rg/apache/harmony/security/x509/PolicyConstraints.java
rg/apache/harmony/security/x509/PolicyInformation.java
rg/apache/harmony/security/x509/ReasonCode.java
rg/apache/harmony/security/x509/ReasonFlags.java
rg/apache/harmony/security/x509/SubjectKeyIdentifier.java
rg/apache/harmony/security/x509/TBSCertList.java
rg/apache/harmony/security/x509/TBSCertificate.java
rg/apache/harmony/security/x509/X509PublicKey.java
2620ff9a08ce7fc6d66b60784b1eecd78eb001ba 13-May-2010 Elliott Hughes <enh@google.com> Fix *Channel to check that they're not trying to write into a read-only ByteBuffer.

Previously only DatagramChannel made the effort. Note that I also found another
customer for calculateTotalRemaining, and that the near-duplicate I'm removing
used an incorrect bound in its for loop.

Change-Id: Ia618ce271657a7fe7b3a0050dc089350d61e3398
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
d85168bd730e513cb0bd561030da3f7ea5044725 13-May-2010 Elliott Hughes <enh@google.com> Slightly reduce duplication in FileChannelImpl/SocketChannelImpl.

Based on a harmony change.

Change-Id: I92a043d2a246aac74829cb38efeadf4886bf2ec3
rg/apache/harmony/nio/internal/FileChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
a008cf079f1cb812ec42a4fcc941fe170cc9b40d 13-May-2010 Elliott Hughes <enh@google.com> Minor file system changes.

Use fstat(2) instead of three seek(2)s to get the length of a file.

Java's readv should return -1 at EOF rather than 0.

The size() == 0 check in FileChannelImpl was (apparently) bogus.

(These changes are basically the same as harmony changes, and fix existing
harmony tests, so no new tests.)

Change-Id: I302611f777e91571b95654e03d0a3a41e1f97968
ava/io/FileInputStream.java
ava/io/RandomAccessFile.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
0b2836e81d354e9bb7df9d43cda5ccfb9c199450 12-May-2010 Elliott Hughes <enh@google.com> Apply http://svn.apache.org/viewvc?rev=936696&view=rev.

Change-Id: I24080d57d69d7763f67def2ec5c06583beda6c59
ava/net/URLConnection.java
f281667712baf8e0721ceb2cc60e7eef19c2d859 12-May-2010 Elliott Hughes <enh@google.com> Reduced the amount of memory used by the TimeZone display names.

Bug: 2672057
Change-Id: I2f31ff3b5fbbf5cf8e16c89ef78a5246c6c3733a
om/ibm/icu4jni/util/ICU.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
0bcf4405371581bc413563298bb9c749e4697390 12-May-2010 Elliott Hughes <enh@google.com> Merge "Documentation improvements." into dalvik-dev
a49c913fd6bed0137320e434b26a1630d6b8bf30 12-May-2010 Brian Carlstrom <bdc@google.com> Merge "SSLSession and SSLSessionContext timeout improvements" into dalvik-dev
5f37da05bb48298568f8abd7c97c3d11552e1867 11-May-2010 Elliott Hughes <enh@google.com> Documentation improvements.

Remove a bunch of content-free "package.html" files, and rewrite the Pattern
documentation.

Change-Id: Ieb4eee940dbbeab21828b8d7b2f172732f9dd6de
ava/io/package.html
ava/lang/Character.java
ava/lang/String.java
ava/lang/annotation/package.html
ava/lang/package.html
ava/lang/reflect/package.html
ava/math/package.html
ava/net/package.html
ava/nio/channels/package.html
ava/nio/channels/spi/package.html
ava/nio/charset/package.html
ava/nio/charset/spi/package.html
ava/nio/package.html
ava/text/package.html
ava/util/jar/package.html
ava/util/logging/package.html
ava/util/package.html
ava/util/prefs/package.html
ava/util/regex/Pattern.java
ava/util/regex/package.html
ava/util/zip/package.html
avax/sql/package.html
a7ae90de24809b266bb5efdc9033a3261e31f521 11-May-2010 Brian Carlstrom <bdc@google.com> SSLSession and SSLSessionContext timeout improvements

Fix getIds Enumeration to filter invalid sessions.
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java

Implement SSLSessionContext.setSessionTimeout to remove newly
invalid sessions as specified by the RI documentation. getSession
interfaces now filters invalid sessions from results.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerSessionContext.java

Added OpenSSLSocketImpl.creationTime instance field cache to avoid
repeated native calls since this is now used for all isValid tests.
Fixed broken isValid implementation:
- compared seconds to milliseconds
- direction of comparison backwards
- used last accessed time instead creation time as clarified in RI 7 documentation.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java

Unrelated

Replace java.io.* java.util.* imports with properly expanded versions:

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java

Change-Id: Ib02218df414f014f1d260f7acc067e5647fb700b
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerSessionContext.java
509ca343769fa66b6f644561f9a9384a4c5ee5d1 11-May-2010 Jeremy Sharpe <jsharpe@google.com> Fix a bug in PriorityQueue where compareTo() is used instead of equals() in the remove() method.

According to the documentation for PriorityQueue, equals() must be used.

Fixed one unit test (which needed the incorrect behaviour in order to pass). Verified that the old test fails against Sun's libraries, and the new one passes (and fails against ours until the change is applied).

Change-Id: I93e7d3435d5cdc4432969585064df704f92d6ae5
ava/util/PriorityQueue.java
0af0a7959d838c48e6b4e8dc9ac188ff6bbb6a87 11-May-2010 Brian Carlstrom <bdc@google.com> SSLSessionContexts should throw NullPointerException on getSession(null)

Add an explicit null check to ensure failure on a null argument to getSession to match the RI

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerSessionContext.java

Remove KnownFailures resolved by above fix as well as clarifiying SSL
session cache expections on Android vs the RI. The KnownFailures were
also hiding some latent issues to do SSL session tickets, so fixed
those up as well.

luni/src/test/java/javax/net/ssl/SSLSessionContextTest.java

Added constants for expected SSL session cache behavior for RI vs Android

support/src/test/java/javax/net/ssl/TestSSLContext.java

Change-Id: Ic6285192cf76c0a5c3fa45a24eaa504ed0babff5
rg/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
rg/apache/harmony/xnet/provider/jsse/ServerSessionContext.java
f365a1c9cec94071b7a3161d7bdcb3f61d28f912 10-May-2010 Brian Carlstrom <bdc@google.com> SSLContext.getClientSessionContext and getServerSessionContext should work before SSLContext.init

Moved initialization of SSLContextImpl clientSessionContext and
serverSessionContext from engineInit time (in SSLParameters
constructor) to constructor time, making them final. This is to
fix javax.net.ssl.SSLContextTest which was failing because it
tried to access this before init was called, which worked fine on
the RI. The SSLParameters now simply takes the preallocated
session contexts as arguments. SSLParameters.getDefault() now
needs to create its own session contexts when an SSLContext is not
used, which is how Harmony does it.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLParameters.java

Removed KnownFailure from SSLContextTest as its 100% working.

luni/src/test/java/javax/net/ssl/SSLContextTest.java

Changed persistentCache fields of ClientSessionContext and
ServerSessionContext from final to private and added a public
setter. This replaces passing the persistentCache implementation
in via the constructor. For momentarily backward compatibility
with frameworks/base, the now deprecated 5 argument engineInit
method now uses these setters for backward compatability. The
SSLParameters previously took these persistent caches as arguments
in order to pass them to the session context contructors, but as
SSLParameters no longer creates these, they are no longer relevant.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerSessionContext.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLParameters.java

While moving the call of the AbstractSessionContext constructor
from SSLParameters to SSLContextImpl after removing the persistent
cache arguments, I realized there was no longer any reason to take
any arguments. I pushed the initization of sslCtxNativePointer to
the point of declaration.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerSessionContext.java

Change-Id: Ied2903a2f369bf4e521e702bf58f32f21cb97d17
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
rg/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLParameters.java
rg/apache/harmony/xnet/provider/jsse/ServerSessionContext.java
edc2dae4345ea305f092ade00419685d77c8eee9 08-May-2010 Elliott Hughes <enh@google.com> Trivia.

Remove unused parameters from NetworkInterface's native methods.

Remove commented-out static initializers.

Fix FileChannel.force so that force(true) doesn't do _less_ than force(false).
Note that force(true) still doesn't do _more_ than force(false) because bionic
doesn't implement fdatasync(2). I've raised a bug against bionic about that.

Change-Id: Ia5e827638606a7919e3bcf324810747ee6bcbb9a
ava/net/DatagramSocket.java
ava/net/NetworkInterface.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/nio/channels/DatagramChannel.java
ava/nio/channels/SocketChannel.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
rg/apache/harmony/nio/internal/ReadOnlyFileChannel.java
0356c447b30e092bdc12a4b7288c08f5ef87534c 08-May-2010 Elliott Hughes <enh@google.com> Fix sim build, remove static initalizers from Deflater/Inflater.

Change-Id: I56a453a1382559cdcf9f22c6a185db7178fbe098
ava/io/ObjectStreamClass.java
ava/util/zip/Deflater.java
ava/util/zip/Inflater.java
b6f5c95cc2fcbed28f72db98512bb8caff55d857 07-May-2010 Brian Carlstrom <bdc@google.com> Merge "Moving OpenSSLSocketImpl native code to NativeCrypto (and other clearnup)" into dalvik-dev
3e24c53ecc31b840e51869c295785d5a2f8b31eb 06-May-2010 Brian Carlstrom <bdc@google.com> Moving OpenSSLSocketImpl native code to NativeCrypto (and other clearnup)

Summary:
- Finished consolidating OpenSSL native code into NativeCrypto
- fixing local vs global ref bug with AppData
Added new ScopedGlobalRef as part of this fix
- fixed many historical memory leaks identified during code review
- fixed lack of error checking on allcoation with OpenSSL *_new routines
- Added to_SSL_CTX and to_SSL_SESSION to match to_SSL (renamed from getSslPointer)
- Replaced most uses of GetByteArrayElements with ScopedByteArray
(including cases where we we using ReleaseByteArrayElements(..,...,0) instead of JNI_ABORT)
- Replaced uses of GetStringUTFChars with ScopedUtfChars

Details:

Finished consolidating OpenSSL native code into NativeCrypto

OpenSSLSocketImpl NativeCrypto
---------------------------------------
nativeread SSL_read_byte
nativeread SSL_read
nativewrite SSL_write_byte
nativewrite SSL_write
nativeinterrupt SSL_interrupt
nativeclose SSL_shutdown
nativeverifysignature verifysignature

Also removed dead code that was wrapping SSL_get1_session

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
luni/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

Fixed NativeCrypto_SSL_write and NativeCrypto_d2i_SSL_SESSION to use
JNI_ABORT on release to avoid copy back of unchanged data (via ScopedByteArray).

luni/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

While running the usual tests:
adb shell run-core-tests tests.xnet.AllTests javax.net.ssl.AllTests
there was an abort from the JNI checking because in the recent
handshaking change, local refs were kept in AppData and then reused in
later calls. Added new ScopedGlobalRef to handle the book keeping of this.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
include/ScopedGlobalRef.h

Fixed various leaks on old error paths spotted by reviewer.

luni/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

Tracking move of verifySignature, a non-SSL bit of code that was lurking in OpenSSLSocketImpl

luni/src/main/java/org/apache/harmony/security/provider/cert/X509CertImpl.java

Change-Id: If1e409782bc99dc684039cfe3f53f8244e29346e
rg/apache/harmony/security/provider/cert/X509CertImpl.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
50d99e18a862aab4b20f6b9b1c2f16c99991443b 06-May-2010 Elliott Hughes <enh@google.com> Merge "Fix SimpleDateFormat's unsafe Date handling." into dalvik-dev
6fcba7b74c6b5a700d386fabac72d380f63be966 06-May-2010 Elliott Hughes <enh@google.com> Fix SimpleDateFormat's unsafe Date handling.

Bug: 2483056
Change-Id: Ib9581ba035c3185b534fa2885c2239c56b8117e0
ava/text/SimpleDateFormat.java
3642569f572913df26e48b04f32b719cb1c38261 06-May-2010 Jesse Wilson <jessewilson@google.com> Setting expectations and fixing failures from scrubbing Harmony tests.

The tests found a few small problems (yay) but required many suppressions.
Later we might want to convert the suppressions into fixes for the
corresponding tests.

Change-Id: I29f2f9cef7e2c878aba8303b44c9b990de0777dd
ava/util/TreeMap.java
ava/util/UnknownFormatConversionException.java
ava/util/prefs/FilePreferencesImpl.java
ab3683bce6e370c946598bfad54387fa38ce69df 06-May-2010 Elliott Hughes <enh@google.com> Improve File.renameTo documentation.

Bug: http://code.google.com/p/android/issues/detail?id=8172
Change-Id: I497f23ee9e320c43e525040a9da3f470c33894fb
ava/io/File.java
5cc876d21b0038163bc916e58849478f13c40fef 06-May-2010 Elliott Hughes <enh@google.com> Trivia.

Fix my test to do what I intended (and what the comment claims), and privatize
Platform's privates.

Change-Id: Icedc8aed50d6ec69c69e4b00786e40b7c4071b91
rg/apache/harmony/luni/platform/Platform.java
eeefcae2980c8db05ec08303b5b112afce232d26 06-May-2010 Elliott Hughes <enh@google.com> Remove the "Answers" javadoc barbarism.

I didn't realize how little of it was left, or I'd have done this earlier.

Change-Id: Ic4c23c3779bbee0ed4a8117584c5332e04536b5d
ava/io/ObjectStreamClass.java
ava/lang/Math.java
ava/lang/StrictMath.java
ava/net/HttpCookie.java
ava/text/SimpleDateFormat.java
ava/util/ResourceBundle.java
ava/util/TreeSet.java
rg/apache/harmony/luni/platform/Platform.java
rg/apache/harmony/luni/util/TwoKeyHashMap.java
rg/apache/harmony/luni/util/Util.java
rg/apache/harmony/nio/internal/FileLockImpl.java
b470d3a945dea5544906614d3cfb3c43dba5a5c9 06-May-2010 Elliott Hughes <enh@google.com> Merge "Fix HttpURLConnection to not cache failures." into dalvik-dev
6247987eb505a482a67f5f19678260d9e7240a5f 05-May-2010 Elliott Hughes <enh@google.com> Fix HttpURLConnection to not cache failures.

Found while investigating http://code.google.com/p/android/issues/detail?id=7787,
which turned out to be caused by unclear documentation. I've improved the
documentation somewhat, and stopped offering failed responses to the cache.

Bug: http://code.google.com/p/android/issues/detail?id=7787
Change-Id: Iec69769344af92345392c7ced817b0c823963524
ava/net/CacheResponse.java
ava/net/ResponseCache.java
ava/net/URLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/util/ExternalMessages.properties
f002bdddce924e2145a4a2b60592b7a40f4112f6 05-May-2010 Brian Carlstrom <bdc@google.com> Moving OpenSSLSessionImpl native code to NativeCrypto

OpenSSLSessionImpl NativeCrypto
-------------------------------------------------------
getId SSL_SESSION_session_id
getPeerCertificatesImpl SSL_SESSION_get_peer_cert_chain
getCreationTime SSL_SESSION_get_time
getProtocol SSL_SESSION_get_version
getCipherSuite SSL_SESSION_cipher
freeImpl SSL_SESSION_free
getEncoded i2d_SSL_SESSION
initializeNativeImpl d2i_SSL_SESSION

Change-Id: I4538df52280266711986a577b14868af3ea0ed62
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
7b18e4c9b11150a9492a779a69412ac78b6d51be 05-May-2010 Elliott Hughes <enh@google.com> Merge "Remove use of non-errno error codes in OSNetworkSystem." into dalvik-dev
b375c0ce8372b1343cfd9aa27698df1227c0b4e5 05-May-2010 Elliott Hughes <enh@google.com> Remove use of non-errno error codes in OSNetworkSystem.

This code's confusing enough without being so idiosyncratic. I've also changed
the native method so it returns a boolean rather leaking errno values in Java.

Where the original code used ENOTCONN, I've reverted to the native API's
EINPROGRESS for clarity. I've also used TEMP_FAILURE_RETRY to avoid manually
messing about with EINTR.

While I was here, I fixed a TODO about not needlessly passing a
sockaddr_storage by value, and removed a dead part of the old getsockopt code
I'd forgotten to remove.

Change-Id: I3c62fb80e33747619961ff39a0867422769126c4
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
e688a4123f165ed2905878e312b074b8c825d119 05-May-2010 Brian Carlstrom <bdc@google.com> Addressing post-submit comments regarding OpenSSL handhake changes

Following up on feedback from earlier change https://android-git.corp.google.com/g/50435

Added new test_SSLSocket_startHandshake_noClientCertificate to
make sure handshaking works when no client certificates are
present after issues raised by hwu during code review.

luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Improve TestSSLContext.create* options
- added javadoc comments to help distinguish different versions
- fixed bug of not passing in keyStorePassword in create()
- added new createClient(server) method to create a TestSSLContext
that trusts the provided server TestSSLContext's certificate for
use by test_SSLSocket_startHandshake_noClientCertificate
- made createKeyStore optionally create a more minimal keystore if
aliases are not present
support/src/test/java/javax/net/ssl/TestSSLContext.java

Fixed argument names in SSL_*_mode methods names as pointed out by hwu

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java

Added comment to explain purpose of OpenSSLSessionImpl.resetId.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java

Two changes to OpenSocketImpl
- Added logging on runtime exception catch around
HandshakeCompletedListener execution to closely mirror RI
behavior.
- Cleaned up peerCertificate check to not just be on the client path.

luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

Addressed enh's comments about using clearEnv and when to delete AppData

luni/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

Change-Id: I34f54e3e41a5d53d81fdc22aa34ca4de4ee9826f
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
6b811c5daec1b28e6f63b57f98a032236f2c3cf7 03-May-2010 Peter Hallam <peterhal@google.com> Merge awt-kernel, icu, luni-kernel, prefs, security-kernel, x-net into luni
Merge xml except xmlpull and kxml into luni
om/ibm/icu4jni/charset/CharsetDecoderICU.java
om/ibm/icu4jni/charset/CharsetEncoderICU.java
om/ibm/icu4jni/charset/CharsetICU.java
om/ibm/icu4jni/charset/NativeConverter.java
om/ibm/icu4jni/common/ErrorCode.java
om/ibm/icu4jni/lang/UCharacter.java
om/ibm/icu4jni/regex/NativeRegEx.java
om/ibm/icu4jni/text/CollationAttribute.java
om/ibm/icu4jni/text/CollationElementIterator.java
om/ibm/icu4jni/text/CollationKey.java
om/ibm/icu4jni/text/Collator.java
om/ibm/icu4jni/text/NativeBreakIterator.java
om/ibm/icu4jni/text/NativeCollation.java
om/ibm/icu4jni/text/NativeDecimalFormat.java
om/ibm/icu4jni/text/NativeIDN.java
om/ibm/icu4jni/text/NativeNormalizer.java
om/ibm/icu4jni/text/RuleBasedCollator.java
om/ibm/icu4jni/util/ICU.java
om/ibm/icu4jni/util/LocaleData.java
ava/awt/font/NumericShaper.java
ava/awt/font/TextAttribute.java
ava/beans/IndexedPropertyChangeEvent.java
ava/beans/PropertyChangeEvent.java
ava/beans/PropertyChangeListener.java
ava/beans/PropertyChangeListenerProxy.java
ava/beans/PropertyChangeSupport.java
ava/lang/Class.java
ava/lang/ClassCache.java
ava/lang/ClassLoader.java
ava/lang/Compiler.java
ava/lang/LangAccessImpl.java
ava/lang/Object.java
ava/lang/Package.java
ava/lang/ProcessManager.java
ava/lang/Runtime.java
ava/lang/StackTraceElement.java
ava/lang/System.java
ava/lang/Thread.java
ava/lang/ThreadGroup.java
ava/lang/Throwable.java
ava/lang/ref/PhantomReference.java
ava/lang/ref/Reference.java
ava/lang/ref/SoftReference.java
ava/lang/ref/WeakReference.java
ava/lang/reflect/AccessibleObject.java
ava/lang/reflect/Array.java
ava/lang/reflect/Constructor.java
ava/lang/reflect/Field.java
ava/lang/reflect/Method.java
ava/lang/reflect/ReflectionAccessImpl.java
ava/security/AccessControlContext.java
ava/security/AccessController.java
ava/util/prefs/AbstractPreferences.java
ava/util/prefs/BackingStoreException.java
ava/util/prefs/FilePreferencesFactoryImpl.java
ava/util/prefs/FilePreferencesImpl.java
ava/util/prefs/InvalidPreferencesFormatException.java
ava/util/prefs/NodeChangeEvent.java
ava/util/prefs/NodeChangeListener.java
ava/util/prefs/NodeSet.java
ava/util/prefs/PreferenceChangeEvent.java
ava/util/prefs/PreferenceChangeListener.java
ava/util/prefs/Preferences.java
ava/util/prefs/PreferencesFactory.java
ava/util/prefs/XMLParser.java
ava/util/prefs/package.html
avax/net/DefaultServerSocketFactory.java
avax/net/DefaultSocketFactory.java
avax/net/ServerSocketFactory.java
avax/net/SocketFactory.java
avax/net/package.html
avax/net/ssl/CertPathTrustManagerParameters.java
avax/net/ssl/DefaultHostnameVerifier.java
avax/net/ssl/DefaultSSLContext.java
avax/net/ssl/DefaultSSLServerSocketFactory.java
avax/net/ssl/DefaultSSLSocketFactory.java
avax/net/ssl/HandshakeCompletedEvent.java
avax/net/ssl/HandshakeCompletedListener.java
avax/net/ssl/HostnameVerifier.java
avax/net/ssl/HttpsURLConnection.java
avax/net/ssl/KeyManager.java
avax/net/ssl/KeyManagerFactory.java
avax/net/ssl/KeyManagerFactorySpi.java
avax/net/ssl/KeyStoreBuilderParameters.java
avax/net/ssl/ManagerFactoryParameters.java
avax/net/ssl/SSLContext.java
avax/net/ssl/SSLContextSpi.java
avax/net/ssl/SSLEngine.java
avax/net/ssl/SSLEngineResult.java
avax/net/ssl/SSLException.java
avax/net/ssl/SSLHandshakeException.java
avax/net/ssl/SSLKeyException.java
avax/net/ssl/SSLPeerUnverifiedException.java
avax/net/ssl/SSLPermission.java
avax/net/ssl/SSLProtocolException.java
avax/net/ssl/SSLServerSocket.java
avax/net/ssl/SSLServerSocketFactory.java
avax/net/ssl/SSLSession.java
avax/net/ssl/SSLSessionBindingEvent.java
avax/net/ssl/SSLSessionBindingListener.java
avax/net/ssl/SSLSessionContext.java
avax/net/ssl/SSLSocket.java
avax/net/ssl/SSLSocketFactory.java
avax/net/ssl/TrustManager.java
avax/net/ssl/TrustManagerFactory.java
avax/net/ssl/TrustManagerFactorySpi.java
avax/net/ssl/X509ExtendedKeyManager.java
avax/net/ssl/X509KeyManager.java
avax/net/ssl/X509TrustManager.java
avax/net/ssl/package.html
avax/xml/XMLConstants.java
avax/xml/datatype/DatatypeConfigurationException.java
avax/xml/datatype/DatatypeConstants.java
avax/xml/datatype/DatatypeFactory.java
avax/xml/datatype/Duration.java
avax/xml/datatype/FactoryFinder.java
avax/xml/datatype/SecuritySupport.java
avax/xml/datatype/XMLGregorianCalendar.java
avax/xml/datatype/package.html
avax/xml/namespace/NamespaceContext.java
avax/xml/namespace/QName.java
avax/xml/namespace/package.html
avax/xml/package.html
avax/xml/parsers/DocumentBuilder.java
avax/xml/parsers/DocumentBuilderFactory.java
avax/xml/parsers/FactoryConfigurationError.java
avax/xml/parsers/FilePathToURI.java
avax/xml/parsers/ParserConfigurationException.java
avax/xml/parsers/SAXParser.java
avax/xml/parsers/SAXParserFactory.java
avax/xml/parsers/SecuritySupport.java
avax/xml/parsers/package.html
avax/xml/transform/ErrorListener.java
avax/xml/transform/OutputKeys.java
avax/xml/transform/Result.java
avax/xml/transform/SecuritySupport.java
avax/xml/transform/Source.java
avax/xml/transform/SourceLocator.java
avax/xml/transform/Templates.java
avax/xml/transform/Transformer.java
avax/xml/transform/TransformerConfigurationException.java
avax/xml/transform/TransformerException.java
avax/xml/transform/TransformerFactory.java
avax/xml/transform/TransformerFactoryConfigurationError.java
avax/xml/transform/URIResolver.java
avax/xml/transform/dom/DOMLocator.java
avax/xml/transform/dom/DOMResult.java
avax/xml/transform/dom/DOMSource.java
avax/xml/transform/dom/package.html
avax/xml/transform/overview.html
avax/xml/transform/package.html
avax/xml/transform/sax/SAXResult.java
avax/xml/transform/sax/SAXSource.java
avax/xml/transform/sax/SAXTransformerFactory.java
avax/xml/transform/sax/TemplatesHandler.java
avax/xml/transform/sax/TransformerHandler.java
avax/xml/transform/sax/package.html
avax/xml/transform/stream/FilePathToURI.java
avax/xml/transform/stream/StreamResult.java
avax/xml/transform/stream/StreamSource.java
avax/xml/transform/stream/package.html
avax/xml/validation/Schema.java
avax/xml/validation/SchemaFactory.java
avax/xml/validation/SchemaFactoryFinder.java
avax/xml/validation/SchemaFactoryLoader.java
avax/xml/validation/SecuritySupport.java
avax/xml/validation/TypeInfoProvider.java
avax/xml/validation/Validator.java
avax/xml/validation/ValidatorHandler.java
avax/xml/validation/package.html
avax/xml/xpath/SecuritySupport.java
avax/xml/xpath/XPath.java
avax/xml/xpath/XPathConstants.java
avax/xml/xpath/XPathException.java
avax/xml/xpath/XPathExpression.java
avax/xml/xpath/XPathExpressionException.java
avax/xml/xpath/XPathFactory.java
avax/xml/xpath/XPathFactoryConfigurationException.java
avax/xml/xpath/XPathFactoryFinder.java
avax/xml/xpath/XPathFunction.java
avax/xml/xpath/XPathFunctionException.java
avax/xml/xpath/XPathFunctionResolver.java
avax/xml/xpath/XPathVariableResolver.java
avax/xml/xpath/package.html
rg/apache/harmony/kernel/vm/LangAccess.java
rg/apache/harmony/kernel/vm/ReflectionAccess.java
rg/apache/harmony/kernel/vm/StringUtils.java
rg/apache/harmony/kernel/vm/VM.java
rg/apache/harmony/lang/annotation/AnnotationFactory.java
rg/apache/harmony/lang/annotation/AnnotationMember.java
rg/apache/harmony/xml/ExpatAttributes.java
rg/apache/harmony/xml/ExpatException.java
rg/apache/harmony/xml/ExpatParser.java
rg/apache/harmony/xml/ExpatPullParser.java
rg/apache/harmony/xml/ExpatReader.java
rg/apache/harmony/xml/dom/AttrImpl.java
rg/apache/harmony/xml/dom/CDATASectionImpl.java
rg/apache/harmony/xml/dom/CharacterDataImpl.java
rg/apache/harmony/xml/dom/CommentImpl.java
rg/apache/harmony/xml/dom/DOMConfigurationImpl.java
rg/apache/harmony/xml/dom/DOMImplementationImpl.java
rg/apache/harmony/xml/dom/DocumentFragmentImpl.java
rg/apache/harmony/xml/dom/DocumentImpl.java
rg/apache/harmony/xml/dom/DocumentTypeImpl.java
rg/apache/harmony/xml/dom/ElementImpl.java
rg/apache/harmony/xml/dom/EntityImpl.java
rg/apache/harmony/xml/dom/EntityReferenceImpl.java
rg/apache/harmony/xml/dom/InnerNodeImpl.java
rg/apache/harmony/xml/dom/LeafNodeImpl.java
rg/apache/harmony/xml/dom/NamedNodeMapImpl.java
rg/apache/harmony/xml/dom/NodeImpl.java
rg/apache/harmony/xml/dom/NodeListImpl.java
rg/apache/harmony/xml/dom/NotationImpl.java
rg/apache/harmony/xml/dom/ProcessingInstructionImpl.java
rg/apache/harmony/xml/dom/TextImpl.java
rg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl.java
rg/apache/harmony/xml/parsers/DocumentBuilderImpl.java
rg/apache/harmony/xml/parsers/SAXParserFactoryImpl.java
rg/apache/harmony/xml/parsers/SAXParserImpl.java
rg/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
rg/apache/harmony/xnet/provider/jsse/AlertException.java
rg/apache/harmony/xnet/provider/jsse/AlertProtocol.java
rg/apache/harmony/xnet/provider/jsse/Appendable.java
rg/apache/harmony/xnet/provider/jsse/CertificateMessage.java
rg/apache/harmony/xnet/provider/jsse/CertificateRequest.java
rg/apache/harmony/xnet/provider/jsse/CertificateVerify.java
rg/apache/harmony/xnet/provider/jsse/CipherSuite.java
rg/apache/harmony/xnet/provider/jsse/ClientHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/ClientHello.java
rg/apache/harmony/xnet/provider/jsse/ClientKeyExchange.java
rg/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
rg/apache/harmony/xnet/provider/jsse/ConnectionState.java
rg/apache/harmony/xnet/provider/jsse/ConnectionStateSSLv3.java
rg/apache/harmony/xnet/provider/jsse/ConnectionStateTLS.java
rg/apache/harmony/xnet/provider/jsse/ContentType.java
rg/apache/harmony/xnet/provider/jsse/DHParameters.java
rg/apache/harmony/xnet/provider/jsse/DataStream.java
rg/apache/harmony/xnet/provider/jsse/DelegatedTask.java
rg/apache/harmony/xnet/provider/jsse/DigitalSignature.java
rg/apache/harmony/xnet/provider/jsse/EndOfBufferException.java
rg/apache/harmony/xnet/provider/jsse/EndOfSourceException.java
rg/apache/harmony/xnet/provider/jsse/FileClientSessionCache.java
rg/apache/harmony/xnet/provider/jsse/Finished.java
rg/apache/harmony/xnet/provider/jsse/Handshake.java
rg/apache/harmony/xnet/provider/jsse/HandshakeIODataStream.java
rg/apache/harmony/xnet/provider/jsse/HandshakeProtocol.java
rg/apache/harmony/xnet/provider/jsse/HelloRequest.java
rg/apache/harmony/xnet/provider/jsse/JSSEProvider.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/KeyManagerImpl.java
rg/apache/harmony/xnet/provider/jsse/Logger.java
rg/apache/harmony/xnet/provider/jsse/Message.java
rg/apache/harmony/xnet/provider/jsse/NativeCrypto.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigest.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLMessageDigestJDK.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSignature.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
rg/apache/harmony/xnet/provider/jsse/OpenSSLSocketImplWrapper.java
rg/apache/harmony/xnet/provider/jsse/PRF.java
rg/apache/harmony/xnet/provider/jsse/ProtocolVersion.java
rg/apache/harmony/xnet/provider/jsse/SSLBufferedInput.java
rg/apache/harmony/xnet/provider/jsse/SSLClientSessionCache.java
rg/apache/harmony/xnet/provider/jsse/SSLContextImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineAppData.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineDataStream.java
rg/apache/harmony/xnet/provider/jsse/SSLEngineImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLInputStream.java
rg/apache/harmony/xnet/provider/jsse/SSLParameters.java
rg/apache/harmony/xnet/provider/jsse/SSLRecordProtocol.java
rg/apache/harmony/xnet/provider/jsse/SSLServerSessionCache.java
rg/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java
rg/apache/harmony/xnet/provider/jsse/SSLStreamedInput.java
rg/apache/harmony/xnet/provider/jsse/SSLv3Constants.java
rg/apache/harmony/xnet/provider/jsse/ServerHandshakeImpl.java
rg/apache/harmony/xnet/provider/jsse/ServerHello.java
rg/apache/harmony/xnet/provider/jsse/ServerHelloDone.java
rg/apache/harmony/xnet/provider/jsse/ServerKeyExchange.java
rg/apache/harmony/xnet/provider/jsse/ServerSessionContext.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerFactoryImpl.java
rg/apache/harmony/xnet/provider/jsse/TrustManagerImpl.java
rg/apache/xalan/Version.java
rg/apache/xalan/Version.src
rg/apache/xalan/extensions/ExpressionContext.java
rg/apache/xalan/extensions/ExpressionVisitor.java
rg/apache/xalan/extensions/ExtensionHandler.java
rg/apache/xalan/extensions/ExtensionNamespaceSupport.java
rg/apache/xalan/extensions/ExtensionNamespacesManager.java
rg/apache/xalan/extensions/ExtensionsTable.java
rg/apache/xalan/extensions/ObjectFactory.java
rg/apache/xalan/processor/ProcessorAttributeSet.java
rg/apache/xalan/processor/ProcessorCharacters.java
rg/apache/xalan/processor/ProcessorDecimalFormat.java
rg/apache/xalan/processor/ProcessorExsltFuncResult.java
rg/apache/xalan/processor/ProcessorExsltFunction.java
rg/apache/xalan/processor/ProcessorGlobalParamDecl.java
rg/apache/xalan/processor/ProcessorGlobalVariableDecl.java
rg/apache/xalan/processor/ProcessorImport.java
rg/apache/xalan/processor/ProcessorInclude.java
rg/apache/xalan/processor/ProcessorKey.java
rg/apache/xalan/processor/ProcessorLRE.java
rg/apache/xalan/processor/ProcessorNamespaceAlias.java
rg/apache/xalan/processor/ProcessorOutputElem.java
rg/apache/xalan/processor/ProcessorPreserveSpace.java
rg/apache/xalan/processor/ProcessorStripSpace.java
rg/apache/xalan/processor/ProcessorStylesheetDoc.java
rg/apache/xalan/processor/ProcessorStylesheetElement.java
rg/apache/xalan/processor/ProcessorTemplate.java
rg/apache/xalan/processor/ProcessorTemplateElem.java
rg/apache/xalan/processor/ProcessorText.java
rg/apache/xalan/processor/ProcessorUnknown.java
rg/apache/xalan/processor/StylesheetHandler.java
rg/apache/xalan/processor/TransformerFactoryImpl.java
rg/apache/xalan/processor/WhitespaceInfoPaths.java
rg/apache/xalan/processor/XSLProcessorVersion.src
rg/apache/xalan/processor/XSLTAttributeDef.java
rg/apache/xalan/processor/XSLTElementDef.java
rg/apache/xalan/processor/XSLTElementProcessor.java
rg/apache/xalan/processor/XSLTSchema.java
rg/apache/xalan/processor/package.html
rg/apache/xalan/res/XSLMessages.java
rg/apache/xalan/res/XSLTErrorResources.java
rg/apache/xalan/res/XSLTInfo.properties
rg/apache/xalan/res/package.html
rg/apache/xalan/serialize/SerializerUtils.java
rg/apache/xalan/templates/AVT.java
rg/apache/xalan/templates/AVTPart.java
rg/apache/xalan/templates/AVTPartSimple.java
rg/apache/xalan/templates/AVTPartXPath.java
rg/apache/xalan/templates/AbsPathChecker.java
rg/apache/xalan/templates/Constants.java
rg/apache/xalan/templates/DecimalFormatProperties.java
rg/apache/xalan/templates/ElemApplyImport.java
rg/apache/xalan/templates/ElemApplyTemplates.java
rg/apache/xalan/templates/ElemAttribute.java
rg/apache/xalan/templates/ElemAttributeSet.java
rg/apache/xalan/templates/ElemCallTemplate.java
rg/apache/xalan/templates/ElemChoose.java
rg/apache/xalan/templates/ElemComment.java
rg/apache/xalan/templates/ElemCopy.java
rg/apache/xalan/templates/ElemCopyOf.java
rg/apache/xalan/templates/ElemElement.java
rg/apache/xalan/templates/ElemEmpty.java
rg/apache/xalan/templates/ElemExsltFuncResult.java
rg/apache/xalan/templates/ElemExsltFunction.java
rg/apache/xalan/templates/ElemExtensionCall.java
rg/apache/xalan/templates/ElemExtensionDecl.java
rg/apache/xalan/templates/ElemExtensionScript.java
rg/apache/xalan/templates/ElemFallback.java
rg/apache/xalan/templates/ElemForEach.java
rg/apache/xalan/templates/ElemIf.java
rg/apache/xalan/templates/ElemLiteralResult.java
rg/apache/xalan/templates/ElemMessage.java
rg/apache/xalan/templates/ElemNumber.java
rg/apache/xalan/templates/ElemOtherwise.java
rg/apache/xalan/templates/ElemPI.java
rg/apache/xalan/templates/ElemParam.java
rg/apache/xalan/templates/ElemSort.java
rg/apache/xalan/templates/ElemTemplate.java
rg/apache/xalan/templates/ElemTemplateElement.java
rg/apache/xalan/templates/ElemText.java
rg/apache/xalan/templates/ElemTextLiteral.java
rg/apache/xalan/templates/ElemUnknown.java
rg/apache/xalan/templates/ElemUse.java
rg/apache/xalan/templates/ElemValueOf.java
rg/apache/xalan/templates/ElemVariable.java
rg/apache/xalan/templates/ElemVariablePsuedo.java
rg/apache/xalan/templates/ElemWhen.java
rg/apache/xalan/templates/ElemWithParam.java
rg/apache/xalan/templates/FuncDocument.java
rg/apache/xalan/templates/FuncFormatNumb.java
rg/apache/xalan/templates/FuncKey.java
rg/apache/xalan/templates/KeyDeclaration.java
rg/apache/xalan/templates/NamespaceAlias.java
rg/apache/xalan/templates/OutputProperties.java
rg/apache/xalan/templates/RedundentExprEliminator.java
rg/apache/xalan/templates/Stylesheet.java
rg/apache/xalan/templates/StylesheetComposed.java
rg/apache/xalan/templates/StylesheetRoot.java
rg/apache/xalan/templates/TemplateList.java
rg/apache/xalan/templates/TemplateSubPatternAssociation.java
rg/apache/xalan/templates/VarNameCollector.java
rg/apache/xalan/templates/WhiteSpaceInfo.java
rg/apache/xalan/templates/XMLNSDecl.java
rg/apache/xalan/templates/XSLTVisitable.java
rg/apache/xalan/templates/XSLTVisitor.java
rg/apache/xalan/templates/XUnresolvedVariable.java
rg/apache/xalan/templates/XUnresolvedVariableSimple.java
rg/apache/xalan/templates/package.html
rg/apache/xalan/transformer/ClonerToResultTree.java
rg/apache/xalan/transformer/Counter.java
rg/apache/xalan/transformer/CountersTable.java
rg/apache/xalan/transformer/DecimalToRoman.java
rg/apache/xalan/transformer/KeyIterator.java
rg/apache/xalan/transformer/KeyManager.java
rg/apache/xalan/transformer/KeyTable.java
rg/apache/xalan/transformer/MsgMgr.java
rg/apache/xalan/transformer/NodeSortKey.java
rg/apache/xalan/transformer/NodeSorter.java
rg/apache/xalan/transformer/SerializerSwitcher.java
rg/apache/xalan/transformer/TrAXFilter.java
rg/apache/xalan/transformer/TransformState.java
rg/apache/xalan/transformer/TransformerClient.java
rg/apache/xalan/transformer/TransformerHandlerImpl.java
rg/apache/xalan/transformer/TransformerIdentityImpl.java
rg/apache/xalan/transformer/TransformerImpl.java
rg/apache/xalan/transformer/TreeWalker2Result.java
rg/apache/xalan/transformer/XalanProperties.java
rg/apache/xalan/transformer/XalanTransformState.java
rg/apache/xalan/transformer/package.html
rg/apache/xalan/xslt/EnvironmentCheck.java
rg/apache/xalan/xslt/ObjectFactory.java
rg/apache/xalan/xslt/SecuritySupport.java
rg/apache/xalan/xslt/SecuritySupport12.java
rg/apache/xalan/xslt/package.html
rg/apache/xml/dtm/Axis.java
rg/apache/xml/dtm/DTM.java
rg/apache/xml/dtm/DTMAxisIterator.java
rg/apache/xml/dtm/DTMAxisTraverser.java
rg/apache/xml/dtm/DTMConfigurationException.java
rg/apache/xml/dtm/DTMDOMException.java
rg/apache/xml/dtm/DTMException.java
rg/apache/xml/dtm/DTMFilter.java
rg/apache/xml/dtm/DTMIterator.java
rg/apache/xml/dtm/DTMManager.java
rg/apache/xml/dtm/DTMWSFilter.java
rg/apache/xml/dtm/ObjectFactory.java
rg/apache/xml/dtm/SecuritySupport.java
rg/apache/xml/dtm/SecuritySupport12.java
rg/apache/xml/dtm/ref/ChunkedIntArray.java
rg/apache/xml/dtm/ref/CoroutineManager.java
rg/apache/xml/dtm/ref/DTMAxisIterNodeList.java
rg/apache/xml/dtm/ref/DTMAxisIteratorBase.java
rg/apache/xml/dtm/ref/DTMChildIterNodeList.java
rg/apache/xml/dtm/ref/DTMDefaultBase.java
rg/apache/xml/dtm/ref/DTMDefaultBaseIterators.java
rg/apache/xml/dtm/ref/DTMDefaultBaseTraversers.java
rg/apache/xml/dtm/ref/DTMDocumentImpl.java
rg/apache/xml/dtm/ref/DTMManagerDefault.java
rg/apache/xml/dtm/ref/DTMNamedNodeMap.java
rg/apache/xml/dtm/ref/DTMNodeIterator.java
rg/apache/xml/dtm/ref/DTMNodeList.java
rg/apache/xml/dtm/ref/DTMNodeListBase.java
rg/apache/xml/dtm/ref/DTMNodeProxy.java
rg/apache/xml/dtm/ref/DTMStringPool.java
rg/apache/xml/dtm/ref/DTMTreeWalker.java
rg/apache/xml/dtm/ref/ExpandedNameTable.java
rg/apache/xml/dtm/ref/ExtendedType.java
rg/apache/xml/dtm/ref/IncrementalSAXSource.java
rg/apache/xml/dtm/ref/IncrementalSAXSource_Filter.java
rg/apache/xml/dtm/ref/NodeLocator.java
rg/apache/xml/dtm/ref/SecuritySupport.java
rg/apache/xml/dtm/ref/SecuritySupport12.java
rg/apache/xml/dtm/ref/dom2dtm/DOM2DTM.java
rg/apache/xml/dtm/ref/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java
rg/apache/xml/dtm/ref/sax2dtm/SAX2DTM.java
rg/apache/xml/dtm/ref/sax2dtm/SAX2DTM2.java
rg/apache/xml/dtm/ref/sax2dtm/SAX2RTFDTM.java
rg/apache/xml/res/XMLErrorResources.java
rg/apache/xml/res/XMLMessages.java
rg/apache/xml/serializer/AttributesImplSerializer.java
rg/apache/xml/serializer/CharInfo.java
rg/apache/xml/serializer/DOM3Serializer.java
rg/apache/xml/serializer/DOMSerializer.java
rg/apache/xml/serializer/ElemContext.java
rg/apache/xml/serializer/ElemDesc.java
rg/apache/xml/serializer/EncodingInfo.java
rg/apache/xml/serializer/Encodings.java
rg/apache/xml/serializer/Encodings.properties
rg/apache/xml/serializer/ExtendedContentHandler.java
rg/apache/xml/serializer/ExtendedLexicalHandler.java
rg/apache/xml/serializer/HTMLEntities.properties
rg/apache/xml/serializer/Method.java
rg/apache/xml/serializer/NamespaceMappings.java
rg/apache/xml/serializer/ObjectFactory.java
rg/apache/xml/serializer/OutputPropertiesFactory.java
rg/apache/xml/serializer/OutputPropertyUtils.java
rg/apache/xml/serializer/SecuritySupport.java
rg/apache/xml/serializer/SecuritySupport12.java
rg/apache/xml/serializer/SerializationHandler.java
rg/apache/xml/serializer/Serializer.java
rg/apache/xml/serializer/SerializerBase.java
rg/apache/xml/serializer/SerializerConstants.java
rg/apache/xml/serializer/SerializerFactory.java
rg/apache/xml/serializer/SerializerTrace.java
rg/apache/xml/serializer/SerializerTraceWriter.java
rg/apache/xml/serializer/ToHTMLStream.java
rg/apache/xml/serializer/ToSAXHandler.java
rg/apache/xml/serializer/ToStream.java
rg/apache/xml/serializer/ToTextSAXHandler.java
rg/apache/xml/serializer/ToTextStream.java
rg/apache/xml/serializer/ToUnknownStream.java
rg/apache/xml/serializer/ToXMLSAXHandler.java
rg/apache/xml/serializer/ToXMLStream.java
rg/apache/xml/serializer/TransformStateSetter.java
rg/apache/xml/serializer/TreeWalker.java
rg/apache/xml/serializer/Version.java
rg/apache/xml/serializer/Version.src
rg/apache/xml/serializer/WriterChain.java
rg/apache/xml/serializer/WriterToASCI.java
rg/apache/xml/serializer/WriterToUTF8Buffered.java
rg/apache/xml/serializer/XMLEntities.properties
rg/apache/xml/serializer/XSLOutputAttributes.java
rg/apache/xml/serializer/dom3/DOM3SerializerImpl.java
rg/apache/xml/serializer/dom3/DOM3TreeWalker.java
rg/apache/xml/serializer/dom3/DOMConstants.java
rg/apache/xml/serializer/dom3/DOMErrorHandlerImpl.java
rg/apache/xml/serializer/dom3/DOMErrorImpl.java
rg/apache/xml/serializer/dom3/DOMLocatorImpl.java
rg/apache/xml/serializer/dom3/DOMOutputImpl.java
rg/apache/xml/serializer/dom3/DOMStringListImpl.java
rg/apache/xml/serializer/dom3/LSSerializerImpl.java
rg/apache/xml/serializer/dom3/NamespaceSupport.java
rg/apache/xml/serializer/output_html.properties
rg/apache/xml/serializer/output_text.properties
rg/apache/xml/serializer/output_unknown.properties
rg/apache/xml/serializer/output_xml.properties
rg/apache/xml/serializer/package.html
rg/apache/xml/serializer/utils/AttList.java
rg/apache/xml/serializer/utils/DOM2Helper.java
rg/apache/xml/serializer/utils/Messages.java
rg/apache/xml/serializer/utils/MsgKey.java
rg/apache/xml/serializer/utils/SerializerMessages.java
rg/apache/xml/serializer/utils/SerializerMessages_ca.java
rg/apache/xml/serializer/utils/SerializerMessages_cs.java
rg/apache/xml/serializer/utils/SerializerMessages_de.java
rg/apache/xml/serializer/utils/SerializerMessages_en.java
rg/apache/xml/serializer/utils/SerializerMessages_es.java
rg/apache/xml/serializer/utils/SerializerMessages_fr.java
rg/apache/xml/serializer/utils/SerializerMessages_hu.java
rg/apache/xml/serializer/utils/SerializerMessages_it.java
rg/apache/xml/serializer/utils/SerializerMessages_ja.java
rg/apache/xml/serializer/utils/SerializerMessages_ko.java
rg/apache/xml/serializer/utils/SerializerMessages_pl.java
rg/apache/xml/serializer/utils/SerializerMessages_pt_BR.java
rg/apache/xml/serializer/utils/SerializerMessages_ru.java
rg/apache/xml/serializer/utils/SerializerMessages_sk.java
rg/apache/xml/serializer/utils/SerializerMessages_sl.java
rg/apache/xml/serializer/utils/SerializerMessages_sv.java
rg/apache/xml/serializer/utils/SerializerMessages_tr.java
rg/apache/xml/serializer/utils/SerializerMessages_zh.java
rg/apache/xml/serializer/utils/SerializerMessages_zh_CN.java
rg/apache/xml/serializer/utils/SerializerMessages_zh_TW.java
rg/apache/xml/serializer/utils/StringToIntTable.java
rg/apache/xml/serializer/utils/SystemIDResolver.java
rg/apache/xml/serializer/utils/URI.java
rg/apache/xml/serializer/utils/Utils.java
rg/apache/xml/serializer/utils/WrappedRuntimeException.java
rg/apache/xml/serializer/utils/XML11Char.java
rg/apache/xml/serializer/utils/XMLChar.java
rg/apache/xml/utils/AttList.java
rg/apache/xml/utils/BoolStack.java
rg/apache/xml/utils/Constants.java
rg/apache/xml/utils/DOM2Helper.java
rg/apache/xml/utils/DOMBuilder.java
rg/apache/xml/utils/DOMHelper.java
rg/apache/xml/utils/DOMOrder.java
rg/apache/xml/utils/DefaultErrorHandler.java
rg/apache/xml/utils/FastStringBuffer.java
rg/apache/xml/utils/IntStack.java
rg/apache/xml/utils/IntVector.java
rg/apache/xml/utils/NSInfo.java
rg/apache/xml/utils/NameSpace.java
rg/apache/xml/utils/NamespaceSupport2.java
rg/apache/xml/utils/NodeConsumer.java
rg/apache/xml/utils/NodeVector.java
rg/apache/xml/utils/ObjectFactory.java
rg/apache/xml/utils/ObjectPool.java
rg/apache/xml/utils/ObjectStack.java
rg/apache/xml/utils/ObjectVector.java
rg/apache/xml/utils/PrefixResolver.java
rg/apache/xml/utils/PrefixResolverDefault.java
rg/apache/xml/utils/QName.java
rg/apache/xml/utils/SAXSourceLocator.java
rg/apache/xml/utils/SecuritySupport.java
rg/apache/xml/utils/SecuritySupport12.java
rg/apache/xml/utils/StopParseException.java
rg/apache/xml/utils/StringBufferPool.java
rg/apache/xml/utils/StringToIntTable.java
rg/apache/xml/utils/StringVector.java
rg/apache/xml/utils/StylesheetPIHandler.java
rg/apache/xml/utils/SuballocatedIntVector.java
rg/apache/xml/utils/SystemIDResolver.java
rg/apache/xml/utils/ThreadControllerWrapper.java
rg/apache/xml/utils/TreeWalker.java
rg/apache/xml/utils/URI.java
rg/apache/xml/utils/UnImplNode.java
rg/apache/xml/utils/WrappedRuntimeException.java
rg/apache/xml/utils/XML11Char.java
rg/apache/xml/utils/XMLChar.java
rg/apache/xml/utils/XMLCharacterRecognizer.java
rg/apache/xml/utils/XMLReaderManager.java
rg/apache/xml/utils/XMLString.java
rg/apache/xml/utils/XMLStringDefault.java
rg/apache/xml/utils/XMLStringFactory.java
rg/apache/xml/utils/package.html
rg/apache/xml/utils/res/CharArrayWrapper.java
rg/apache/xml/utils/res/IntArrayWrapper.java
rg/apache/xml/utils/res/LongArrayWrapper.java
rg/apache/xml/utils/res/StringArrayWrapper.java
rg/apache/xml/utils/res/XResourceBundle.java
rg/apache/xml/utils/res/XResourceBundleBase.java
rg/apache/xml/utils/res/XResources_cy.java
rg/apache/xml/utils/res/XResources_de.java
rg/apache/xml/utils/res/XResources_el.java
rg/apache/xml/utils/res/XResources_en.java
rg/apache/xml/utils/res/XResources_es.java
rg/apache/xml/utils/res/XResources_fr.java
rg/apache/xml/utils/res/XResources_he.java
rg/apache/xml/utils/res/XResources_hy.java
rg/apache/xml/utils/res/XResources_it.java
rg/apache/xml/utils/res/XResources_ja_JP_A.java
rg/apache/xml/utils/res/XResources_ja_JP_HA.java
rg/apache/xml/utils/res/XResources_ja_JP_HI.java
rg/apache/xml/utils/res/XResources_ja_JP_I.java
rg/apache/xml/utils/res/XResources_ka.java
rg/apache/xml/utils/res/XResources_ko.java
rg/apache/xml/utils/res/XResources_sv.java
rg/apache/xml/utils/res/XResources_zh_CN.java
rg/apache/xml/utils/res/XResources_zh_TW.java
rg/apache/xpath/Arg.java
rg/apache/xpath/CachedXPathAPI.java
rg/apache/xpath/Expression.java
rg/apache/xpath/ExpressionNode.java
rg/apache/xpath/ExpressionOwner.java
rg/apache/xpath/ExtensionsProvider.java
rg/apache/xpath/FoundIndex.java
rg/apache/xpath/NodeSet.java
rg/apache/xpath/NodeSetDTM.java
rg/apache/xpath/SourceTree.java
rg/apache/xpath/SourceTreeManager.java
rg/apache/xpath/VariableStack.java
rg/apache/xpath/WhitespaceStrippingElementMatcher.java
rg/apache/xpath/XPath.java
rg/apache/xpath/XPathAPI.java
rg/apache/xpath/XPathContext.java
rg/apache/xpath/XPathException.java
rg/apache/xpath/XPathFactory.java
rg/apache/xpath/XPathProcessorException.java
rg/apache/xpath/XPathVisitable.java
rg/apache/xpath/XPathVisitor.java
rg/apache/xpath/axes/AttributeIterator.java
rg/apache/xpath/axes/AxesWalker.java
rg/apache/xpath/axes/BasicTestIterator.java
rg/apache/xpath/axes/ChildIterator.java
rg/apache/xpath/axes/ChildTestIterator.java
rg/apache/xpath/axes/ContextNodeList.java
rg/apache/xpath/axes/DescendantIterator.java
rg/apache/xpath/axes/FilterExprIterator.java
rg/apache/xpath/axes/FilterExprIteratorSimple.java
rg/apache/xpath/axes/FilterExprWalker.java
rg/apache/xpath/axes/HasPositionalPredChecker.java
rg/apache/xpath/axes/IteratorPool.java
rg/apache/xpath/axes/LocPathIterator.java
rg/apache/xpath/axes/MatchPatternIterator.java
rg/apache/xpath/axes/NodeSequence.java
rg/apache/xpath/axes/OneStepIterator.java
rg/apache/xpath/axes/OneStepIteratorForward.java
rg/apache/xpath/axes/PathComponent.java
rg/apache/xpath/axes/PredicatedNodeTest.java
rg/apache/xpath/axes/RTFIterator.java
rg/apache/xpath/axes/ReverseAxesWalker.java
rg/apache/xpath/axes/SelfIteratorNoPredicate.java
rg/apache/xpath/axes/SubContextList.java
rg/apache/xpath/axes/UnionChildIterator.java
rg/apache/xpath/axes/UnionPathIterator.java
rg/apache/xpath/axes/WalkerFactory.java
rg/apache/xpath/axes/WalkingIterator.java
rg/apache/xpath/axes/WalkingIteratorSorted.java
rg/apache/xpath/axes/package.html
rg/apache/xpath/compiler/Compiler.java
rg/apache/xpath/compiler/FunctionTable.java
rg/apache/xpath/compiler/Keywords.java
rg/apache/xpath/compiler/Lexer.java
rg/apache/xpath/compiler/OpCodes.java
rg/apache/xpath/compiler/OpMap.java
rg/apache/xpath/compiler/OpMapVector.java
rg/apache/xpath/compiler/PsuedoNames.java
rg/apache/xpath/compiler/XPathDumper.java
rg/apache/xpath/compiler/XPathParser.java
rg/apache/xpath/compiler/package.html
rg/apache/xpath/domapi/XPathStylesheetDOM3Exception.java
rg/apache/xpath/functions/FuncBoolean.java
rg/apache/xpath/functions/FuncCeiling.java
rg/apache/xpath/functions/FuncConcat.java
rg/apache/xpath/functions/FuncContains.java
rg/apache/xpath/functions/FuncCount.java
rg/apache/xpath/functions/FuncCurrent.java
rg/apache/xpath/functions/FuncDoclocation.java
rg/apache/xpath/functions/FuncExtElementAvailable.java
rg/apache/xpath/functions/FuncExtFunction.java
rg/apache/xpath/functions/FuncExtFunctionAvailable.java
rg/apache/xpath/functions/FuncFalse.java
rg/apache/xpath/functions/FuncFloor.java
rg/apache/xpath/functions/FuncGenerateId.java
rg/apache/xpath/functions/FuncId.java
rg/apache/xpath/functions/FuncLang.java
rg/apache/xpath/functions/FuncLast.java
rg/apache/xpath/functions/FuncLocalPart.java
rg/apache/xpath/functions/FuncNamespace.java
rg/apache/xpath/functions/FuncNormalizeSpace.java
rg/apache/xpath/functions/FuncNot.java
rg/apache/xpath/functions/FuncNumber.java
rg/apache/xpath/functions/FuncPosition.java
rg/apache/xpath/functions/FuncQname.java
rg/apache/xpath/functions/FuncRound.java
rg/apache/xpath/functions/FuncStartsWith.java
rg/apache/xpath/functions/FuncString.java
rg/apache/xpath/functions/FuncStringLength.java
rg/apache/xpath/functions/FuncSubstring.java
rg/apache/xpath/functions/FuncSubstringAfter.java
rg/apache/xpath/functions/FuncSubstringBefore.java
rg/apache/xpath/functions/FuncSum.java
rg/apache/xpath/functions/FuncSystemProperty.java
rg/apache/xpath/functions/FuncTranslate.java
rg/apache/xpath/functions/FuncTrue.java
rg/apache/xpath/functions/FuncUnparsedEntityURI.java
rg/apache/xpath/functions/Function.java
rg/apache/xpath/functions/Function2Args.java
rg/apache/xpath/functions/Function3Args.java
rg/apache/xpath/functions/FunctionDef1Arg.java
rg/apache/xpath/functions/FunctionMultiArgs.java
rg/apache/xpath/functions/FunctionOneArg.java
rg/apache/xpath/functions/ObjectFactory.java
rg/apache/xpath/functions/SecuritySupport.java
rg/apache/xpath/functions/SecuritySupport12.java
rg/apache/xpath/functions/WrongNumberArgsException.java
rg/apache/xpath/functions/package.html
rg/apache/xpath/jaxp/JAXPExtensionsProvider.java
rg/apache/xpath/jaxp/JAXPPrefixResolver.java
rg/apache/xpath/jaxp/JAXPVariableStack.java
rg/apache/xpath/jaxp/XPathExpressionImpl.java
rg/apache/xpath/jaxp/XPathFactoryImpl.java
rg/apache/xpath/jaxp/XPathImpl.java
rg/apache/xpath/objects/DTMXRTreeFrag.java
rg/apache/xpath/objects/XBoolean.java
rg/apache/xpath/objects/XBooleanStatic.java
rg/apache/xpath/objects/XMLStringFactoryImpl.java
rg/apache/xpath/objects/XNodeSet.java
rg/apache/xpath/objects/XNodeSetForDOM.java
rg/apache/xpath/objects/XNull.java
rg/apache/xpath/objects/XNumber.java
rg/apache/xpath/objects/XObject.java
rg/apache/xpath/objects/XObjectFactory.java
rg/apache/xpath/objects/XRTreeFrag.java
rg/apache/xpath/objects/XRTreeFragSelectWrapper.java
rg/apache/xpath/objects/XString.java
rg/apache/xpath/objects/XStringForChars.java
rg/apache/xpath/objects/XStringForFSB.java
rg/apache/xpath/objects/package.html
rg/apache/xpath/operations/And.java
rg/apache/xpath/operations/Bool.java
rg/apache/xpath/operations/Div.java
rg/apache/xpath/operations/Equals.java
rg/apache/xpath/operations/Gt.java
rg/apache/xpath/operations/Gte.java
rg/apache/xpath/operations/Lt.java
rg/apache/xpath/operations/Lte.java
rg/apache/xpath/operations/Minus.java
rg/apache/xpath/operations/Mod.java
rg/apache/xpath/operations/Mult.java
rg/apache/xpath/operations/Neg.java
rg/apache/xpath/operations/NotEquals.java
rg/apache/xpath/operations/Number.java
rg/apache/xpath/operations/Operation.java
rg/apache/xpath/operations/Or.java
rg/apache/xpath/operations/Plus.java
rg/apache/xpath/operations/Quo.java
rg/apache/xpath/operations/String.java
rg/apache/xpath/operations/UnaryOperation.java
rg/apache/xpath/operations/Variable.java
rg/apache/xpath/operations/VariableSafeAbsRef.java
rg/apache/xpath/operations/package.html
rg/apache/xpath/package.html
rg/apache/xpath/patterns/ContextMatchStepPattern.java
rg/apache/xpath/patterns/FunctionPattern.java
rg/apache/xpath/patterns/NodeTest.java
rg/apache/xpath/patterns/NodeTestFilter.java
rg/apache/xpath/patterns/StepPattern.java
rg/apache/xpath/patterns/UnionPattern.java
rg/apache/xpath/patterns/package.html
rg/apache/xpath/res/XPATHErrorResources.java
rg/apache/xpath/res/XPATHMessages.java
rg/apache/xpath/res/package.html
rg/w3c/dom/Attr.java
rg/w3c/dom/CDATASection.java
rg/w3c/dom/CharacterData.java
rg/w3c/dom/Comment.java
rg/w3c/dom/DOMConfiguration.java
rg/w3c/dom/DOMError.java
rg/w3c/dom/DOMErrorHandler.java
rg/w3c/dom/DOMException.java
rg/w3c/dom/DOMImplementation.java
rg/w3c/dom/DOMImplementationList.java
rg/w3c/dom/DOMImplementationSource.java
rg/w3c/dom/DOMLocator.java
rg/w3c/dom/DOMStringList.java
rg/w3c/dom/Document.java
rg/w3c/dom/DocumentFragment.java
rg/w3c/dom/DocumentType.java
rg/w3c/dom/Element.java
rg/w3c/dom/Entity.java
rg/w3c/dom/EntityReference.java
rg/w3c/dom/NameList.java
rg/w3c/dom/NamedNodeMap.java
rg/w3c/dom/Node.java
rg/w3c/dom/NodeList.java
rg/w3c/dom/Notation.java
rg/w3c/dom/ProcessingInstruction.java
rg/w3c/dom/Text.java
rg/w3c/dom/TypeInfo.java
rg/w3c/dom/UserDataHandler.java
rg/w3c/dom/ls/DOMImplementationLS.java
rg/w3c/dom/ls/LSException.java
rg/w3c/dom/ls/LSInput.java
rg/w3c/dom/ls/LSOutput.java
rg/w3c/dom/ls/LSParser.java
rg/w3c/dom/ls/LSParserFilter.java
rg/w3c/dom/ls/LSResourceResolver.java
rg/w3c/dom/ls/LSSerializer.java
rg/w3c/dom/ls/LSSerializerFilter.java
rg/w3c/dom/package.html
rg/w3c/dom/traversal/NodeFilter.java
rg/w3c/dom/traversal/NodeIterator.java
rg/xml/sax/AttributeList.java
rg/xml/sax/Attributes.java
rg/xml/sax/ContentHandler.java
rg/xml/sax/DTDHandler.java
rg/xml/sax/DocumentHandler.java
rg/xml/sax/EntityResolver.java
rg/xml/sax/ErrorHandler.java
rg/xml/sax/HandlerBase.java
rg/xml/sax/InputSource.java
rg/xml/sax/Locator.java
rg/xml/sax/Parser.java
rg/xml/sax/SAXException.java
rg/xml/sax/SAXNotRecognizedException.java
rg/xml/sax/SAXNotSupportedException.java
rg/xml/sax/SAXParseException.java
rg/xml/sax/XMLFilter.java
rg/xml/sax/XMLReader.java
rg/xml/sax/ext/Attributes2.java
rg/xml/sax/ext/Attributes2Impl.java
rg/xml/sax/ext/DeclHandler.java
rg/xml/sax/ext/DefaultHandler2.java
rg/xml/sax/ext/EntityResolver2.java
rg/xml/sax/ext/LexicalHandler.java
rg/xml/sax/ext/Locator2.java
rg/xml/sax/ext/Locator2Impl.java
rg/xml/sax/ext/package.html
rg/xml/sax/helpers/AttributeListImpl.java
rg/xml/sax/helpers/AttributesImpl.java
rg/xml/sax/helpers/DefaultHandler.java
rg/xml/sax/helpers/LocatorImpl.java
rg/xml/sax/helpers/NamespaceSupport.java
rg/xml/sax/helpers/NewInstance.java
rg/xml/sax/helpers/ParserAdapter.java
rg/xml/sax/helpers/ParserFactory.java
rg/xml/sax/helpers/XMLFilterImpl.java
rg/xml/sax/helpers/XMLReaderAdapter.java
rg/xml/sax/helpers/XMLReaderFactory.java
rg/xml/sax/helpers/package.html
rg/xml/sax/package.html
0a98ab45e3566542f2d669eb0ffd28a560d97d28 05-May-2010 Jesse Wilson <jessewilson@google.com> Merge "Improving the doc for java.util.Timer" into dalvik-dev
c38102eb6f7a01fe70094a63054337f53ab5283d 05-May-2010 Jesse Wilson <jessewilson@google.com> Improving the doc for java.util.Timer

Change-Id: Ie6fd0f7509a2dbf84255aebb02b8216c98201dc4
ava/util/Timer.java
252299f5206edf81e208f368deef054c464e9d2e 04-May-2010 Elliott Hughes <enh@google.com> Merge "Fix IPv6 multicast TTLs." into dalvik-dev
4401c75ac7d85da33472d0398d8166df6ce4beb5 04-May-2010 Elliott Hughes <enh@google.com> Fix IPv6 multicast TTLs.

There's a Linux kernel bug we need to work-around for now. This patch adds that
workaround and tidies up the getSocketOption implementation.

This also fixes a bug I introduced in the last patch where setSocketOption
would reject InetAddress parameters.

Change-Id: Ie309b693520fed8306d346d5b4492c42e8967721
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
f4c62bce9efbba1ded656acacb0695694a16d309 04-May-2010 Brian Carlstrom <bdc@google.com> Merge "OpenSSLSocket handshake overhaul" into dalvik-dev
bcfb325d5b1f9529b439cc0805a1c140521510f7 02-May-2010 Brian Carlstrom <bdc@google.com> OpenSSLSocket handshake overhaul

Summary:
- SSLSocket.startHandshake now generalized to handle both client and
server handshaking as well as client/server role reversal
- handshake_cutthrough.patch is properly integrated with support
delayed handshake completion now integrated with delayed updates to
session cache and callbacks to HandshakeCompletedListeners
- Many fixes to SSLSession, which is the end product of the handshake
- Generally more RI and SSLEngine compliant behavior.
- More native code deletion through unification of client/server
handshake, unification of client/server certificate chain
verification, etc. More native code moved from various OpenSSL
classes to cleaner NativeCrypto interfaces that more directly mirror
the OpenSSL interfaces.

Details:

Delay SSL_new call until handshake time when we know for sure whether
the OpenSSLSocket will be used in client or server mode and we can
allocate the SSL_new from the apppriate client or server SSL_CTX used
for session caching.

Now that no SSL is allocated for an OpenSSLServerSocketImpl,
store enabledProtocols and enabledCipherSuites in instance String
arrays. Use new NativeCrypto.checkEnabled* methdods for argument
validation. OpenSSLServerSocketImpl passes these enabled arrays to
a new OpenSSLSocket constructor during accept(). Removed finalizer
from OpenSSLServerSocketImpl since it no longer has any native
storage and socket is already closed by PlainSocketImpl finalizer.

X-net/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLServerSocketImpl.java
x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

OpenSSLSocket major overhaul to properly implement handshaking
including switching client and server roles and session ID caching
with handshake_cutthrough.patch.
- now implements NativeCrypto.HandshakeCompletedListeners for
properly timed callback when handshake_cutthrough.patch delays
handshake completion until first SSLSocket.getInputStream()
read.
- similar enabledProtocols/enabledCipherSuites changes as
OpenSSLServerSocketImpl since we need to store the state
somewhere other than an openssl SSL struct until we are sure if
we are doing a client or server handshake.
- added handshake completed field so that startHandshake can tell
if handshake was completed during SSL_do_handshake or will be
completed later by a call to HandshakeCompletedCallback.handshakeCompleted.
- removed nativegetsession as the equivalent value is now returned by SSL_do_handshake
- removed nativecipherauthenticationmethod as the value is now passed to verifyCertificateChain
- startHandshake is now a wrapper that forces a fully synchronous handshake
- startHandshake(boolean) is the the most changed method in this
changelist, combinding both the old startHandshake logic, but
also the OpenSSLSocketImpl.accept code as well. Notable
differences from the old code:
* now responsible for SSL_new
* single code path for client/server handshaking dealing with SSLSession caching
* now handles server certificate requests previously in
OpenSSLServerSocketImpl, since a client can request to act
like a server and therefore need to be able to make suck
demands on its peer.
* supports turning off handshake_cutthrough at a callers request
via explicit call to startHandshake()
* certificate verification happens during an upcall from openssl
during SSL_do_handshake to verifyCertificateChain for both
client and server cases. previously there was not quite right
upcall support on the server side and post-handshake checking
on the client, which did not allow for a proper alert to be
sent to the peer informing them of the issue, which the RI and
SSLEngine code do.
* Similarly, setEnableSessionCreation(false) did not send an
alert to the peer as the RI and SSLEngine code in the client
case. In the server case, nothing was previously done.
* The use of local certificates was not determined from
introspecting the SSL struct post-handshake. This is now
partially implemented and will be completed in a later change.
- SSLSocket.{shutdownInput,shutdownOutput} are now restored to the
proper behavior of throwing UnsupportedOperationException.
- Gutted OpenSSLSocketImpl finalizer. The comment explains in
detail the trouble of having the finalizer do anything more than
touch its the instances own state due to unpredictable order of
finalization and the future possability of parallel
finalization.

x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java

SSLSession fixes
- Made OpenSSLSessionImpl.sessionContext non-final so it could be
nulled by SSLSession.invalidate to match RI behavior.
- As noted in AbstractSessionContext discussion, removed
OpenSSLSessionImpl constructor that took SSLParameters, instead
we take the possibly null localCertificates
directly. OpenSSLSessionImpl.getLocalCertificates now simply
returns the localCertificates member variable instead of
incorrectly trying to query the KeyManager for certificates that
may not have been used.
- OpenSSLSessionImpl now caches its native ID to avoid numerious
native calls but also now provides as resetId which will update
the cache when a delayed handshake happens due to the
handshake_cutthrough.patch
- Fixed bug in getPeerPrincipal that it wasn't calling
getPeerCertificates to initialize peerCertificates field.
- freeImpl is now 'public static' in preparation for move to NativeCrypto.

x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSessionImpl.java

The old SSLSessionImpl class that is still used for representing
the invalid session now returns
isValid => false
and
getProtocol => "NONE"
to match the RI.

x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLSessionImpl.java

NativeCrypto improvements
- Adding NativeCrypto.SSL_{get,set,clear}_mode similar to
NativeCrypto.SSL_{get,set,clear}_options along with
SSL_MODE_HANDSHAKE_CUTTHROUGH constant which is used to
explicitly disable/enable the Android handshake_cutthrough.patch
behavior.
- Added missing NativeCrypto.SSL_clear_options and used to properly
implement NativeCrypto.setEnabledProtocols.
- Added NativeCrypto.checkEnabledProtocols and
NativeCrypto.checkEnabledCipherSuites helpers to implement
exception compatability with the RI. While some of this code is
refactored from existing NativeCrypto code, it is now also used
by OpenSSLServerSocketImpl and OpenSSLSocketImpl which maintain
their own String[]s of what is enabled until startHandshake time. (see below)
- Changed NativeCrypto.findSuite to use foreach style loop for clarity.
- Moved OpenSSLServerSocketImpl nativesetclientauth and
SSL_VERIFY_* constants to NativeCrypto.SSL_set_verify
- Added NativeCrypto.SSL_set_session based on part of old OpenSSLSocketImpl.nativeconnect
- Added NativeCrypto.SSL_set_session_creation_enabled to properly implement
SSLSocket.setEnableSessionCreation(false) which uses new
external/openssl/patches/jsse.patch functionality.
- New NativeCrypto.SSL_do_handshake consolidates
OpenSSLSocketImpl.{nativeconnect, nativeaccept} while properly
implementing SSLSocket.setUseClientMode(false) for clients and
SSLSocket.setUseClientMode(true) for servers.
- New NativeCrypto.SSL_get_certificate is determine if local
certificate requested by peer. While functional, currently
NativeCrypto.SSL_new always sets a value via SSL_use_certificate
instead of relying on a callback set via SSL_CTX_set_client_cert_cb.
- Changed NativeCrypto.CertificateChainVerifier.verifyCertificateChain
to throw a checked CertificateException to match TrustManager.{checkServerTrusted,
checkClientTrusted}. It also takes an authMethod so avoid the need to call
the old OpenSSLSocketImpl.nativecipherauthenticationmethod.
- Added NativeCrypto.HandshakeCompletedCallback which has its
handshakeCompleted method called from OpenSSL when the now
delayed handshake_cutthrough.patch handshake is completed so
SSLSession caching can be delayed until a session ID is available
and to provide a better time for HandshakeCompletedListeners to
be notified.

x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/NativeCrypto.java
x-net/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

Some other changes specific to the naitve side of the code
- Added JNITRACE calls (enabled at compile time with JNI_TRACE)
for future debugging.
- throw SSLException subclass of IOException instead IOException
itself for better RI compatability
x-net/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp
- changed from old struct app_data to new class AppData at enh's request

Remove dubious usage of SSLParameters within AbstractSessionContext
to pass through to OpenSSLSessionImpl constructor for use in
calling getLocalCertificates for sessions created from a byte array
with AbstractSessionContext.toSession. Our
AbstractSessionContext.toBytes doesn't currently include the local
certificates in its output, so it cannot be expected to have in toSession.

x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/AbstractSessionContext.java
x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientSessionContext.java
x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerSessionContext.java
x-net/src/main/java/org/apache/harmony/xnet/provider/jsse/SSLParameters.java

Test maintenance

openssl 1.0.0 adds support for RFC 4507 session tickets which
remove the need for server side session state. These tests needed
to be updated for this new behavior. If IS_RI is true, they still
follow the old behavior.

luni/src/test/java/javax/net/ssl/SSLSessionContextTest.java
luni/src/test/java/javax/net/ssl/SSLSessionTest.java
luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Update KnownFailures and add specific comments at point of failure
about what remains to be fixed.

luni/src/test/java/javax/net/ssl/SSLSessionTest.java

Added tests to cover the use of standard cipher suite
names. Historically Android has used OpenSSL string constants for
cipher suite names, but JSSE actually specifies supported and
expected names.

luni/src/test/java/javax/net/ssl/SSLSocketFactoryTest.java
luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Create new support/src/test/java/javax/net/ssl with old Helper
support code pulled from javax.net.ssl tests:
SSLContextTest.Helper -> TestSSLContext
SSLSocketTest.Helper -> TestSSLSocketPair
SSLSessionTest.Helper -> TestSSLSessions
Also added new StandardNames here, which contains a collection of
expected constants for test validation.

luni/src/test/java/javax/net/ssl/SSLContextTest.java
luni/src/test/java/javax/net/ssl/SSLSocketTest.java
luni/src/test/java/javax/net/ssl/SSLSessionTest.java
support/src/test/java/javax/net/ssl/TestSSLContext.java
support/src/test/java/javax/net/ssl/TestSSLSocketPair.java
support/src/test/java/javax/net/ssl/TestSSLSessions.java
support/src/test/java/javax/net/ssl/StandardNames.java

Removed some now fixed KnownFailures and unneeded !IS_RI
code. Marked some [Un]KnownFailures where exceptions are thrown
and visible in the output but aren't correctly causing the test to
fail. Fixed assertNonNull to assertTrue in
test_SSLSocketTest_Test_create. Added
stress_test_SSLSocketTest_Test_create to track down test
flakiness, leading to rewrite of SSLSocket finalization.

luni/src/test/java/javax/net/ssl/SSLSocketTest.java

Reenable javax.net.ssl.AllTests now that it is does not hang

luni/src/test/java/tests/AllTests.java

Improve error messages while debugging overflow problem.
Added new assert when debugging new RFC 4507 behavior.
Removed KnownFailure annotation for now working test case.
x-net/src/test/java/tests/api/javax/net/ssl/SSLSessionTest.java

Client code changes

Now that startHandshake implies synchronous vs Android's default async handshake, remove unneeded explict calls to SSLSocket.startHandshake

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java

Removed IBM 1.4.x codepath that involved startHandshake

x-net/src/main/java/javax/net/ssl/DefaultHostnameVerifier.java

Unrelated

Remove unneed SSLSocket.setUseClientMode while removing unneeded SSLSocket.startHandshake

luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java

Removed warnings due to now missing modules in classpath

run-core-tests

Change-Id: I6e149ae259b3feccdfb0673209c85cfeb60befc8
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
4cb7f05dc68abb23ae54a5891c369062185f2210 04-May-2010 Elliott Hughes <enh@google.com> Remove an unused field and tidy up a test.

Change-Id: I23fdfe9b0470f8e1f1744660457542a999a13054
ava/net/MulticastSocket.java
4d8e9333e494ceedff074def3b6e44f523f3830e 03-May-2010 Elliott Hughes <enh@google.com> Fix MulticastSocket.setTTL.

Fixes two jtreg failures. I assumed the problem was with the native code, so I
simplified that until I'd convinced myself it was now correct. Then I found a
sign-extension bug in the Java side.

Change-Id: I398cecbe8e9245cb45c27f35eff3a0cd2995394e
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
385ee6370db97d951fdd9708ab85ba345bf68981 01-May-2010 repo sync <enh@google.com> resolved conflicts for merge of f3565212 to froyo-plus-aosp

Change-Id: I2c1dacb28eefd2c57f798dabc9fdc23b3b9ff0dc
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
60b01a5cdc0ee5c954a7027da8ba2ba0bddcd2f0 30-Apr-2010 Jesse Wilson <jessewilson@google.com> Merge "Adding public API for cookies." into dalvik-dev
d138a32a96aef19d6ae3bd7ead3fbfef1a5f8217 29-Apr-2010 Jesse Wilson <jessewilson@google.com> Adding public API for cookies.

We still need to wire this into the HTTP connection classes.
http://b/issue?id=1608781
ava/net/CookieManager.java
ava/net/CookiePolicy.java
ava/net/CookieStore.java
ava/net/CookieStoreImpl.java
ava/net/HttpCookie.java
21d030801384475a84f8dd67b18b8773f5eb652c 29-Apr-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing a few TreeMap bugs found by the latest Harmony tests." into dalvik-dev
2f2e06eeabb1c4b2064918f4aa041ba3a7fe7c67 29-Apr-2010 Jesse Wilson <jessewilson@google.com> Fixing a few TreeMap bugs found by the latest Harmony tests.
ava/util/TreeMap.java
286772eb30e454847a7000b001529fca9cb65e6d 28-Apr-2010 Jesse Wilson <jessewilson@google.com> Filling out implementations of java.util.

The new code comes straight from Harmony. None of the below classes
were divergent from Harmony so the change was quite straightforward.

The changes have been tested against Harmony's test suite and jtreg.
I haven't added any new tests to our suite, but I don't need to.
ava/util/Collections.java
ava/util/LinkedList.java
ava/util/TreeSet.java
33088caf672e6f3a3b8da66460f57c6433e491a8 28-Apr-2010 Elliott Hughes <enh@google.com> Remove almost all of the temporary allocations.

The main source of garbage when running the tests is now
OutputStream.write(int)'s creation of temporary single-byte byte arrays, but
no performance-conscious caller should be using that. In sensible cases, we
now produce very little garbage.

Change-Id: I13b5c8aef9a48c6aca33b039af2b13d5613a5f05
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
fe0dabac54c0bada280a15fb9b499a084b837e86 28-Apr-2010 Elliott Hughes <enh@google.com> Merge "Fix HttpURLConnection.setFixedLengthStreamingMode." into dalvik-dev
02f0cb2eb84a112fcf644d7d1fd0b5f94ea2f03b 28-Apr-2010 Elliott Hughes <enh@google.com> Fix HttpURLConnection.setFixedLengthStreamingMode.

Add better testing of chunked and fixed-length modes, and fix fixed-length mode
so it doesn't try to buffer all the output (which is the last thing you want
because the only point of that mode is to explicitly disable as much buffering
as possible).

Bug: http://code.google.com/p/android/issues/detail?id=3164
Change-Id: Ie0adc374b9c8093ab55211222cec0eeab0e27e96
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
cec4dd4b1d33f78997603d0f89c0d0e56e64dbcd 26-Apr-2010 Peter Hallam <peterhal@google.com> merge more modules into luni
ava/lang/annotation/Annotation.java
ava/lang/annotation/AnnotationFormatError.java
ava/lang/annotation/AnnotationTypeMismatchException.java
ava/lang/annotation/Documented.java
ava/lang/annotation/ElementType.java
ava/lang/annotation/IncompleteAnnotationException.java
ava/lang/annotation/Inherited.java
ava/lang/annotation/Retention.java
ava/lang/annotation/RetentionPolicy.java
ava/lang/annotation/Target.java
ava/lang/annotation/package.html
ava/math/BigDecimal.java
ava/math/BigInt.java
ava/math/BigInteger.java
ava/math/BitLevel.java
ava/math/Conversion.java
ava/math/Division.java
ava/math/Logical.java
ava/math/MathContext.java
ava/math/Multiplication.java
ava/math/Primality.java
ava/math/RoundingMode.java
ava/math/package.html
ava/nio/charset/CharacterCodingException.java
ava/nio/charset/Charset.java
ava/nio/charset/CharsetDecoder.java
ava/nio/charset/CharsetEncoder.java
ava/nio/charset/CoderMalfunctionError.java
ava/nio/charset/CoderResult.java
ava/nio/charset/CodingErrorAction.java
ava/nio/charset/IllegalCharsetNameException.java
ava/nio/charset/MalformedInputException.java
ava/nio/charset/UnmappableCharacterException.java
ava/nio/charset/UnsupportedCharsetException.java
ava/nio/charset/package.html
ava/nio/charset/spi/CharsetProvider.java
ava/nio/charset/spi/package.html
ava/security/AccessControlException.java
ava/security/AlgorithmParameterGenerator.java
ava/security/AlgorithmParameterGeneratorSpi.java
ava/security/AlgorithmParameters.java
ava/security/AlgorithmParametersSpi.java
ava/security/AllPermission.java
ava/security/AllPermissionCollection.java
ava/security/AuthProvider.java
ava/security/BasicPermission.java
ava/security/BasicPermissionCollection.java
ava/security/Certificate.java
ava/security/CodeSigner.java
ava/security/CodeSource.java
ava/security/DigestException.java
ava/security/DigestInputStream.java
ava/security/DigestOutputStream.java
ava/security/DomainCombiner.java
ava/security/GeneralSecurityException.java
ava/security/Guard.java
ava/security/GuardedObject.java
ava/security/Identity.java
ava/security/IdentityScope.java
ava/security/InvalidAlgorithmParameterException.java
ava/security/InvalidKeyException.java
ava/security/InvalidParameterException.java
ava/security/Key.java
ava/security/KeyException.java
ava/security/KeyFactory.java
ava/security/KeyFactorySpi.java
ava/security/KeyManagementException.java
ava/security/KeyPair.java
ava/security/KeyPairGenerator.java
ava/security/KeyPairGeneratorSpi.java
ava/security/KeyRep.java
ava/security/KeyStore.java
ava/security/KeyStoreException.java
ava/security/KeyStoreSpi.java
ava/security/MessageDigest.java
ava/security/MessageDigestSpi.java
ava/security/NoSuchAlgorithmException.java
ava/security/NoSuchProviderException.java
ava/security/Permission.java
ava/security/PermissionCollection.java
ava/security/Permissions.java
ava/security/PermissionsHash.java
ava/security/Policy.java
ava/security/Principal.java
ava/security/PrivateKey.java
ava/security/PrivilegedAction.java
ava/security/PrivilegedActionException.java
ava/security/PrivilegedExceptionAction.java
ava/security/ProtectionDomain.java
ava/security/Provider.java
ava/security/ProviderException.java
ava/security/PublicKey.java
ava/security/SecureClassLoader.java
ava/security/SecureRandom.java
ava/security/SecureRandomSpi.java
ava/security/Security.java
ava/security/SecurityPermission.java
ava/security/Signature.java
ava/security/SignatureException.java
ava/security/SignatureSpi.java
ava/security/SignedObject.java
ava/security/Signer.java
ava/security/Timestamp.java
ava/security/UnrecoverableEntryException.java
ava/security/UnrecoverableKeyException.java
ava/security/UnresolvedPermission.java
ava/security/UnresolvedPermissionCollection.java
ava/security/acl/Acl.java
ava/security/acl/AclEntry.java
ava/security/acl/AclNotFoundException.java
ava/security/acl/Group.java
ava/security/acl/LastOwnerException.java
ava/security/acl/NotOwnerException.java
ava/security/acl/Owner.java
ava/security/acl/Permission.java
ava/security/acl/package.html
ava/security/cert/CRL.java
ava/security/cert/CRLException.java
ava/security/cert/CRLSelector.java
ava/security/cert/CertPath.java
ava/security/cert/CertPathBuilder.java
ava/security/cert/CertPathBuilderException.java
ava/security/cert/CertPathBuilderResult.java
ava/security/cert/CertPathBuilderSpi.java
ava/security/cert/CertPathParameters.java
ava/security/cert/CertPathValidator.java
ava/security/cert/CertPathValidatorException.java
ava/security/cert/CertPathValidatorResult.java
ava/security/cert/CertPathValidatorSpi.java
ava/security/cert/CertSelector.java
ava/security/cert/CertStore.java
ava/security/cert/CertStoreException.java
ava/security/cert/CertStoreParameters.java
ava/security/cert/CertStoreSpi.java
ava/security/cert/Certificate.java
ava/security/cert/CertificateEncodingException.java
ava/security/cert/CertificateException.java
ava/security/cert/CertificateExpiredException.java
ava/security/cert/CertificateFactory.java
ava/security/cert/CertificateFactorySpi.java
ava/security/cert/CertificateNotYetValidException.java
ava/security/cert/CertificateParsingException.java
ava/security/cert/CollectionCertStoreParameters.java
ava/security/cert/LDAPCertStoreParameters.java
ava/security/cert/PKIXBuilderParameters.java
ava/security/cert/PKIXCertPathBuilderResult.java
ava/security/cert/PKIXCertPathChecker.java
ava/security/cert/PKIXCertPathValidatorResult.java
ava/security/cert/PKIXParameters.java
ava/security/cert/PolicyNode.java
ava/security/cert/PolicyQualifierInfo.java
ava/security/cert/TrustAnchor.java
ava/security/cert/X509CRL.java
ava/security/cert/X509CRLEntry.java
ava/security/cert/X509CRLSelector.java
ava/security/cert/X509CertSelector.java
ava/security/cert/X509Certificate.java
ava/security/cert/X509Extension.java
ava/security/cert/package.html
ava/security/interfaces/DSAKey.java
ava/security/interfaces/DSAKeyPairGenerator.java
ava/security/interfaces/DSAParams.java
ava/security/interfaces/DSAPrivateKey.java
ava/security/interfaces/DSAPublicKey.java
ava/security/interfaces/ECKey.java
ava/security/interfaces/ECPrivateKey.java
ava/security/interfaces/ECPublicKey.java
ava/security/interfaces/RSAKey.java
ava/security/interfaces/RSAMultiPrimePrivateCrtKey.java
ava/security/interfaces/RSAPrivateCrtKey.java
ava/security/interfaces/RSAPrivateKey.java
ava/security/interfaces/RSAPublicKey.java
ava/security/interfaces/package.html
ava/security/package.html
ava/security/security.properties
ava/security/spec/AlgorithmParameterSpec.java
ava/security/spec/DSAParameterSpec.java
ava/security/spec/DSAPrivateKeySpec.java
ava/security/spec/DSAPublicKeySpec.java
ava/security/spec/ECField.java
ava/security/spec/ECFieldF2m.java
ava/security/spec/ECFieldFp.java
ava/security/spec/ECGenParameterSpec.java
ava/security/spec/ECParameterSpec.java
ava/security/spec/ECPoint.java
ava/security/spec/ECPrivateKeySpec.java
ava/security/spec/ECPublicKeySpec.java
ava/security/spec/EllipticCurve.java
ava/security/spec/EncodedKeySpec.java
ava/security/spec/InvalidKeySpecException.java
ava/security/spec/InvalidParameterSpecException.java
ava/security/spec/KeySpec.java
ava/security/spec/MGF1ParameterSpec.java
ava/security/spec/PKCS8EncodedKeySpec.java
ava/security/spec/PSSParameterSpec.java
ava/security/spec/RSAKeyGenParameterSpec.java
ava/security/spec/RSAMultiPrimePrivateCrtKeySpec.java
ava/security/spec/RSAOtherPrimeInfo.java
ava/security/spec/RSAPrivateCrtKeySpec.java
ava/security/spec/RSAPrivateKeySpec.java
ava/security/spec/RSAPublicKeySpec.java
ava/security/spec/X509EncodedKeySpec.java
ava/security/spec/package.html
ava/sql/Array.java
ava/sql/BatchUpdateException.java
ava/sql/Blob.java
ava/sql/CallableStatement.java
ava/sql/Clob.java
ava/sql/Connection.java
ava/sql/DataTruncation.java
ava/sql/DatabaseMetaData.java
ava/sql/Date.java
ava/sql/Driver.java
ava/sql/DriverManager.java
ava/sql/DriverPropertyInfo.java
ava/sql/ParameterMetaData.java
ava/sql/PreparedStatement.java
ava/sql/Ref.java
ava/sql/ResultSet.java
ava/sql/ResultSetMetaData.java
ava/sql/SQLData.java
ava/sql/SQLException.java
ava/sql/SQLInput.java
ava/sql/SQLOutput.java
ava/sql/SQLPermission.java
ava/sql/SQLWarning.java
ava/sql/Savepoint.java
ava/sql/Statement.java
ava/sql/Struct.java
ava/sql/Time.java
ava/sql/Timestamp.java
ava/sql/Types.java
ava/sql/package.html
ava/text/Annotation.java
ava/text/AttributedCharacterIterator.java
ava/text/AttributedString.java
ava/text/Bidi.java
ava/text/BreakIterator.java
ava/text/CharacterIterator.java
ava/text/ChoiceFormat.java
ava/text/CollationElementIterator.java
ava/text/CollationKey.java
ava/text/Collator.java
ava/text/DateFormat.java
ava/text/DateFormatSymbols.java
ava/text/DecimalFormat.java
ava/text/DecimalFormatSymbols.java
ava/text/FieldPosition.java
ava/text/Format.java
ava/text/MessageFormat.java
ava/text/Normalizer.java
ava/text/NumberFormat.java
ava/text/ParseException.java
ava/text/ParsePosition.java
ava/text/RuleBasedBreakIterator.java
ava/text/RuleBasedCollator.java
ava/text/SimpleDateFormat.java
ava/text/StringCharacterIterator.java
ava/text/package.html
ava/text/spi/BreakIteratorProvider.java
ava/text/spi/CollatorProvider.java
ava/text/spi/DateFormatProvider.java
ava/text/spi/DateFormatSymbolsProvider.java
ava/text/spi/DecimalFormatSymbolsProvider.java
ava/text/spi/NumberFormatProvider.java
ava/util/concurrent/AbstractExecutorService.java
ava/util/concurrent/ArrayBlockingQueue.java
ava/util/concurrent/BlockingDeque.java
ava/util/concurrent/BlockingQueue.java
ava/util/concurrent/BrokenBarrierException.java
ava/util/concurrent/Callable.java
ava/util/concurrent/CancellationException.java
ava/util/concurrent/CompletionService.java
ava/util/concurrent/ConcurrentHashMap.java
ava/util/concurrent/ConcurrentLinkedDeque.java
ava/util/concurrent/ConcurrentLinkedQueue.java
ava/util/concurrent/ConcurrentMap.java
ava/util/concurrent/ConcurrentNavigableMap.java
ava/util/concurrent/ConcurrentSkipListMap.java
ava/util/concurrent/ConcurrentSkipListSet.java
ava/util/concurrent/CopyOnWriteArrayList.java
ava/util/concurrent/CopyOnWriteArraySet.java
ava/util/concurrent/CountDownLatch.java
ava/util/concurrent/CyclicBarrier.java
ava/util/concurrent/DelayQueue.java
ava/util/concurrent/Delayed.java
ava/util/concurrent/Exchanger.java
ava/util/concurrent/ExecutionException.java
ava/util/concurrent/Executor.java
ava/util/concurrent/ExecutorCompletionService.java
ava/util/concurrent/ExecutorService.java
ava/util/concurrent/Executors.java
ava/util/concurrent/Future.java
ava/util/concurrent/FutureTask.java
ava/util/concurrent/LinkedBlockingDeque.java
ava/util/concurrent/LinkedBlockingQueue.java
ava/util/concurrent/PriorityBlockingQueue.java
ava/util/concurrent/RejectedExecutionException.java
ava/util/concurrent/RejectedExecutionHandler.java
ava/util/concurrent/RunnableFuture.java
ava/util/concurrent/RunnableScheduledFuture.java
ava/util/concurrent/ScheduledExecutorService.java
ava/util/concurrent/ScheduledFuture.java
ava/util/concurrent/ScheduledThreadPoolExecutor.java
ava/util/concurrent/Semaphore.java
ava/util/concurrent/SynchronousQueue.java
ava/util/concurrent/ThreadFactory.java
ava/util/concurrent/ThreadPoolExecutor.java
ava/util/concurrent/TimeUnit.java
ava/util/concurrent/TimeoutException.java
ava/util/concurrent/atomic/AtomicBoolean.java
ava/util/concurrent/atomic/AtomicInteger.java
ava/util/concurrent/atomic/AtomicIntegerArray.java
ava/util/concurrent/atomic/AtomicIntegerFieldUpdater.java
ava/util/concurrent/atomic/AtomicLong.java
ava/util/concurrent/atomic/AtomicLongArray.java
ava/util/concurrent/atomic/AtomicLongFieldUpdater.java
ava/util/concurrent/atomic/AtomicMarkableReference.java
ava/util/concurrent/atomic/AtomicReference.java
ava/util/concurrent/atomic/AtomicReferenceArray.java
ava/util/concurrent/atomic/AtomicReferenceFieldUpdater.java
ava/util/concurrent/atomic/AtomicStampedReference.java
ava/util/concurrent/atomic/UnsafeAccess.java
ava/util/concurrent/atomic/package-info.java
ava/util/concurrent/locks/AbstractOwnableSynchronizer.java
ava/util/concurrent/locks/AbstractQueuedLongSynchronizer.java
ava/util/concurrent/locks/AbstractQueuedSynchronizer.java
ava/util/concurrent/locks/Condition.java
ava/util/concurrent/locks/Lock.java
ava/util/concurrent/locks/LockSupport.java
ava/util/concurrent/locks/ReadWriteLock.java
ava/util/concurrent/locks/ReentrantLock.java
ava/util/concurrent/locks/ReentrantReadWriteLock.java
ava/util/concurrent/locks/UnsafeAccess.java
ava/util/concurrent/locks/package-info.java
ava/util/concurrent/package-info.java
ava/util/jar/Attributes.java
ava/util/jar/InitManifest.java
ava/util/jar/JarEntry.java
ava/util/jar/JarException.java
ava/util/jar/JarFile.java
ava/util/jar/JarInputStream.java
ava/util/jar/JarOutputStream.java
ava/util/jar/JarVerifier.java
ava/util/jar/Manifest.java
ava/util/jar/Pack200.java
ava/util/jar/package.html
ava/util/logging/ConsoleHandler.java
ava/util/logging/ErrorManager.java
ava/util/logging/FileHandler.java
ava/util/logging/Filter.java
ava/util/logging/Formatter.java
ava/util/logging/Handler.java
ava/util/logging/Level.java
ava/util/logging/LogManager.java
ava/util/logging/LogRecord.java
ava/util/logging/Logger.java
ava/util/logging/LoggingMXBean.java
ava/util/logging/LoggingPermission.java
ava/util/logging/MemoryHandler.java
ava/util/logging/SimpleFormatter.java
ava/util/logging/SocketHandler.java
ava/util/logging/StreamHandler.java
ava/util/logging/XMLFormatter.java
ava/util/logging/logging.properties
ava/util/logging/package.html
ava/util/regex/MatchResult.java
ava/util/regex/MatchResultImpl.java
ava/util/regex/Matcher.java
ava/util/regex/Pattern.java
ava/util/regex/PatternSyntaxException.java
ava/util/regex/Splitter.java
ava/util/regex/package.html
ava/util/zip/Adler32.java
ava/util/zip/CRC32.java
ava/util/zip/CheckedInputStream.java
ava/util/zip/CheckedOutputStream.java
ava/util/zip/Checksum.java
ava/util/zip/DataFormatException.java
ava/util/zip/Deflater.java
ava/util/zip/DeflaterInputStream.java
ava/util/zip/DeflaterOutputStream.java
ava/util/zip/GZIPInputStream.java
ava/util/zip/GZIPOutputStream.java
ava/util/zip/Inflater.java
ava/util/zip/InflaterInputStream.java
ava/util/zip/InflaterOutputStream.java
ava/util/zip/ZipConstants.java
ava/util/zip/ZipEntry.java
ava/util/zip/ZipError.java
ava/util/zip/ZipException.java
ava/util/zip/ZipFile.java
ava/util/zip/ZipInputStream.java
ava/util/zip/ZipOutputStream.java
ava/util/zip/package.html
avax/crypto/BadPaddingException.java
avax/crypto/Cipher.java
avax/crypto/CipherInputStream.java
avax/crypto/CipherOutputStream.java
avax/crypto/CipherSpi.java
avax/crypto/EncryptedPrivateKeyInfo.java
avax/crypto/ExemptionMechanism.java
avax/crypto/ExemptionMechanismException.java
avax/crypto/ExemptionMechanismSpi.java
avax/crypto/IllegalBlockSizeException.java
avax/crypto/KeyAgreement.java
avax/crypto/KeyAgreementSpi.java
avax/crypto/KeyGenerator.java
avax/crypto/KeyGeneratorSpi.java
avax/crypto/Mac.java
avax/crypto/MacSpi.java
avax/crypto/NoSuchPaddingException.java
avax/crypto/NullCipher.java
avax/crypto/SealedObject.java
avax/crypto/SecretKey.java
avax/crypto/SecretKeyFactory.java
avax/crypto/SecretKeyFactorySpi.java
avax/crypto/ShortBufferException.java
avax/crypto/interfaces/DHKey.java
avax/crypto/interfaces/DHPrivateKey.java
avax/crypto/interfaces/DHPublicKey.java
avax/crypto/interfaces/PBEKey.java
avax/crypto/interfaces/package.html
avax/crypto/package.html
avax/crypto/spec/DESKeySpec.java
avax/crypto/spec/DESedeKeySpec.java
avax/crypto/spec/DHGenParameterSpec.java
avax/crypto/spec/DHParameterSpec.java
avax/crypto/spec/DHPrivateKeySpec.java
avax/crypto/spec/DHPublicKeySpec.java
avax/crypto/spec/IvParameterSpec.java
avax/crypto/spec/OAEPParameterSpec.java
avax/crypto/spec/PBEKeySpec.java
avax/crypto/spec/PBEParameterSpec.java
avax/crypto/spec/PSource.java
avax/crypto/spec/RC2ParameterSpec.java
avax/crypto/spec/RC5ParameterSpec.java
avax/crypto/spec/SecretKeySpec.java
avax/crypto/spec/package.html
avax/security/auth/AuthPermission.java
avax/security/auth/DestroyFailedException.java
avax/security/auth/Destroyable.java
avax/security/auth/PrivateCredentialPermission.java
avax/security/auth/Subject.java
avax/security/auth/SubjectDomainCombiner.java
avax/security/auth/callback/Callback.java
avax/security/auth/callback/CallbackHandler.java
avax/security/auth/callback/PasswordCallback.java
avax/security/auth/callback/UnsupportedCallbackException.java
avax/security/auth/callback/package.html
avax/security/auth/login/LoginException.java
avax/security/auth/login/package.html
avax/security/auth/package.html
avax/security/auth/x500/X500Principal.java
avax/security/auth/x500/package.html
avax/security/cert/Certificate.java
avax/security/cert/CertificateEncodingException.java
avax/security/cert/CertificateException.java
avax/security/cert/CertificateExpiredException.java
avax/security/cert/CertificateNotYetValidException.java
avax/security/cert/CertificateParsingException.java
avax/security/cert/X509Certificate.java
avax/security/cert/package.html
avax/sql/ConnectionEvent.java
avax/sql/ConnectionEventListener.java
avax/sql/ConnectionPoolDataSource.java
avax/sql/DataSource.java
avax/sql/PooledConnection.java
avax/sql/RowSet.java
avax/sql/RowSetEvent.java
avax/sql/RowSetInternal.java
avax/sql/RowSetListener.java
avax/sql/RowSetMetaData.java
avax/sql/RowSetReader.java
avax/sql/RowSetWriter.java
avax/sql/package.html
rg/apache/harmony/archive/internal/nls/Messages.java
rg/apache/harmony/archive/internal/nls/messages.properties
rg/apache/harmony/archive/util/Util.java
rg/apache/harmony/auth/internal/nls/Messages.java
rg/apache/harmony/auth/internal/nls/messages.properties
rg/apache/harmony/crypto/internal/NullCipherSpi.java
rg/apache/harmony/crypto/internal/nls/Messages.java
rg/apache/harmony/crypto/internal/nls/messages.properties
rg/apache/harmony/security/DefaultPolicyScanner.java
rg/apache/harmony/security/PolicyEntry.java
rg/apache/harmony/security/PrivateKeyImpl.java
rg/apache/harmony/security/PublicKeyImpl.java
rg/apache/harmony/security/SystemScope.java
rg/apache/harmony/security/UnresolvedPrincipal.java
rg/apache/harmony/security/Util.java
rg/apache/harmony/security/asn1/ASN1Any.java
rg/apache/harmony/security/asn1/ASN1BitString.java
rg/apache/harmony/security/asn1/ASN1Boolean.java
rg/apache/harmony/security/asn1/ASN1Choice.java
rg/apache/harmony/security/asn1/ASN1Constants.java
rg/apache/harmony/security/asn1/ASN1Constructured.java
rg/apache/harmony/security/asn1/ASN1Enumerated.java
rg/apache/harmony/security/asn1/ASN1Exception.java
rg/apache/harmony/security/asn1/ASN1Explicit.java
rg/apache/harmony/security/asn1/ASN1GeneralizedTime.java
rg/apache/harmony/security/asn1/ASN1Implicit.java
rg/apache/harmony/security/asn1/ASN1Integer.java
rg/apache/harmony/security/asn1/ASN1OctetString.java
rg/apache/harmony/security/asn1/ASN1Oid.java
rg/apache/harmony/security/asn1/ASN1OpenType.java
rg/apache/harmony/security/asn1/ASN1Primitive.java
rg/apache/harmony/security/asn1/ASN1Sequence.java
rg/apache/harmony/security/asn1/ASN1SequenceOf.java
rg/apache/harmony/security/asn1/ASN1Set.java
rg/apache/harmony/security/asn1/ASN1SetOf.java
rg/apache/harmony/security/asn1/ASN1StringType.java
rg/apache/harmony/security/asn1/ASN1Time.java
rg/apache/harmony/security/asn1/ASN1Type.java
rg/apache/harmony/security/asn1/ASN1TypeCollection.java
rg/apache/harmony/security/asn1/ASN1UTCTime.java
rg/apache/harmony/security/asn1/ASN1ValueCollection.java
rg/apache/harmony/security/asn1/BerInputStream.java
rg/apache/harmony/security/asn1/BerOutputStream.java
rg/apache/harmony/security/asn1/BitString.java
rg/apache/harmony/security/asn1/DerInputStream.java
rg/apache/harmony/security/asn1/DerOutputStream.java
rg/apache/harmony/security/asn1/InformationObjectSet.java
rg/apache/harmony/security/asn1/ObjectIdentifier.java
rg/apache/harmony/security/fortress/DefaultPolicy.java
rg/apache/harmony/security/fortress/DefaultPolicyParser.java
rg/apache/harmony/security/fortress/Engine.java
rg/apache/harmony/security/fortress/PolicyUtils.java
rg/apache/harmony/security/fortress/SecurityAccess.java
rg/apache/harmony/security/fortress/SecurityUtils.java
rg/apache/harmony/security/fortress/Services.java
rg/apache/harmony/security/internal/nls/Messages.java
rg/apache/harmony/security/internal/nls/messages.properties
rg/apache/harmony/security/pkcs10/CertificationRequest.java
rg/apache/harmony/security/pkcs10/CertificationRequestInfo.java
rg/apache/harmony/security/pkcs7/AuthenticatedAttributes.java
rg/apache/harmony/security/pkcs7/ContentInfo.java
rg/apache/harmony/security/pkcs7/SignedData.java
rg/apache/harmony/security/pkcs7/SignerInfo.java
rg/apache/harmony/security/pkcs8/PrivateKeyInfo.java
rg/apache/harmony/security/provider/cert/Cache.java
rg/apache/harmony/security/provider/cert/DRLCertFactory.java
rg/apache/harmony/security/provider/cert/X509CRLEntryImpl.java
rg/apache/harmony/security/provider/cert/X509CRLImpl.java
rg/apache/harmony/security/provider/cert/X509CertFactoryImpl.java
rg/apache/harmony/security/provider/cert/X509CertImpl.java
rg/apache/harmony/security/provider/cert/X509CertPathImpl.java
rg/apache/harmony/security/provider/crypto/CryptoProvider.java
rg/apache/harmony/security/provider/crypto/DSAKeyFactoryImpl.java
rg/apache/harmony/security/provider/crypto/DSAPrivateKeyImpl.java
rg/apache/harmony/security/provider/crypto/DSAPublicKeyImpl.java
rg/apache/harmony/security/provider/crypto/RandomBitsSupplier.java
rg/apache/harmony/security/provider/crypto/SHA1Impl.java
rg/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
rg/apache/harmony/security/provider/crypto/SHA1_Data.java
rg/apache/harmony/security/provider/crypto/SHA1_MessageDigestImpl.java
rg/apache/harmony/security/provider/crypto/SHA1withDSA_SignatureImpl.java
rg/apache/harmony/security/provider/crypto/ThreeIntegerSequence.java
rg/apache/harmony/security/utils/AlgNameMapper.java
rg/apache/harmony/security/utils/Array.java
rg/apache/harmony/security/utils/JarUtils.java
rg/apache/harmony/security/utils/ObjectIdentifier.java
rg/apache/harmony/security/x501/AttributeType.java
rg/apache/harmony/security/x501/AttributeTypeAndValue.java
rg/apache/harmony/security/x501/AttributeTypeAndValueComparator.java
rg/apache/harmony/security/x501/AttributeValue.java
rg/apache/harmony/security/x501/Attributes.java
rg/apache/harmony/security/x501/DirectoryString.java
rg/apache/harmony/security/x501/Name.java
rg/apache/harmony/security/x509/AccessDescription.java
rg/apache/harmony/security/x509/AlgorithmIdentifier.java
rg/apache/harmony/security/x509/AlternativeName.java
rg/apache/harmony/security/x509/AuthorityKeyIdentifier.java
rg/apache/harmony/security/x509/BasicConstraints.java
rg/apache/harmony/security/x509/CRLDistributionPoints.java
rg/apache/harmony/security/x509/CRLNumber.java
rg/apache/harmony/security/x509/Certificate.java
rg/apache/harmony/security/x509/CertificateIssuer.java
rg/apache/harmony/security/x509/CertificateList.java
rg/apache/harmony/security/x509/CertificatePolicies.java
rg/apache/harmony/security/x509/DNParser.java
rg/apache/harmony/security/x509/DistributionPoint.java
rg/apache/harmony/security/x509/DistributionPointName.java
rg/apache/harmony/security/x509/EDIPartyName.java
rg/apache/harmony/security/x509/ExtendedKeyUsage.java
rg/apache/harmony/security/x509/Extension.java
rg/apache/harmony/security/x509/ExtensionValue.java
rg/apache/harmony/security/x509/Extensions.java
rg/apache/harmony/security/x509/GeneralName.java
rg/apache/harmony/security/x509/GeneralNames.java
rg/apache/harmony/security/x509/GeneralSubtree.java
rg/apache/harmony/security/x509/GeneralSubtrees.java
rg/apache/harmony/security/x509/InfoAccessSyntax.java
rg/apache/harmony/security/x509/InhibitAnyPolicy.java
rg/apache/harmony/security/x509/InvalidityDate.java
rg/apache/harmony/security/x509/IssuingDistributionPoint.java
rg/apache/harmony/security/x509/KeyUsage.java
rg/apache/harmony/security/x509/NameConstraints.java
rg/apache/harmony/security/x509/ORAddress.java
rg/apache/harmony/security/x509/OtherName.java
rg/apache/harmony/security/x509/PolicyConstraints.java
rg/apache/harmony/security/x509/PolicyInformation.java
rg/apache/harmony/security/x509/PolicyQualifierInfo.java
rg/apache/harmony/security/x509/PrivateKeyUsagePeriod.java
rg/apache/harmony/security/x509/ReasonCode.java
rg/apache/harmony/security/x509/ReasonFlags.java
rg/apache/harmony/security/x509/SubjectKeyIdentifier.java
rg/apache/harmony/security/x509/SubjectPublicKeyInfo.java
rg/apache/harmony/security/x509/TBSCertList.java
rg/apache/harmony/security/x509/TBSCertificate.java
rg/apache/harmony/security/x509/Time.java
rg/apache/harmony/security/x509/Utils.java
rg/apache/harmony/security/x509/Validity.java
rg/apache/harmony/security/x509/X509PublicKey.java
rg/apache/harmony/security/x509/tsp/MessageImprint.java
rg/apache/harmony/security/x509/tsp/PKIFailureInfo.java
rg/apache/harmony/security/x509/tsp/PKIStatus.java
rg/apache/harmony/security/x509/tsp/PKIStatusInfo.java
rg/apache/harmony/security/x509/tsp/TSTInfo.java
rg/apache/harmony/security/x509/tsp/TimeStampReq.java
rg/apache/harmony/security/x509/tsp/TimeStampResp.java
rg/apache/harmony/text/BidiRun.java
rg/apache/harmony/text/BidiWrapper.java
rg/bouncycastle/asn1/ASN1Choice.java
rg/bouncycastle/asn1/ASN1Collection.java
rg/bouncycastle/asn1/ASN1Encodable.java
rg/bouncycastle/asn1/ASN1EncodableVector.java
rg/bouncycastle/asn1/ASN1InputStream.java
rg/bouncycastle/asn1/ASN1Null.java
rg/bouncycastle/asn1/ASN1OctetString.java
rg/bouncycastle/asn1/ASN1OutputStream.java
rg/bouncycastle/asn1/ASN1Sequence.java
rg/bouncycastle/asn1/ASN1Set.java
rg/bouncycastle/asn1/ASN1TaggedObject.java
rg/bouncycastle/asn1/BERConstructedOctetString.java
rg/bouncycastle/asn1/BERConstructedSequence.java
rg/bouncycastle/asn1/BERInputStream.java
rg/bouncycastle/asn1/BERNull.java
rg/bouncycastle/asn1/BEROutputStream.java
rg/bouncycastle/asn1/BERSequence.java
rg/bouncycastle/asn1/BERSet.java
rg/bouncycastle/asn1/BERTaggedObject.java
rg/bouncycastle/asn1/DERApplicationSpecific.java
rg/bouncycastle/asn1/DERBMPString.java
rg/bouncycastle/asn1/DERBitString.java
rg/bouncycastle/asn1/DERBoolean.java
rg/bouncycastle/asn1/DERConstructedSequence.java
rg/bouncycastle/asn1/DERConstructedSet.java
rg/bouncycastle/asn1/DEREncodable.java
rg/bouncycastle/asn1/DEREncodableVector.java
rg/bouncycastle/asn1/DEREnumerated.java
rg/bouncycastle/asn1/DERGeneralString.java
rg/bouncycastle/asn1/DERGeneralizedTime.java
rg/bouncycastle/asn1/DERIA5String.java
rg/bouncycastle/asn1/DERInputStream.java
rg/bouncycastle/asn1/DERInteger.java
rg/bouncycastle/asn1/DERNull.java
rg/bouncycastle/asn1/DERNumericString.java
rg/bouncycastle/asn1/DERObject.java
rg/bouncycastle/asn1/DERObjectIdentifier.java
rg/bouncycastle/asn1/DEROctetString.java
rg/bouncycastle/asn1/DEROutputStream.java
rg/bouncycastle/asn1/DERPrintableString.java
rg/bouncycastle/asn1/DERSequence.java
rg/bouncycastle/asn1/DERSet.java
rg/bouncycastle/asn1/DERString.java
rg/bouncycastle/asn1/DERT61String.java
rg/bouncycastle/asn1/DERTaggedObject.java
rg/bouncycastle/asn1/DERTags.java
rg/bouncycastle/asn1/DERUTCTime.java
rg/bouncycastle/asn1/DERUTF8String.java
rg/bouncycastle/asn1/DERUniversalString.java
rg/bouncycastle/asn1/DERUnknownTag.java
rg/bouncycastle/asn1/DERVisibleString.java
rg/bouncycastle/asn1/OIDTokenizer.java
rg/bouncycastle/asn1/OrderedTable.java
rg/bouncycastle/asn1/cmp/PKIFailureInfo.java
rg/bouncycastle/asn1/cmp/PKIFreeText.java
rg/bouncycastle/asn1/cmp/PKIStatus.java
rg/bouncycastle/asn1/cmp/PKIStatusInfo.java
rg/bouncycastle/asn1/cms/Attribute.java
rg/bouncycastle/asn1/cms/AttributeTable.java
rg/bouncycastle/asn1/cms/CMSAttributes.java
rg/bouncycastle/asn1/cms/CMSObjectIdentifiers.java
rg/bouncycastle/asn1/cms/CompressedData.java
rg/bouncycastle/asn1/cms/ContentInfo.java
rg/bouncycastle/asn1/cms/EncryptedContentInfo.java
rg/bouncycastle/asn1/cms/EnvelopedData.java
rg/bouncycastle/asn1/cms/IssuerAndSerialNumber.java
rg/bouncycastle/asn1/cms/KEKIdentifier.java
rg/bouncycastle/asn1/cms/KEKRecipientInfo.java
rg/bouncycastle/asn1/cms/KeyAgreeRecipientInfo.java
rg/bouncycastle/asn1/cms/KeyTransRecipientInfo.java
rg/bouncycastle/asn1/cms/OriginatorIdentifierOrKey.java
rg/bouncycastle/asn1/cms/OriginatorInfo.java
rg/bouncycastle/asn1/cms/OriginatorPublicKey.java
rg/bouncycastle/asn1/cms/OtherKeyAttribute.java
rg/bouncycastle/asn1/cms/OtherRecipientInfo.java
rg/bouncycastle/asn1/cms/PasswordRecipientInfo.java
rg/bouncycastle/asn1/cms/RecipientIdentifier.java
rg/bouncycastle/asn1/cms/RecipientInfo.java
rg/bouncycastle/asn1/cms/RecipientKeyIdentifier.java
rg/bouncycastle/asn1/cms/SignedData.java
rg/bouncycastle/asn1/cms/SignerIdentifier.java
rg/bouncycastle/asn1/cms/SignerInfo.java
rg/bouncycastle/asn1/cms/Time.java
rg/bouncycastle/asn1/cryptopro/CryptoProObjectIdentifiers.java
rg/bouncycastle/asn1/esf/CommitmentTypeIdentifier.java
rg/bouncycastle/asn1/esf/CommitmentTypeIndication.java
rg/bouncycastle/asn1/esf/CommitmentTypeQualifier.java
rg/bouncycastle/asn1/esf/ESFAttributes.java
rg/bouncycastle/asn1/esf/SignerLocation.java
rg/bouncycastle/asn1/ess/ContentIdentifier.java
rg/bouncycastle/asn1/ess/ESSCertID.java
rg/bouncycastle/asn1/ess/OtherCertID.java
rg/bouncycastle/asn1/ess/OtherSigningCertificate.java
rg/bouncycastle/asn1/ess/SigningCertificate.java
rg/bouncycastle/asn1/gnu/GNUObjectIdentifiers.java
rg/bouncycastle/asn1/iana/IANAObjectIdentifiers.java
rg/bouncycastle/asn1/icao/DataGroupHash.java
rg/bouncycastle/asn1/icao/ICAOObjectIdentifiers.java
rg/bouncycastle/asn1/icao/LDSSecurityObject.java
rg/bouncycastle/asn1/misc/IDEACBCPar.java
rg/bouncycastle/asn1/misc/MiscObjectIdentifiers.java
rg/bouncycastle/asn1/misc/NetscapeCertType.java
rg/bouncycastle/asn1/misc/NetscapeRevocationURL.java
rg/bouncycastle/asn1/misc/VerisignCzagExtension.java
rg/bouncycastle/asn1/mozilla/PublicKeyAndChallenge.java
rg/bouncycastle/asn1/nist/NISTObjectIdentifiers.java
rg/bouncycastle/asn1/ocsp/BasicOCSPResponse.java
rg/bouncycastle/asn1/ocsp/CertID.java
rg/bouncycastle/asn1/ocsp/CertStatus.java
rg/bouncycastle/asn1/ocsp/CrlID.java
rg/bouncycastle/asn1/ocsp/OCSPObjectIdentifiers.java
rg/bouncycastle/asn1/ocsp/OCSPRequest.java
rg/bouncycastle/asn1/ocsp/OCSPResponse.java
rg/bouncycastle/asn1/ocsp/OCSPResponseStatus.java
rg/bouncycastle/asn1/ocsp/Request.java
rg/bouncycastle/asn1/ocsp/ResponderID.java
rg/bouncycastle/asn1/ocsp/ResponseBytes.java
rg/bouncycastle/asn1/ocsp/ResponseData.java
rg/bouncycastle/asn1/ocsp/RevokedInfo.java
rg/bouncycastle/asn1/ocsp/ServiceLocator.java
rg/bouncycastle/asn1/ocsp/Signature.java
rg/bouncycastle/asn1/ocsp/SingleResponse.java
rg/bouncycastle/asn1/ocsp/TBSRequest.java
rg/bouncycastle/asn1/oiw/OIWObjectIdentifiers.java
rg/bouncycastle/asn1/pkcs/Attribute.java
rg/bouncycastle/asn1/pkcs/AuthenticatedSafe.java
rg/bouncycastle/asn1/pkcs/CertBag.java
rg/bouncycastle/asn1/pkcs/CertificationRequest.java
rg/bouncycastle/asn1/pkcs/CertificationRequestInfo.java
rg/bouncycastle/asn1/pkcs/ContentInfo.java
rg/bouncycastle/asn1/pkcs/DHParameter.java
rg/bouncycastle/asn1/pkcs/EncryptedData.java
rg/bouncycastle/asn1/pkcs/EncryptedPrivateKeyInfo.java
rg/bouncycastle/asn1/pkcs/EncryptionScheme.java
rg/bouncycastle/asn1/pkcs/IssuerAndSerialNumber.java
rg/bouncycastle/asn1/pkcs/KeyDerivationFunc.java
rg/bouncycastle/asn1/pkcs/MacData.java
rg/bouncycastle/asn1/pkcs/PBES2Algorithms.java
rg/bouncycastle/asn1/pkcs/PBES2Parameters.java
rg/bouncycastle/asn1/pkcs/PBKDF2Params.java
rg/bouncycastle/asn1/pkcs/PKCS12PBEParams.java
rg/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers.java
rg/bouncycastle/asn1/pkcs/Pfx.java
rg/bouncycastle/asn1/pkcs/PrivateKeyInfo.java
rg/bouncycastle/asn1/pkcs/RC2CBCParameter.java
rg/bouncycastle/asn1/pkcs/RSAESOAEPparams.java
rg/bouncycastle/asn1/pkcs/RSAPrivateKeyStructure.java
rg/bouncycastle/asn1/pkcs/RSASSAPSSparams.java
rg/bouncycastle/asn1/pkcs/SafeBag.java
rg/bouncycastle/asn1/pkcs/SignedData.java
rg/bouncycastle/asn1/pkcs/SignerInfo.java
rg/bouncycastle/asn1/teletrust/TeleTrusTObjectIdentifiers.java
rg/bouncycastle/asn1/tsp/Accuracy.java
rg/bouncycastle/asn1/tsp/MessageImprint.java
rg/bouncycastle/asn1/tsp/TSTInfo.java
rg/bouncycastle/asn1/tsp/TimeStampReq.java
rg/bouncycastle/asn1/tsp/TimeStampResp.java
rg/bouncycastle/asn1/util/ASN1Dump.java
rg/bouncycastle/asn1/util/DERDump.java
rg/bouncycastle/asn1/util/Dump.java
rg/bouncycastle/asn1/x509/AccessDescription.java
rg/bouncycastle/asn1/x509/AlgorithmIdentifier.java
rg/bouncycastle/asn1/x509/AttCertIssuer.java
rg/bouncycastle/asn1/x509/AttCertValidityPeriod.java
rg/bouncycastle/asn1/x509/Attribute.java
rg/bouncycastle/asn1/x509/AttributeCertificate.java
rg/bouncycastle/asn1/x509/AttributeCertificateInfo.java
rg/bouncycastle/asn1/x509/AuthorityInformationAccess.java
rg/bouncycastle/asn1/x509/AuthorityKeyIdentifier.java
rg/bouncycastle/asn1/x509/BasicConstraints.java
rg/bouncycastle/asn1/x509/CRLDistPoint.java
rg/bouncycastle/asn1/x509/CRLNumber.java
rg/bouncycastle/asn1/x509/CRLReason.java
rg/bouncycastle/asn1/x509/CertPolicyId.java
rg/bouncycastle/asn1/x509/CertificateList.java
rg/bouncycastle/asn1/x509/CertificatePolicies.java
rg/bouncycastle/asn1/x509/DSAParameter.java
rg/bouncycastle/asn1/x509/DigestInfo.java
rg/bouncycastle/asn1/x509/DisplayText.java
rg/bouncycastle/asn1/x509/DistributionPoint.java
rg/bouncycastle/asn1/x509/DistributionPointName.java
rg/bouncycastle/asn1/x509/ExtendedKeyUsage.java
rg/bouncycastle/asn1/x509/GeneralName.java
rg/bouncycastle/asn1/x509/GeneralNames.java
rg/bouncycastle/asn1/x509/GeneralSubtree.java
rg/bouncycastle/asn1/x509/Holder.java
rg/bouncycastle/asn1/x509/IetfAttrSyntax.java
rg/bouncycastle/asn1/x509/IssuerSerial.java
rg/bouncycastle/asn1/x509/IssuingDistributionPoint.java
rg/bouncycastle/asn1/x509/KeyPurposeId.java
rg/bouncycastle/asn1/x509/KeyUsage.java
rg/bouncycastle/asn1/x509/NameConstraints.java
rg/bouncycastle/asn1/x509/NoticeReference.java
rg/bouncycastle/asn1/x509/ObjectDigestInfo.java
rg/bouncycastle/asn1/x509/PolicyInformation.java
rg/bouncycastle/asn1/x509/PolicyMappings.java
rg/bouncycastle/asn1/x509/PolicyQualifierId.java
rg/bouncycastle/asn1/x509/PolicyQualifierInfo.java
rg/bouncycastle/asn1/x509/RSAPublicKeyStructure.java
rg/bouncycastle/asn1/x509/ReasonFlags.java
rg/bouncycastle/asn1/x509/RoleSyntax.java
rg/bouncycastle/asn1/x509/SubjectDirectoryAttributes.java
rg/bouncycastle/asn1/x509/SubjectKeyIdentifier.java
rg/bouncycastle/asn1/x509/SubjectPublicKeyInfo.java
rg/bouncycastle/asn1/x509/TBSCertList.java
rg/bouncycastle/asn1/x509/TBSCertificateStructure.java
rg/bouncycastle/asn1/x509/Time.java
rg/bouncycastle/asn1/x509/UserNotice.java
rg/bouncycastle/asn1/x509/V1TBSCertificateGenerator.java
rg/bouncycastle/asn1/x509/V2AttributeCertificateInfoGenerator.java
rg/bouncycastle/asn1/x509/V2Form.java
rg/bouncycastle/asn1/x509/V2TBSCertListGenerator.java
rg/bouncycastle/asn1/x509/V3TBSCertificateGenerator.java
rg/bouncycastle/asn1/x509/X509Attributes.java
rg/bouncycastle/asn1/x509/X509CertificateStructure.java
rg/bouncycastle/asn1/x509/X509DefaultEntryConverter.java
rg/bouncycastle/asn1/x509/X509Extension.java
rg/bouncycastle/asn1/x509/X509Extensions.java
rg/bouncycastle/asn1/x509/X509Name.java
rg/bouncycastle/asn1/x509/X509NameElementList.java
rg/bouncycastle/asn1/x509/X509NameEntryConverter.java
rg/bouncycastle/asn1/x509/X509NameTokenizer.java
rg/bouncycastle/asn1/x509/X509ObjectIdentifiers.java
rg/bouncycastle/asn1/x509/qualified/BiometricData.java
rg/bouncycastle/asn1/x509/qualified/ETSIQCObjectIdentifiers.java
rg/bouncycastle/asn1/x509/qualified/Iso4217CurrencyCode.java
rg/bouncycastle/asn1/x509/qualified/MonetaryValue.java
rg/bouncycastle/asn1/x509/qualified/QCStatement.java
rg/bouncycastle/asn1/x509/qualified/RFC3739QCObjectIdentifiers.java
rg/bouncycastle/asn1/x509/qualified/SemanticsInformation.java
rg/bouncycastle/asn1/x509/qualified/TypeOfBiometricData.java
rg/bouncycastle/asn1/x509/sigi/SigIObjectIdentifiers.java
rg/bouncycastle/asn1/x9/X9ObjectIdentifiers.java
rg/bouncycastle/crypto/AsymmetricBlockCipher.java
rg/bouncycastle/crypto/AsymmetricCipherKeyPair.java
rg/bouncycastle/crypto/AsymmetricCipherKeyPairGenerator.java
rg/bouncycastle/crypto/BasicAgreement.java
rg/bouncycastle/crypto/BlockCipher.java
rg/bouncycastle/crypto/BufferedAsymmetricBlockCipher.java
rg/bouncycastle/crypto/BufferedBlockCipher.java
rg/bouncycastle/crypto/CipherKeyGenerator.java
rg/bouncycastle/crypto/CipherParameters.java
rg/bouncycastle/crypto/CryptoException.java
rg/bouncycastle/crypto/DSA.java
rg/bouncycastle/crypto/DataLengthException.java
rg/bouncycastle/crypto/DerivationFunction.java
rg/bouncycastle/crypto/DerivationParameters.java
rg/bouncycastle/crypto/Digest.java
rg/bouncycastle/crypto/ExtendedDigest.java
rg/bouncycastle/crypto/InvalidCipherTextException.java
rg/bouncycastle/crypto/KeyGenerationParameters.java
rg/bouncycastle/crypto/Mac.java
rg/bouncycastle/crypto/PBEParametersGenerator.java
rg/bouncycastle/crypto/RuntimeCryptoException.java
rg/bouncycastle/crypto/Signer.java
rg/bouncycastle/crypto/SignerWithRecovery.java
rg/bouncycastle/crypto/StreamBlockCipher.java
rg/bouncycastle/crypto/StreamCipher.java
rg/bouncycastle/crypto/Wrapper.java
rg/bouncycastle/crypto/agreement/DHAgreement.java
rg/bouncycastle/crypto/agreement/DHBasicAgreement.java
rg/bouncycastle/crypto/digests/GeneralDigest.java
rg/bouncycastle/crypto/digests/LongDigest.java
rg/bouncycastle/crypto/digests/MD4Digest.java
rg/bouncycastle/crypto/digests/MD5Digest.java
rg/bouncycastle/crypto/digests/SHA1Digest.java
rg/bouncycastle/crypto/digests/SHA224Digest.java
rg/bouncycastle/crypto/digests/SHA256Digest.java
rg/bouncycastle/crypto/digests/SHA384Digest.java
rg/bouncycastle/crypto/digests/SHA512Digest.java
rg/bouncycastle/crypto/digests/ShortenedDigest.java
rg/bouncycastle/crypto/encodings/ISO9796d1Encoding.java
rg/bouncycastle/crypto/encodings/OAEPEncoding.java
rg/bouncycastle/crypto/encodings/PKCS1Encoding.java
rg/bouncycastle/crypto/engines/AESEngine.java
rg/bouncycastle/crypto/engines/AESFastEngine.java
rg/bouncycastle/crypto/engines/AESLightEngine.java
rg/bouncycastle/crypto/engines/AESWrapEngine.java
rg/bouncycastle/crypto/engines/DESEngine.java
rg/bouncycastle/crypto/engines/DESedeEngine.java
rg/bouncycastle/crypto/engines/DESedeWrapEngine.java
rg/bouncycastle/crypto/engines/IESEngine.java
rg/bouncycastle/crypto/engines/NullEngine.java
rg/bouncycastle/crypto/engines/RC2Engine.java
rg/bouncycastle/crypto/engines/RSAEngine.java
rg/bouncycastle/crypto/generators/BaseKDFBytesGenerator.java
rg/bouncycastle/crypto/generators/DESKeyGenerator.java
rg/bouncycastle/crypto/generators/DESedeKeyGenerator.java
rg/bouncycastle/crypto/generators/DHBasicKeyPairGenerator.java
rg/bouncycastle/crypto/generators/DHKeyGeneratorHelper.java
rg/bouncycastle/crypto/generators/DHKeyPairGenerator.java
rg/bouncycastle/crypto/generators/DHParametersGenerator.java
rg/bouncycastle/crypto/generators/DSAKeyPairGenerator.java
rg/bouncycastle/crypto/generators/DSAParametersGenerator.java
rg/bouncycastle/crypto/generators/KDF1BytesGenerator.java
rg/bouncycastle/crypto/generators/KDF2BytesGenerator.java
rg/bouncycastle/crypto/generators/MGF1BytesGenerator.java
rg/bouncycastle/crypto/generators/OpenSSLPBEParametersGenerator.java
rg/bouncycastle/crypto/generators/PKCS12ParametersGenerator.java
rg/bouncycastle/crypto/generators/PKCS5S1ParametersGenerator.java
rg/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator.java
rg/bouncycastle/crypto/generators/RSAKeyPairGenerator.java
rg/bouncycastle/crypto/io/DigestInputStream.java
rg/bouncycastle/crypto/io/DigestOutputStream.java
rg/bouncycastle/crypto/io/MacInputStream.java
rg/bouncycastle/crypto/io/MacOutputStream.java
rg/bouncycastle/crypto/macs/BlockCipherMac.java
rg/bouncycastle/crypto/macs/CBCBlockCipherMac.java
rg/bouncycastle/crypto/macs/CFBBlockCipherMac.java
rg/bouncycastle/crypto/macs/HMac.java
rg/bouncycastle/crypto/macs/ISO9797Alg3Mac.java
rg/bouncycastle/crypto/macs/OldHMac.java
rg/bouncycastle/crypto/modes/CBCBlockCipher.java
rg/bouncycastle/crypto/modes/CCMBlockCipher.java
rg/bouncycastle/crypto/modes/CFBBlockCipher.java
rg/bouncycastle/crypto/modes/CTSBlockCipher.java
rg/bouncycastle/crypto/modes/GOFBBlockCipher.java
rg/bouncycastle/crypto/modes/OFBBlockCipher.java
rg/bouncycastle/crypto/modes/PaddedBlockCipher.java
rg/bouncycastle/crypto/modes/SICBlockCipher.java
rg/bouncycastle/crypto/paddings/BlockCipherPadding.java
rg/bouncycastle/crypto/paddings/ISO10126d2Padding.java
rg/bouncycastle/crypto/paddings/ISO7816d4Padding.java
rg/bouncycastle/crypto/paddings/PKCS7Padding.java
rg/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher.java
rg/bouncycastle/crypto/paddings/TBCPadding.java
rg/bouncycastle/crypto/paddings/X923Padding.java
rg/bouncycastle/crypto/paddings/ZeroBytePadding.java
rg/bouncycastle/crypto/params/AsymmetricKeyParameter.java
rg/bouncycastle/crypto/params/CCMParameters.java
rg/bouncycastle/crypto/params/DESParameters.java
rg/bouncycastle/crypto/params/DESedeParameters.java
rg/bouncycastle/crypto/params/DHKeyGenerationParameters.java
rg/bouncycastle/crypto/params/DHKeyParameters.java
rg/bouncycastle/crypto/params/DHParameters.java
rg/bouncycastle/crypto/params/DHPrivateKeyParameters.java
rg/bouncycastle/crypto/params/DHPublicKeyParameters.java
rg/bouncycastle/crypto/params/DHValidationParameters.java
rg/bouncycastle/crypto/params/DSAKeyGenerationParameters.java
rg/bouncycastle/crypto/params/DSAKeyParameters.java
rg/bouncycastle/crypto/params/DSAParameters.java
rg/bouncycastle/crypto/params/DSAPrivateKeyParameters.java
rg/bouncycastle/crypto/params/DSAPublicKeyParameters.java
rg/bouncycastle/crypto/params/DSAValidationParameters.java
rg/bouncycastle/crypto/params/IESParameters.java
rg/bouncycastle/crypto/params/IESWithCipherParameters.java
rg/bouncycastle/crypto/params/ISO18033KDFParameters.java
rg/bouncycastle/crypto/params/KDFParameters.java
rg/bouncycastle/crypto/params/KeyParameter.java
rg/bouncycastle/crypto/params/MGFParameters.java
rg/bouncycastle/crypto/params/ParametersWithIV.java
rg/bouncycastle/crypto/params/ParametersWithRandom.java
rg/bouncycastle/crypto/params/ParametersWithSBox.java
rg/bouncycastle/crypto/params/ParametersWithSalt.java
rg/bouncycastle/crypto/params/RC2Parameters.java
rg/bouncycastle/crypto/params/RC5Parameters.java
rg/bouncycastle/crypto/params/RSAKeyGenerationParameters.java
rg/bouncycastle/crypto/params/RSAKeyParameters.java
rg/bouncycastle/crypto/params/RSAPrivateCrtKeyParameters.java
rg/bouncycastle/crypto/signers/DSASigner.java
rg/bouncycastle/crypto/signers/ISO9796d2PSSSigner.java
rg/bouncycastle/crypto/signers/ISO9796d2Signer.java
rg/bouncycastle/crypto/signers/PSSSigner.java
rg/bouncycastle/crypto/util/PrivateKeyFactory.java
rg/bouncycastle/crypto/util/PublicKeyFactory.java
rg/bouncycastle/i18n/ErrorBundle.java
rg/bouncycastle/i18n/LocalizedException.java
rg/bouncycastle/i18n/LocalizedMessage.java
rg/bouncycastle/i18n/MessageBundle.java
rg/bouncycastle/i18n/MissingEntryException.java
rg/bouncycastle/i18n/TextBundle.java
rg/bouncycastle/i18n/filter/Filter.java
rg/bouncycastle/i18n/filter/HTMLFilter.java
rg/bouncycastle/i18n/filter/SQLFilter.java
rg/bouncycastle/i18n/filter/UntrustedInput.java
rg/bouncycastle/jce/PKCS10CertificationRequest.java
rg/bouncycastle/jce/PKCS7SignedData.java
rg/bouncycastle/jce/PrincipalUtil.java
rg/bouncycastle/jce/X509KeyUsage.java
rg/bouncycastle/jce/X509Principal.java
rg/bouncycastle/jce/X509V1CertificateGenerator.java
rg/bouncycastle/jce/X509V2CRLGenerator.java
rg/bouncycastle/jce/X509V3CertificateGenerator.java
rg/bouncycastle/jce/interfaces/BCKeyStore.java
rg/bouncycastle/jce/interfaces/IESKey.java
rg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier.java
rg/bouncycastle/jce/netscape/NetscapeCertRequest.java
rg/bouncycastle/jce/provider/AnnotatedException.java
rg/bouncycastle/jce/provider/BouncyCastleProvider.java
rg/bouncycastle/jce/provider/BrokenJCEBlockCipher.java
rg/bouncycastle/jce/provider/BrokenKDF2BytesGenerator.java
rg/bouncycastle/jce/provider/BrokenPBE.java
rg/bouncycastle/jce/provider/CertPathValidatorUtilities.java
rg/bouncycastle/jce/provider/CertStoreCollectionSpi.java
rg/bouncycastle/jce/provider/DHUtil.java
rg/bouncycastle/jce/provider/DSAUtil.java
rg/bouncycastle/jce/provider/IndexedPKIXParameters.java
rg/bouncycastle/jce/provider/JCEBlockCipher.java
rg/bouncycastle/jce/provider/JCEDHKeyAgreement.java
rg/bouncycastle/jce/provider/JCEDHPrivateKey.java
rg/bouncycastle/jce/provider/JCEDHPublicKey.java
rg/bouncycastle/jce/provider/JCEDigestUtil.java
rg/bouncycastle/jce/provider/JCEIESCipher.java
rg/bouncycastle/jce/provider/JCEKeyGenerator.java
rg/bouncycastle/jce/provider/JCEMac.java
rg/bouncycastle/jce/provider/JCEPBEKey.java
rg/bouncycastle/jce/provider/JCERSACipher.java
rg/bouncycastle/jce/provider/JCERSAPrivateCrtKey.java
rg/bouncycastle/jce/provider/JCERSAPrivateKey.java
rg/bouncycastle/jce/provider/JCERSAPublicKey.java
rg/bouncycastle/jce/provider/JCESecretKeyFactory.java
rg/bouncycastle/jce/provider/JCEStreamCipher.java
rg/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator.java
rg/bouncycastle/jce/provider/JDKAlgorithmParameters.java
rg/bouncycastle/jce/provider/JDKDSAPrivateKey.java
rg/bouncycastle/jce/provider/JDKDSAPublicKey.java
rg/bouncycastle/jce/provider/JDKDSASigner.java
rg/bouncycastle/jce/provider/JDKDigestSignature.java
rg/bouncycastle/jce/provider/JDKECDSAAlgParameters.java
rg/bouncycastle/jce/provider/JDKISOSignature.java
rg/bouncycastle/jce/provider/JDKKeyFactory.java
rg/bouncycastle/jce/provider/JDKKeyPairGenerator.java
rg/bouncycastle/jce/provider/JDKKeyStore.java
rg/bouncycastle/jce/provider/JDKMessageDigest.java
rg/bouncycastle/jce/provider/JDKPKCS12KeyStore.java
rg/bouncycastle/jce/provider/JDKPSSSigner.java
rg/bouncycastle/jce/provider/JDKX509CertificateFactory.java
rg/bouncycastle/jce/provider/PBE.java
rg/bouncycastle/jce/provider/PKIXCertPath.java
rg/bouncycastle/jce/provider/PKIXCertPathBuilderSpi.java
rg/bouncycastle/jce/provider/PKIXCertPathValidatorSpi.java
rg/bouncycastle/jce/provider/PKIXPolicyNode.java
rg/bouncycastle/jce/provider/RSAUtil.java
rg/bouncycastle/jce/provider/WrapCipherSpi.java
rg/bouncycastle/jce/provider/X509CRLEntryObject.java
rg/bouncycastle/jce/provider/X509CRLObject.java
rg/bouncycastle/jce/provider/X509CertificateObject.java
rg/bouncycastle/jce/provider/X509SignatureUtil.java
rg/bouncycastle/jce/spec/IEKeySpec.java
rg/bouncycastle/jce/spec/IESParameterSpec.java
rg/bouncycastle/openssl/PEMWriter.java
rg/bouncycastle/util/Arrays.java
rg/bouncycastle/util/BigIntegers.java
rg/bouncycastle/util/Strings.java
rg/bouncycastle/util/encoders/Base64.java
rg/bouncycastle/util/encoders/Base64Encoder.java
rg/bouncycastle/util/encoders/BufferedDecoder.java
rg/bouncycastle/util/encoders/BufferedEncoder.java
rg/bouncycastle/util/encoders/Encoder.java
rg/bouncycastle/util/encoders/Hex.java
rg/bouncycastle/util/encoders/HexEncoder.java
rg/bouncycastle/util/encoders/HexTranslator.java
rg/bouncycastle/util/encoders/Translator.java
rg/bouncycastle/util/encoders/UrlBase64.java
rg/bouncycastle/util/encoders/UrlBase64Encoder.java
rg/bouncycastle/x509/AttributeCertificateHolder.java
rg/bouncycastle/x509/AttributeCertificateIssuer.java
rg/bouncycastle/x509/CertPathReviewerException.java
rg/bouncycastle/x509/CertPathReviewerMessages.properties
rg/bouncycastle/x509/PKIXCertPathReviewer.java
rg/bouncycastle/x509/X509Attribute.java
rg/bouncycastle/x509/X509AttributeCertificate.java
rg/bouncycastle/x509/X509Util.java
rg/bouncycastle/x509/X509V1CertificateGenerator.java
rg/bouncycastle/x509/X509V2AttributeCertificate.java
rg/bouncycastle/x509/X509V2AttributeCertificateGenerator.java
rg/bouncycastle/x509/X509V2CRLGenerator.java
rg/bouncycastle/x509/X509V3CertificateGenerator.java
rg/bouncycastle/x509/extension/AuthorityKeyIdentifierStructure.java
rg/bouncycastle/x509/extension/SubjectKeyIdentifierStructure.java
rg/bouncycastle/x509/extension/X509ExtensionUtil.java
un/misc/Unsafe.java
3ff29eb11a241d58c54ecc84230bb0672f4aa148 23-Apr-2010 Peter Hallam <peterhal@google.com> More merging of nio into luni

Change-Id: Ib4356b3cd57490df8ff246ea6a4bc1c269ba848b
ava/nio/BaseByteBuffer.java
ava/nio/Buffer.java
ava/nio/BufferFactory.java
ava/nio/BufferOverflowException.java
ava/nio/BufferUnderflowException.java
ava/nio/ByteBuffer.java
ava/nio/ByteOrder.java
ava/nio/CharArrayBuffer.java
ava/nio/CharBuffer.java
ava/nio/CharSequenceAdapter.java
ava/nio/CharToByteBufferAdapter.java
ava/nio/DirectByteBuffer.java
ava/nio/DirectByteBuffers.java
ava/nio/DoubleArrayBuffer.java
ava/nio/DoubleBuffer.java
ava/nio/DoubleToByteBufferAdapter.java
ava/nio/FloatArrayBuffer.java
ava/nio/FloatBuffer.java
ava/nio/FloatToByteBufferAdapter.java
ava/nio/HeapByteBuffer.java
ava/nio/IntArrayBuffer.java
ava/nio/IntBuffer.java
ava/nio/IntToByteBufferAdapter.java
ava/nio/InvalidMarkException.java
ava/nio/LongArrayBuffer.java
ava/nio/LongBuffer.java
ava/nio/LongToByteBufferAdapter.java
ava/nio/MappedByteBuffer.java
ava/nio/MappedByteBufferAdapter.java
ava/nio/NIOAccess.java
ava/nio/ReadOnlyBufferException.java
ava/nio/ReadOnlyCharArrayBuffer.java
ava/nio/ReadOnlyDirectByteBuffer.java
ava/nio/ReadOnlyDoubleArrayBuffer.java
ava/nio/ReadOnlyFloatArrayBuffer.java
ava/nio/ReadOnlyHeapByteBuffer.java
ava/nio/ReadOnlyIntArrayBuffer.java
ava/nio/ReadOnlyLongArrayBuffer.java
ava/nio/ReadOnlyShortArrayBuffer.java
ava/nio/ReadWriteCharArrayBuffer.java
ava/nio/ReadWriteDirectByteBuffer.java
ava/nio/ReadWriteDoubleArrayBuffer.java
ava/nio/ReadWriteFloatArrayBuffer.java
ava/nio/ReadWriteHeapByteBuffer.java
ava/nio/ReadWriteIntArrayBuffer.java
ava/nio/ReadWriteLongArrayBuffer.java
ava/nio/ReadWriteShortArrayBuffer.java
ava/nio/ShortArrayBuffer.java
ava/nio/ShortBuffer.java
ava/nio/ShortToByteBufferAdapter.java
ava/nio/channels/AlreadyConnectedException.java
ava/nio/channels/AsynchronousCloseException.java
ava/nio/channels/ByteChannel.java
ava/nio/channels/CancelledKeyException.java
ava/nio/channels/Channel.java
ava/nio/channels/Channels.java
ava/nio/channels/ClosedByInterruptException.java
ava/nio/channels/ClosedChannelException.java
ava/nio/channels/ClosedSelectorException.java
ava/nio/channels/ConnectionPendingException.java
ava/nio/channels/DatagramChannel.java
ava/nio/channels/FileChannel.java
ava/nio/channels/FileLock.java
ava/nio/channels/FileLockInterruptionException.java
ava/nio/channels/GatheringByteChannel.java
ava/nio/channels/IllegalBlockingModeException.java
ava/nio/channels/IllegalSelectorException.java
ava/nio/channels/InterruptibleChannel.java
ava/nio/channels/NoConnectionPendingException.java
ava/nio/channels/NonReadableChannelException.java
ava/nio/channels/NonWritableChannelException.java
ava/nio/channels/NotYetBoundException.java
ava/nio/channels/NotYetConnectedException.java
ava/nio/channels/OverlappingFileLockException.java
ava/nio/channels/Pipe.java
ava/nio/channels/ReadableByteChannel.java
ava/nio/channels/ScatteringByteChannel.java
ava/nio/channels/SelectableChannel.java
ava/nio/channels/SelectionKey.java
ava/nio/channels/Selector.java
ava/nio/channels/ServerSocketChannel.java
ava/nio/channels/SocketChannel.java
ava/nio/channels/UnresolvedAddressException.java
ava/nio/channels/UnsupportedAddressTypeException.java
ava/nio/channels/WritableByteChannel.java
ava/nio/channels/package.html
ava/nio/channels/spi/AbstractInterruptibleChannel.java
ava/nio/channels/spi/AbstractSelectableChannel.java
ava/nio/channels/spi/AbstractSelectionKey.java
ava/nio/channels/spi/AbstractSelector.java
ava/nio/channels/spi/SelectorProvider.java
ava/nio/channels/spi/package.html
ava/nio/package.html
rg/apache/harmony/nio/AddressUtil.java
rg/apache/harmony/nio/FileChannelFactory.java
rg/apache/harmony/nio/internal/DatagramChannelImpl.java
rg/apache/harmony/nio/internal/DirectBuffer.java
rg/apache/harmony/nio/internal/FileChannelImpl.java
rg/apache/harmony/nio/internal/FileLockImpl.java
rg/apache/harmony/nio/internal/IOUtil.java
rg/apache/harmony/nio/internal/LockManager.java
rg/apache/harmony/nio/internal/MappedByteBufferFactory.java
rg/apache/harmony/nio/internal/PipeImpl.java
rg/apache/harmony/nio/internal/ReadOnlyFileChannel.java
rg/apache/harmony/nio/internal/ReadWriteFileChannel.java
rg/apache/harmony/nio/internal/SelectionKeyImpl.java
rg/apache/harmony/nio/internal/SelectorImpl.java
rg/apache/harmony/nio/internal/SelectorProviderImpl.java
rg/apache/harmony/nio/internal/ServerSocketChannelImpl.java
rg/apache/harmony/nio/internal/SocketChannelImpl.java
rg/apache/harmony/nio/internal/WriteOnlyFileChannel.java
38607710cdc82cb1a0e81c2fc5c78278b435e4fc 23-Apr-2010 Jesse Wilson <jessewilson@google.com> Remove unnecessary IPv6 and IPv4 parsing from URI.

Cleanup URI and InetAddress exception localization.
ava/net/InetAddress.java
ava/net/URI.java
ava/net/URLClassLoader.java
d5fa369bd73d4098c59b3d9949a67f89910e71f1 23-Apr-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing java.lang.NullPointerException at java.net.URI$Helper.isValidDomainName" into dalvik-dev
733642b27de051f9fabcd689d160282971a30cef 22-Apr-2010 Jesse Wilson <jessewilson@google.com> Fixing java.lang.NullPointerException at java.net.URI$Helper.isValidDomainName

See http://b/issue?id=2604061
ava/net/URI.java
a7d4139bed693bf6037bf5f7f49a24b077102adc 22-Apr-2010 Elliott Hughes <enh@google.com> java.text.RuleBasedCollator fixes.

Add expectations for broken harmony tests, add our own equivalent (but correct)
tets, and fix the bug turned up by the correct tests: the icu4jni
RuleBasedCollator was using toString to convert a CharacterIterator to a
String, resulting in iteration over the result of Object.toString (the class
name and identity hash code) rather than the characters of interest.

Also shut javac up about non-ASCII characters in Locale.java.

Bug: 2608742
Bug: 2608750
Change-Id: I2171789058c8116eacd7e5815bd483f0bc07c69b
ava/util/Locale.java
0ade1b6059b1f8cec27fa65c6ee18f13f2e0cebd 21-Apr-2010 Elliott Hughes <enh@google.com> Fix Locale.getDisplayName for unlocalizable languages/countries/variants.

This does not address the interpretation of script identifiers, but does bring us
in line with the RI's behavior. That's why the test doesn't use the example from
the bug.

Bug: 2611311
Change-Id: I54af89aaf418cd520dc6ebdb1e27dc1ac373f70f
ava/util/Locale.java
8baf143a7c8921d07b54adbc66ac1e5b42de5fe6 21-Apr-2010 Jesse Wilson <jessewilson@google.com> Rewrite the HTTP connection pool used by HttpURLConnection.

This started off as incremental changes, but it ended up going
far enough that it earned the "rewrite" badge.

System.getProperty() is not called for every HTTP connection.
This is slightly controversial, but the old code had to bend
over backwards to support dynamic pool changes, and it didn't
even support the case when the pool shrank but not to 0.

The new code doesn't do I/O within static synchronized blocks.
This should reduce contention described here: http://b/issue?id=2606547

Also: simpify implementation, prettier names, more focused doc.
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConfiguration.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnectionManager.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnectionPool.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
2f633269e71f3fb0b6248cc695cf37c5cbaf7e60 20-Apr-2010 Jesse Wilson <jessewilson@google.com> Fixing TimeZone.setDefault() documentation.

Set expectations for date formatting to tolerate "GMT-07" in the
output. The alternative is to emit an ambigous date string.
Applications that want pretty date formatting should use the
proper facilities: SimpleDateFormat, etc.

This problem was detected by org.apache.harmony.luni.tests.java.util.DateTest.test_toString
ava/util/Locale.java
ava/util/TimeZone.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
6dda210e2d2e01727a6894c11300fd43cbd9b593 19-Apr-2010 Elliott Hughes <enh@google.com> Speed up %d for locales with non-ASCII digits.

The small "localizeDigits" part of this change is the big speedup. It takes
%d in the "ar" Locale from 5x more expensive than "en_US", to just a small
percentage more expensive.

The big part of this change: removing the useless Transformer and FloatUtils
classes touches many lines (mostly just changing the level of indentation),
and only has a small percentage effect on performance. The motivation for
this is actually primarily that it makes the code easier to read, and makes
it easier to share code.

Change-Id: I07e86a3ee448510d9ae36579a9af283349f777f1
ava/util/Formatter.java
f88ba00a6ec9c43c344fbd1708c6d4ee2b593ca0 18-Apr-2010 Elliott Hughes <enh@google.com> Remove a dangling import, and another unused Messages.java.

Also tidy up our two awt.font classes.

Change-Id: I931d348eef7265190f76c31f74c9a5d9ec5d6597
rg/apache/harmony/misc/internal/nls/Messages.java
757a7942eed2b0aa457f8517a0259d2ac82c5b18 16-Apr-2010 Elliott Hughes <enh@google.com> Merge LocaleData and Resources, rename Resources to ICU.

Also move our ICU tests into our little tree of tests.

Bug: 2596471
Change-Id: I73b53d74c26ef9bf670f12cac58b51ba61eefead
ava/util/Calendar.java
ava/util/Currency.java
ava/util/Formatter.java
ava/util/Locale.java
ava/util/ResourceBundle.java
ava/util/TimeZone.java
2699e44956f8ea8bd554c177b6b0a41e3a6a2181 16-Apr-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing TreeMap serialization issues." into dalvik-dev
b7e820b92c7345cdc0cd4fea50954289ae66eb67 16-Apr-2010 Elliott Hughes <enh@google.com> Change DecimalFormatSymbols to have a field per symbol.

I'd been wanting to do this for some time, but cleaning up the recent
performance changes I made to Formatter was the final straw.

Change-Id: I6d516de66a0bed5e759bca590b4cc124ce2eb712
ava/util/Formatter.java
rg/apache/harmony/luni/util/LocaleCache.java
0790403433525b7ca94391592d72b13a4c94578c 16-Apr-2010 Jesse Wilson <jessewilson@google.com> Fixing TreeMap serialization issues.

When I was testing this on the JDK I had my own TreeMap on
the classpath, which caused my tests to pass even when they
shouldn't have.

The new serialization data was generated by the JDK's
collections, both v5 and v6. The tests pass on both Dalvik
and the JDK.
ava/util/Collections.java
ava/util/TreeMap.java
e875cc0c3dc0ecb816fc154ddcfba38c064d00e2 16-Apr-2010 Elliott Hughes <enh@google.com> Merge "java.util.Formatter: fix localization of numbers." into dalvik-dev
ef415fba11d8588a8dba48b4afdde420e5dcdccc 15-Apr-2010 Elliott Hughes <enh@google.com> java.util.Formatter: fix localization of numbers.

Bug: 2301911
Change-Id: Ic594702a80bdef2e8fd97e52fd5fa301def19cac
ava/util/Formatter.java
ava/util/Locale.java
984dc62f58d1f9611ebccc2598f714c15242a6eb 06-Apr-2010 Jesse Wilson <jessewilson@google.com> From scratch implementation of a Navigable TreeMap.

Between Java 5 and Java 6, Harmony's implementation ballooned
from ~2400 lines to ~5900 lines. This implementation is a more
compact ~1700 lines.

This implementation and its views have been rigorously tested
using Google Collections' test framework in addition to the
tests of our own suite.
ava/util/AbstractMap.java
ava/util/TreeMap.java
ava/util/TreeSet.java
03c0a8e681c776fdba0389ab8593282139afc6d6 14-Apr-2010 Elliott Hughes <enh@google.com> Remove "Messages" from the nio, prefs, sql, text, and x-net modules.

Also remove an file of unused messages from luni, and inline one of luni's
other files. (There are plenty more.)

Also remove some German translations of bouncycastle messages (that are
actually in English anyway).

Change-Id: I9c565f6f2201a5d877eba5bf0af4ffad7b769984
ava/io/ObjectInputStream.java
ava/lang/EnumConstantNotPresentException.java
ava/util/Collections.java
ava/util/Date.java
ava/util/Properties.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
rg/apache/harmony/luni/internal/nls/Messages.java
rg/apache/harmony/luni/internal/nls/messages.properties
rg/apache/harmony/misc/internal/nls/messages.properties
5dc59cfad86607a8348c4561ec91584462aa058d 14-Apr-2010 Elliott Hughes <enh@google.com> Use the same documentation in all the methods that take a format string.

Change-Id: I8e7d06df72a7b8db9edd17aa2748800329e837fa
ava/io/Console.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/util/Formatter.java
3106a99ccbe2e2a25bb66266d0ee42d98dd18099 13-Apr-2010 Elliott Hughes <enh@google.com> Improve documentation about the user's default locale.

Add a bit of text to Locale's class documentation, and include a link from
every method that uses Locale.getDefault(). Also try to consistently say
"user's default locale", as a subliminal hint that this isn't necessarily
the developer's locale, nor en_US.

Bug: 2593000
Change-Id: Ieebe864ed6b9fecbfef5d5415269299739cedd1b
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/lang/String.java
ava/util/Currency.java
ava/util/Formatter.java
ava/util/Locale.java
ava/util/TimeZone.java
9de899cc3ffd3aa3f8f827201cbe14120609018b 13-Apr-2010 Elliott Hughes <enh@google.com> Fix String.toLowerCase and toUpperCase.

Rather than try to cope with Lithuanian, let's just hand that one to ICU4C.
I've removed my hand-crafted Azeri/Turkish lowercasing too, in favor of ICU.
Presence of a high surrogate (which implies a supplemental character) is a
good reason to hand over to ICU too.

On the uppercasing side, I've kept our existing hard-coded table and just
added code to defer to ICU for Azeri, Lithuanian, and Turkish (plus
supplemental characters). I don't like the tables, but I don't have proof
that they're incorrect.

Bug: 2340628
Change-Id: I36b556b0444623a5aacc1afc58ebb4d84211d3dc
ava/lang/CaseMapper.java
ava/lang/String.java
4a6cd08d55ec407dea29586cc917f8a423f5645f 12-Apr-2010 Elliott Hughes <enh@google.com> Fix supplementary character support.

Fixes all known bugs in our handling of supplementary characters. This change
introduces a performance regression on the assumption that it won't be released
without a corresponding JIT change to enable the code to be inlined back to
pretty much what it used to be.

Bug: 2587122
Change-Id: I3449c9718bbe32ebe53b6c10454ae1dc82105b59
ava/lang/String.java
d9d4093169787d2a52d0e392933f77ec08ff1045 10-Apr-2010 Elliott Hughes <enh@google.com> Throw the same exceptions as the RI from String methods.

String has its own StringIndexOutOfBoundsException subclass of
IndexOutOfBoundsException. We can run more tests if we behave
the same.

The RI only admits to IndexOutOfBoundsException, though,
so our documentation and throws clause shouldn't change.

Change-Id: Ib87777f8a42d4bcac21e8f8f00f4dcbc0ada4201
ava/lang/String.java
a94813f0f7b050e1834f9994bcf867aa677d4472 10-Apr-2010 Elliott Hughes <enh@google.com> Merge "Make String.split 10x faster." into dalvik-dev
0510f0d8ce7c20b8f6022545a70e8b868805dc60 10-Apr-2010 Elliott Hughes <enh@google.com> Make String.split 10x faster.

Almost all uses of String.split in the Android codebase use trivial single
literal character separators. This patch optimizes that case to avoid the
use of regular expressions entirely.

The 10x speedup isn't the whole story, because the speedup is really
proportional to the number of separators in the input. 10x is easily
achievable, but the speedup could be arbitrarily high.

Before:

benchmark us logarithmic runtime
PatternSplitComma 84.8 XXXXXXXXXXXXXX||||||||||||||
PatternSplitLiteralDot 85.0 XXXXXXXXXXXXXX||||||||||||||
StringSplitComma 166.3 XXXXXXXXXXXXXXXXXXXXXXXXXXXX|
StringSplitHard 173.6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
StringSplitLiteralDot 167.7 XXXXXXXXXXXXXXXXXXXXXXXXXXXX|

After:

benchmark us logarithmic runtime
PatternSplitComma 18.9 XXX|||||||||||||||||||||
PatternSplitLiteralDot 19.0 XXX|||||||||||||||||||||
StringSplitComma 18.8 XXX|||||||||||||||||||||
StringSplitHard 174.2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
StringSplitLiteralDot 18.8 XXX|||||||||||||||||||||

(The benchmarks starting "Pattern" use a precompiled Pattern for performance.
Those starting "String" use String.split and would traditional entail a
temporary Pattern. As you can see, creating Patterns is very expensive for
us, and each one throws a finalizer spanner in the GC works too. The new
fast path avoids all this. I'll commit the benchmark -- along with all the
others I've ever used -- to http://code.google.com/p/dalvik this afternoon.)

Tests? We actually pass _more_ tests after this patch, because the increase
in performance means we don't hit timeouts.

Change-Id: I404298e21a78d72cf5ce6ea675844bf251e3825b
ava/lang/String.java
6232a5efed0ea103e35aec73206e5e03a8b82e0c 08-Apr-2010 Jesse Wilson <jessewilson@google.com> Latest java.util.concurrent from the JSR 166 project.

Code was downloaded from CVS on 2010-april-7 at 10:00pst
http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java/util/concurrent/

The new interfaces and ArrayDeque class are all from Harmony.
ava/util/AbstractMap.java
ava/util/ArrayDeque.java
ava/util/Deque.java
ava/util/NavigableMap.java
ava/util/NavigableSet.java
8c462dbd86ae088ad0952df22b1ce9fd5a678234 07-Apr-2010 Elliott Hughes <enh@google.com> Fix build by adding missing imports.

Change-Id: I433778b02d3ad67090ee88444700f79b3138d778
ava/util/ServiceLoader.java
e8f1d7b6ad9fa1185ba2f9f9698f6627fc4eaf03 07-Apr-2010 Elliott Hughes <enh@google.com> Merge "Actually use ServiceLoader in places where we had a hard-coded equivalent." into dalvik-dev
64e526d079a7218f984eeaba6ff2feeaadeeaffb 07-Apr-2010 Elliott Hughes <enh@google.com> Actually use ServiceLoader in places where we had a hard-coded equivalent.

I've also removed a file that was causing us to use this code unnecessarily
at run-time to explicitly specify the built-in default PreferencesFactory.

I haven't touched Charset, but should come back and fix that too at some
point.

Change-Id: I3a2145041d048078bdb55ae7b8fa4ec9d8726922
ava/util/ServiceLoader.java
f307b1e2834db71e4713f6ea5d6d5bad7c4e8c03 06-Apr-2010 Elliott Hughes <enh@google.com> resolved conflicts for merge of dd53c703 to dalvik-dev

Change-Id: Ia95af76e2995ce7fb0778b020baf2882a8b0a3dd
582d926fbf5f5fd4800def67f86ecfedee44681e 05-Apr-2010 Elliott Hughes <enh@google.com> Froyo InputStream.available documentation improvement.

This method causes a lot of confusion, and we can do a lot better. (Ideally,
the API would either not exist or be something like "public boolean ready()".)

I've removed poor-quality documentation overrides too, so the full
documentation is visible in most places. (InflaterInputStream is an obvious
exception.)

Also, to a lesser extent, improve the InputStream.skip documentation.

Change-Id: I6d6cd788e6a32ad4a2613d1e381610f1ad8575fe
ava/io/BufferedInputStream.java
ava/io/ByteArrayInputStream.java
ava/io/FileInputStream.java
ava/io/FilterInputStream.java
ava/io/InputStream.java
ava/io/LineNumberInputStream.java
ava/io/ObjectInputStream.java
ava/io/PipedInputStream.java
ava/io/PushbackInputStream.java
ava/io/SequenceInputStream.java
ava/io/StringBufferInputStream.java
3604384c5f53c83383ce85f838901e46b0105e5e 02-Apr-2010 Elliott Hughes <enh@google.com> Add Java 6's java.util.ServiceLoader.

New implementation, documentation, and tests, very loosely based on the harmony
code.

We can't run the harmony or jtreg tests because we don't have the infrastructure.
My test just tests the most obvious use cases, on the assumption that at some
point we'll get the other test suites working; quite possibly before anyone ever
wants to use this stuff on Android.

(We might want to switch over existing META-INF/services/ code to use
ServiceLoader. I've raised http://b/2567593 for this.)

Bug: 2497395
Change-Id: I62b0ac4748204555d3ba9356794a72aff4f4f01e
ava/util/ServiceConfigurationError.java
ava/util/ServiceLoader.java
f9157eaea53923d3dbe6a521b29427819052f176 01-Apr-2010 Elliott Hughes <enh@google.com> Tidy up our getAvailableLocales methods to actually ask ICU4C.

These specialized methods are little used, and in several cases ICU itself
just returns the list of locales, but that's ICU's business, not ours. As
long as ICU is in charge of our locale-specific data, it should be responsible
for answering questions about what locale-specific data is available...

Change-Id: Idc8a66bbf7fcbc6b06e30929e6a7af3fe30ab7d1
ava/util/Calendar.java
ava/util/Locale.java
f072c0384c0b12f081fb99bc365d284ae6381379 01-Apr-2010 Elliott Hughes <enh@google.com> Merge "Add Java 6's java.net.IDN." into dalvik-dev
79179d5284bdc6854d1366226d26eec8b766d1ac 01-Apr-2010 Elliott Hughes <enh@google.com> Add Java 6's java.net.IDN.

harmony's tests and my code, though ICU4C does all the hard work.

I've added a test of my own to demonstrate some weird RI behavior (that I've
emulated in our implementation).

Bug: 2497395
Change-Id: I8146f72a8a3204449ee3d0d9065dadc1c1c77fcc
ava/net/IDN.java
a927a856e41ce3e68ae91e4eaeda9e8a70caee6c 01-Apr-2010 Elliott Hughes <enh@google.com> Merge "Add Java 6's ResourceBundle/Properties API." into dalvik-dev
565a85d06ab8bc321d39f12012468cdfb65f5cfe 31-Mar-2010 Elliott Hughes <enh@google.com> Add Java 6's ResourceBundle/Properties API.

I've pretty much taken the upstream ResourceBundle implementations
as-is, putting back our string-to-locale conversion, removing a bit
of duplication and non-free, non-spec EBCDIC support, and hard-coding
the text of the MissingResourceExceptions (since harmony's changed
its message catalog from ours, so I had to touch those bits of the
code anyway).

(Why haven't I bothered to pay much attention to the resource bundle
implementations? Because I already rewrote our only code that was
using them to not use them, and third-party developers should be
using Android's resource system instead. There's very little chance
anyone needs Java resource bundles. I paid some attention to Properties,
because they're still somewhat useful.)

Also remove various unused messages, and update our tests. I've mostly
_not_ taken the upstream tests, because it would require a lot of work
that we'll be doing anyway when we switch to using their test suite
properly.

I ran the jtreg tests we're able to run, and the normal-case ones (plus
the stress test) seemed okay.

Bug: 2497395
Change-Id: I91606df0dc1a45e6974fbb27a0d334af87254f0b
ava/util/ListResourceBundle.java
ava/util/Properties.java
ava/util/PropertyResourceBundle.java
ava/util/ResourceBundle.java
rg/apache/harmony/luni/internal/nls/messages.properties
rg/apache/harmony/luni/util/ExternalMessages.properties
2e43b95339579a2ea8b749d7598677bb44f2770f 31-Mar-2010 Elliott Hughes <enh@google.com> Add Java 6's Calendar API changes.

Also correct two javadoc mistakes I added, and bring back the latest harmony
java6 CalendarTest.

Bug: 2497395
Change-Id: If481390948ca93d5f709a8ed4585991889de9f8b
ava/util/Calendar.java
97144c87ada735a82221d7cdf65555b8f063a05a 30-Mar-2010 Elliott Hughes <enh@google.com> Trivial tidying up of networking code.

Removing cruft and renaming things.

Change-Id: I317726c40a1addf3a1ad9d905239438424082549
ava/net/InetAddress.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
abd91e389e4462208eb004b38d378f67d9676ec1 30-Mar-2010 Elliott Hughes <enh@google.com> Fix build.

Rather than try to be clever with header files (which didn't work with glibc
for the sim build) let's make Math.copySign have the StrictMath behavior,
and have StrictMath call Math. (The other way round, though it might seem
more logical, wouldn't solve the problem. We already have numerous cases of
StrictMath calling Math anyway.)

Change-Id: Ifff065ddc8fbd5d5f8d4d5b67bc9ac07a719eb00
ava/lang/StrictMath.java
ace7e6ff6285c073a80aaad68321b17bdcd09a4b 27-Mar-2010 Elliott Hughes <enh@google.com> Fix StrictMath.copySign's behavior with NaN.

StrictMath's copySign method is defined to treat all NaNs as positive, regardless
of their sign bit. Rather than add yet more code on the Java side (which already
called down to native code three times), let's just make one call to native code.

This change fixes failures in already-committed StrictMath tests.

The only other potential instances of this class of error were in the
max and min methods, but they all handle NaNs before calling
(double|float)To(Raw)?LongBits, so the choice there really is arbitrary.

Change-Id: I439dbdff9068cb420b78a6330cde9d7d0d12c0ef
ava/lang/Math.java
ava/lang/StrictMath.java
b57e439ac3f5401e39dbe4d9097e476fe20b889e 25-Mar-2010 Elliott Hughes <enh@google.com> Apply https://issues.apache.org/jira/browse/HARMONY-4307.

They didn't add a test for this; supposedly it fixed a flaky AWT test. But
the change looks plausible.

Change-Id: I358849a20d5e38d01d6c77a4c335002bb7bba095
ava/io/ObjectStreamField.java
9e95c528a090dac847aa97fec1b0ad331929c685 25-Mar-2010 Elliott Hughes <enh@google.com> Clean up a few toStrings.

I couldn't find any more that were using getClass() rather than
getClass().getName().

Change-Id: I30b375748d36bc36d1e6999349fc472496456746
ava/util/Scanner.java
264f9e92b2ed5887c1e23a4855f694458fed2415 25-Mar-2010 Elliott Hughes <enh@google.com> am ec7c8c98: Fix java.util.Random\'s constructors.

Merge commit 'ec7c8c98a4094580224eb9c400249c5c0984cf29' into dalvik-dev

* commit 'ec7c8c98a4094580224eb9c400249c5c0984cf29':
Fix java.util.Random's constructors.
1e8bd6143140f44337d6f567335afeb48b263d95 25-Mar-2010 Elliott Hughes <enh@google.com> Fix java.util.Random's constructors.

Subclasses rely on having their overridden setSeed called by Random's
constructors, and the RI actually documents this behavior. (The
documentation even changed between Java 5 and Java 6 to make it _more_
explicit.)

This patch keeps that part of I6239d93bb46876ef1c4a5e155a6dc1ac6fab4eae
that improved our randomness, but reverts the attempt to fix Random's
uncouth behavior.

Also a regression test so we don't try to fix Random again in future.

Bug: 2502231
Change-Id: Ieea1009145c74eac9475c0cd5066dabad20eb114
ava/util/Random.java
93f0d794f264baeb7a90d02e58cae60305b3912a 24-Mar-2010 Elliott Hughes <enh@google.com> Add Java 6's getAvailableLocales/getInstance to DateFormatSymbols and DecimalFormatSymbols.

This patch also improves the documentation of all getAvailableLocales methods
to clarify exactly what "available" means. Note that at the moment, many of
our implementations just return Locale.getAvailableLocales. It turns out that
ICU does the same in most cases, but I'll come back in a separate patch and
add code so we just pass these down to ICU, and wash our hands of the matter.

I've rewritten DateFormatSymbols.equals, which was very wrong. The time zone
names comparison had an invalid optimization, and its slow-path loop was wrong
too: it only ever tested values against themselves, which isn't likely to have
been the author's intention.

I've added toString overrides to DateFormatSymbols and DecimalFormatSymbols,
because I need them every time I work on these classes.

I've made the constants in DecimalFormatSymbols static final, and given them
idiomatic names. (I still think we might benefit from breaking these into
separate fields, as in the serialized form, but that's a separate issue.)

Finally, and unrelatedly, I've added a comment to BreakIteratorProvider that
I missed in my last change to that file.

Change-Id: I5d6cb30f9afdb502d38353d8a624dc2f0fef41ac
ava/util/Calendar.java
6edeab307d95e5ef0610889ab3ef68e16e0b0510 24-Mar-2010 Elliott Hughes <enh@google.com> Merge "Remove explicit 8192 arguments to BufferedReader and friends." into dalvik-dev
81e3c1d7a6ff5b1f6a587890249e1cb1b3beccc7 24-Mar-2010 Elliott Hughes <enh@google.com> am b7b9be13: Merge "Improve java.net.InetAddress.getLocalHost documentation."

Merge commit 'b7b9be1343b59b429b6de9b28ffffbbbde8478c2' into dalvik-dev

* commit 'b7b9be1343b59b429b6de9b28ffffbbbde8478c2':
Improve java.net.InetAddress.getLocalHost documentation.
b748a9b827665a8b19d60af4b419503b45e74329 24-Mar-2010 Elliott Hughes <enh@google.com> Remove explicit 8192 arguments to BufferedReader and friends.

These were clearly added just to shut up our own warning, and are now
unnecessary and misleading to future maintainers.

There's one barely-related change: InputStreamReader and OutputStreamWriter
are very similar, and this patch makes them more similar, and adds a few
missing modifiers from their fields.

Change-Id: I959011f914ff215e92bbfa41c1bac66465803685
ava/io/InputStreamReader.java
ava/io/OutputStreamWriter.java
ava/io/PrintWriter.java
ava/net/ProxySelectorImpl.java
ava/util/Formatter.java
ava/util/Properties.java
rg/apache/harmony/luni/internal/net/www/protocol/file/FileURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
fb4616d0efbba1903b9237c0a428b59868365a69 23-Mar-2010 Elliott Hughes <enh@google.com> Remove the "default buffer size" warnings.

Everyone seems to agree these have outlived their usefulness.

Change-Id: Ia2a53ffa1f9498333b4b2d51d5c1db488b89abaf
ava/io/BufferedInputStream.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ce64852f32d7d10ebd61a9c8f9ba2e91068f9bd2 23-Mar-2010 Elliott Hughes <enh@google.com> Improve java.net.InetAddress.getLocalHost documentation.

Bug: 1518707
Change-Id: I741a7a28325320949e84e997e6a49d3356c9a308
ava/net/InetAddress.java
c4a9c063cb234987b4dea66b5d1d26be8e754d0b 23-Mar-2010 Elliott Hughes <enh@google.com> Add the Java 6 java.text.spi and java.util.spi interfaces.

We don't currently use these, and don't necessarily plan to. Full support
would have a run-time cost, and it's not obvious that it would be particularly
useful.

Code search can't actually find any users of this stuff in the wild outside
of the various VM implementations and their test suites.

Bug: 2497395
Change-Id: Ie25aef73ece6d1fd169fdcb7b2f847761d77914d
ava/util/spi/CurrencyNameProvider.java
ava/util/spi/LocaleNameProvider.java
ava/util/spi/LocaleServiceProvider.java
ava/util/spi/TimeZoneNameProvider.java
d1c610c2a641157df80aa8aefefc49393074f507 22-Mar-2010 Elliott Hughes <enh@google.com> Remove all remaining "@since Android" tags.

I've fixed a few typos, and removed a few of the more egregiously nonsensical
or incorrect comments that were nearby.

Change-Id: I35851baebd532f949cc269f4738a26eeb9b6e697
ava/io/FileOutputStream.java
ava/io/PrintStream.java
ava/io/SerializablePermission.java
ava/io/package.html
ava/lang/Cloneable.java
ava/lang/package.html
ava/lang/ref/package.html
ava/lang/reflect/package.html
ava/net/package.html
ava/util/ConcurrentModificationException.java
ava/util/NoSuchElementException.java
ava/util/package.html
055c2521fc7776a0651de9be5be0fbbd2b312e7b 22-Mar-2010 Elliott Hughes <enh@google.com> Add Java 6's java.util.Arrays changes.

I've kept our binary search implementation and just generalized the
interface.

I've gone out of my way to preserve exception priority. I know we don't
agree that it's necessary, but it is important if we want to be able to
run other people's tests. If someone wants to write a new high-quality
test suite (which would be a great thing to have), we should remove the
hacks. (I've commented them.) Otherwise, I've gone out of my way to keep
the near-duplicates forced on us by Java's primitive type system as
identical as possible.

This passes all harmony and jtreg tests.

Change-Id: I91fbf707dac76124c6dbe59b0b30b7ded9a69529
ava/util/Arrays.java
7b00ce846d4cdadceadb197e3d207946168970ed 18-Mar-2010 Elliott Hughes <enh@google.com> Add Java 6's Scanner.reset and fix RuleBasedCollator's javadoc.

(The harmony ScannerTest.java is quite different from ours, and doesn't test
this trivial method anyway.)

Bug: 2497395
Change-Id: I8b2b3db7233f766ef70bfdbfdcdfbd0f23e4bdb4
ava/util/Scanner.java
05d77746d9936ce913b6f4fa35c63e5945b0e7cb 17-Mar-2010 Elliott Hughes <enh@google.com> Add Java 6's new PipedReader/PipedInputStream constructors.

Also bring back the latest harmony java6 branch tests, and modify them to pass
with our deliberate [spec-compliant] exception changes.

Bug: 2497395
Change-Id: Ifb3f9bf48f8eec4120f9e59b03beb3969cfe0cd3
ava/io/PipedInputStream.java
ava/io/PipedReader.java
a845eec505ce5314b1a8be3d8dd6cc46bda782f7 17-Mar-2010 Elliott Hughes <enh@google.com> Add Java 6's ObjectStreamClass.lookupAny.

Also bring back the latest harmony java6 tests. We fail two of these tests,
but this is not a regression caused by this patch: our existing code fails
the same tests in the same way, so we already had the bugs and just didn't
know.

Bug: 2497395
Change-Id: I70412cdea747c30ea8d19a55d2ae5e73d3c59c1a
ava/io/ObjectStreamClass.java
e51cae060bf9543c7b786c3d7f297fab8a551acb 17-Mar-2010 Elliott Hughes <enh@google.com> Add Java 6's PrintStream.clearError/PrintWriter.clearError methods.

Also bring back the latest harmony java6 branch tests.

Bug: 2497395
Change-Id: I242e9a7d0446b46faaa5b28e0348806e999d8fdf
ava/io/PrintStream.java
ava/io/PrintWriter.java
705aafd104f0bd1a11de90afd85144de098f91c4 17-Mar-2010 Elliott Hughes <enh@google.com> Merge "Add Java 6's java.io.Console." into dalvik-dev
f7fb59f46848901875d317fdaa1008b63fd74ad2 17-Mar-2010 Elliott Hughes <enh@google.com> Add Java 6's java.io.Console.

This is actually functional, if you're in the mood to "adb shell".

The implementation is based on harmony's, but with the initialization and
native code rewritten, with readPassword responsible for echoing a newline (so
we don't have to play silly tricks with the ECHONL flag), and a vastly
simplified ConsoleReader class. I've also rewritten the documentation.

Change-Id: I902b47fb27a8fdb2d6f067bb905ee02c6a10e454
ava/io/Console.java
d9d263010b4b3fb039ecb88bddbc565414d82c63 16-Mar-2010 Elliott Hughes <enh@google.com> Remove dead fields, constants, and redundant pass-through methods.

(This is just preliminary to what I really want to do, which is vastly
reduce the number of near-duplicate methods we have: all the send/recv
variants, for example.)

Change-Id: Ib03653820a18f55aea6c5b876c397afd281a98dc
ava/net/Socket.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
ec4c445afc6d3449d901ec03f1a2973db01f66e1 13-Mar-2010 Elliott Hughes <enh@google.com> Merge "Remove dead obfuscatory code." into dalvik-dev
fdd13e86ec613e46b68376f90d2c89c2ac33b4b5 13-Mar-2010 Elliott Hughes <enh@google.com> Remove dead obfuscatory code.

Bug: 2509206
Change-Id: I72a34e1f80fd6936d255b94daf5683cc2a0f2327
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
08ec8fd5c950cb94e12aefa08c89d78762acf18a 12-Mar-2010 Elliott Hughes <enh@google.com> Java 6 java.io.File changes.

IOError and IOException are just copied from harmony. The native code
is all our own, and the File code is rewritten to match our earlier
changes. FileTest gains more tests for the new methods' behavior with
File("").

We still can't test most of this stuff directly because we run our tests
as root. Manual inspection looks good, though, and I've raised a bug
for switching our tests over to run as a non-root user.

I've removed all the Java 6 exceptions from expectations.txt because
we plan on fixing them all, and almost all of the ones mentioned there
are already addressed anyway.

Bug: 2497395
Change-Id: I517cd2d871bff64d63b2f4eb80fda4cfd6d19cd8
ava/io/File.java
ava/io/IOError.java
ava/io/IOException.java
49e79cdc1aadb2922178e8905a7907df0bdaf7b3 12-Mar-2010 Elliott Hughes <enh@google.com> Use ioctl(FIONREAD) rather than recv(MSG_PEEK) to implement Socket.available.

As well as avoiding unnecessary work, this also means we can reuse the native
code we already have for ioctl(FIONREAD), though we need to change the
interface to take FileDescriptor rather than int, and extract the int on the
native side.

Change-Id: I4c6d9e4e72e514e3e7872c7f882bda5441059915
ava/io/FileInputStream.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
77dd26ad0da51486d5dcfbc4da346f2acaa1c8fa 11-Mar-2010 Elliott Hughes <enh@google.com> Plug a resource leak with "finally" and make Object.getClass' return type match Java 6.

Change-Id: Ia8ae90634bfb3680c8e82e4e4cf7f7459263c3d3
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnectionImpl.java
acde9699a7a7395b42345d74629b92d50209b90f 11-Mar-2010 Elliott Hughes <enh@google.com> Throw UnknownFormatConversionException instead of AssertionError.

There's already a perfectly good exception to throw when we see
a format conversion we don't understand, and my assertion prevented
us from getting to the code that would have thrown it.

Change-Id: I38fdd95482a3d48e26b68b045444f45e94ffc26f
ava/util/Formatter.java
5820c2d5ea8199005b9c1c9dbf34b3d5cdbb8c10 11-Mar-2010 Elliott Hughes <enh@google.com> Tidy up java.lang.Math and java.lang.StrictMath.

Removes duplication, fixes typos, and removes some unnecessary object creation.
Note that otherwise-duplicated code that calls a native method needs to remain
duplicated, because the native methods have different implementations. Other
than that, it's not clear to me that the remaining textual differences (mainly
scalb and its implementation details) are meaningful, but it's not clear that
they're not, so I'm leaving them for now. We can always come back later.

This new code still passes all the junit and jtreg tests.

Change-Id: Ica28a01fd1469a162e05deccdb9e6f919246d9f3
ava/lang/Math.java
ava/lang/StrictMath.java
73342e0a7adba5a494309c1fcee0c64fee4f79f1 11-Mar-2010 Elliott Hughes <enh@google.com> Copy harmony's jdk6 Math and StrictMath.

There's some ugliness here I want to remove, but it'll be less confusing if
I commit the upstream code first without my changes...

...that said, I've reverted the upstream Math.pow change because it it's just
cruft; we already pass their tests and jtreg's more thorough pow tests (see
http://blogs.sun.com/darcy/entry/finding_a_bug_in_fdlibm). My guess is that
their real problem was that they were using the buggy fdlibm 5.2 until after
they made the Math.pow change. We've always used 5.3, so we were fine.

Change-Id: I5a6c080d9fd6b60dc7bf77ac10096a913766f512
ava/lang/Math.java
ava/lang/StrictMath.java
b43c9fb9c581d94304e9a54ec96cf4d752e8d917 10-Mar-2010 Elliott Hughes <enh@google.com> Add Java 6 additions to Double, Enum, Float, and String.

I rewrote the documentation for Double, Enum, and Float, but the "code" is the
same as harmony's. I rewrote the String code and wrote some tests to ensure
that a malicious Charset can't subvert String immutability.

I've also extracted the Android-specific bits of StringTest (which weren't
testing String at all) and brought back the latest harmony StringTest.java.

(The Class and Package changes are just to placate our API comparison tools.)

Bug: 2497395
Change-Id: Id57bda806891c3c85adfcb3b85eea8a8fad2c7b4
ava/lang/Double.java
ava/lang/Enum.java
ava/lang/Float.java
ava/lang/String.java
2f406841aa79db4c56a4357a20d271fb5cd598e1 10-Mar-2010 Elliott Hughes <enh@google.com> am 40bd3d28: Merge "Work around droiddoc bug http://b/2022288."

Merge commit '40bd3d28fb2f34f060e7413cc19eeeb195c0ff90' into dalvik-dev

* commit '40bd3d28fb2f34f060e7413cc19eeeb195c0ff90':
Work around droiddoc bug http://b/2022288.
3dd153c6795866734d66e6b5f69c40edae698f6d 10-Mar-2010 Elliott Hughes <enh@google.com> Work around droiddoc bug http://b/2022288.

Change-Id: Ib46a260916dee99f190aa8b9465f4f2d3b04aa67
ava/lang/String.java
7237ad6013b4b4eea62e270a1beb07fb400264a8 10-Mar-2010 Elliott Hughes <enh@google.com> am 16e0f24a: Another go at making droiddoc as happy as javadoc...

Merge commit '16e0f24a8641d1cdf059ae15a5bf60a3e553ce1b' into dalvik-dev

* commit '16e0f24a8641d1cdf059ae15a5bf60a3e553ce1b':
Another go at making droiddoc as happy as javadoc...
66c28d7bc60d6dbe470147a2be8b01717cb38f06 10-Mar-2010 Elliott Hughes <enh@google.com> Another go at making droiddoc as happy as javadoc...

Change-Id: I70dd8d57053a6e60b9be0cbe8a95d9937d9b00ef
ava/lang/String.java
9cfa09432e0b3060b8860c781774760343a8f6da 10-Mar-2010 Elliott Hughes <enh@google.com> am 1f6a0425: Fix javadoc errors.

Merge commit '1f6a0425433b4daca86cf4df5854b9dbc5ee57d7' into dalvik-dev

* commit '1f6a0425433b4daca86cf4df5854b9dbc5ee57d7':
Fix javadoc errors.
a7127f86d49f9a8b0f7af92e229fee4a0e2831cd 10-Mar-2010 Elliott Hughes <enh@google.com> Fix javadoc errors.

Change-Id: Ib3eb500006f5b4b1dadf959397fce7737fb53fe7
ava/lang/String.java
ava/util/Vector.java
b7da2eb9bf081ee86ed52a2c23ff0ef0b8aa9c97 09-Mar-2010 Elliott Hughes <enh@google.com> am a6d228d4: Merge "Minor documentation improvements."

Merge commit 'a6d228d44153ea2ee831eba1d41cd363989cdf7e' into dalvik-dev

* commit 'a6d228d44153ea2ee831eba1d41cd363989cdf7e':
Minor documentation improvements.
438d9883775e6ee31c097e2103a25571d2426cd9 09-Mar-2010 Elliott Hughes <enh@google.com> Minor documentation improvements.

Based on user-submitted bugs that were just misunderstandings, plus
implementation bugs caused by the intended behavior being somewhat
subtle.

Change-Id: Ic2606b5e57dadc95a35c2d0a977c01434a2fa28a
ava/lang/Double.java
ava/lang/Float.java
ava/lang/Integer.java
ava/lang/Iterable.java
ava/lang/Long.java
ava/lang/String.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
ava/util/ArrayList.java
ava/util/Enumeration.java
ava/util/HashMap.java
ava/util/Hashtable.java
ava/util/Iterator.java
ava/util/LinkedHashMap.java
ava/util/LinkedList.java
ava/util/Vector.java
f1072c37db1f647ab6bbbb9b866b699ef1e19ec3 09-Mar-2010 Elliott Hughes <enh@google.com> Fix a comment.

Change-Id: Iba79dbc04876d5c7cb93aba56541e7dda3c6f887
ava/net/ServerSocket.java
bf5d76daa288a111dcaa33b084a099948c52d200 09-Mar-2010 Elliott Hughes <enh@google.com> Merge "Implement the Java 6 NetworkInterface/InterfaceAddress functionality." into dalvik-dev
d2af45a6fd008ceb958ac74e5a50e582b8419e9c 05-Mar-2010 Elliott Hughes <enh@google.com> Implement the Java 6 NetworkInterface/InterfaceAddress functionality.

The Java bits are based on harmony's code (though only the bit that pulls
out the sub-interfaces is copied verbatim), but the native side is new
code, continuing our previous plan of (a) doing the least possible work
on the native side and (b) using the BSD getifaddrs(3) interface as our
portability layer.

This patch also updates our NetworkInterfaceTest to be the latest code
from harmony's java6 branch.

We pass all the harmony and jtreg tests, and visual inspection shows that
the untested (and hard to test) bits -- such as prefix length and hardware
address -- are correct.
ava/net/InetAddress.java
ava/net/InterfaceAddress.java
ava/net/NetworkInterface.java
b7d1452b9213e8add3e89209dc68f7be558e7c48 04-Mar-2010 Elliott Hughes <enh@google.com> am 042cc582: Merge "Don\'t call a method that can be overridden from File\'s constructors."

Merge commit '042cc58283c6a16db56fd758481388eee0f78619' into dalvik-dev

* commit '042cc58283c6a16db56fd758481388eee0f78619':
Don't call a method that can be overridden from File's constructors.
028794d8a42840233d3cb316feb09b5593f19d1d 04-Mar-2010 Elliott Hughes <enh@google.com> Don't call a method that can be overridden from File's constructors.

Bug: 2486943
ava/io/File.java
4f8f6c65064b494940fb8d4a41d86403d1f2ac3e 03-Mar-2010 Elliott Hughes <enh@google.com> Improve error checking and error reporting in java.util.Formatter.

This causes three new harmony failures, in tests specifically designed to
probe exception priorities (despite the fact that the RI explicitly doesn't
define exception priorities).

Comically, this same change actually fixes 24 jtreg tests that were failing
because of differences in exception priorities between harmony and the RI.

What I care about is that the new code is way easier to understand, shouldn't
waste as much space in our puny instruction caches, should be a more tempting
JIT target, and lets the actual formatting code assume that it's only ever
called in a valid way.

Bug: 2477140
ava/util/Formatter.java
31df07d33bf4730c76d5f11b802e8e2bd40baba9 03-Mar-2010 Elliott Hughes <enh@google.com> Add (but @hide) String.isEmpty and Locale.ROOT.
ava/lang/String.java
ava/util/Locale.java
2cf62473cac4347ffa293cb5f0dea4326b777509 01-Mar-2010 Elliott Hughes <enh@google.com> am 16525029: Merge "Fix a FormatFlagsConversionMismatchException bug I introduced in Froyo."

Merge commit '165250293744f0aadcb0a0bfba1b53b8a4fb99b7' into dalvik-dev

* commit '165250293744f0aadcb0a0bfba1b53b8a4fb99b7':
Fix a FormatFlagsConversionMismatchException bug I introduced in Froyo.
d6396db55bdc457bd8dfce23991aa9bf10b418e5 28-Feb-2010 Elliott Hughes <enh@google.com> Fix a FormatFlagsConversionMismatchException bug I introduced in Froyo.

We want to show the characters representing the flags, not the decimal
values of their ASCII representation. "Use overloading judiciously",
as the man says, or cause errors like this.

Seen in FRE56B (see https://android-git.corp.google.com/g/42528).
ava/util/Formatter.java
0a9a0a1a459ff7debb4ea5455a83e9cf5bb87730 28-Feb-2010 Elliott Hughes <enh@google.com> am 4d5e5a0f: Merge "Keep the order from getaddrinfo() unchanged if preferIPv6Addresses() is true."

Merge commit '4d5e5a0f65e3cca6662fac8e832712fba61b9d2c' into dalvik-dev

* commit '4d5e5a0f65e3cca6662fac8e832712fba61b9d2c':
Keep the order from getaddrinfo() unchanged if preferIPv6Addresses() is true.
eb238ef640a1eef7eec7c5b057ce0e14f762043c 24-Feb-2010 Elliott Hughes <enh@google.com> Fix "HttpUrlConnection.addRequestProperty replaces existing properties instead of append them".

The bug was actually that the copy constructor wasn't reconstructing the 'props'
list correctly. Upstream has applied the same fix, so I'm also bringing my
earlier change into sync with theirs, whitespace-wise (and removing no longer
necessary 'android-changed' tags).

Bug: http://code.google.com/p/android/issues/detail?id=6722
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
e3f55fef357e71daa6d56e838fbba31dcebe443e 17-Feb-2010 Elliott Hughes <enh@google.com> HTTP headers should be case-insensitive but case-preserving.

Bug: http://code.google.com/p/android/issues/detail?id=6684
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
a2a7fa1da77a6aaac09595f5712bc4a450ad2025 12-Feb-2010 Steinar H. Gunderson <sesse@google.com> Keep the order from getaddrinfo() unchanged if preferIPv6Addresses() is true.
ava/net/InetAddress.java
b2cebc7221ba9e3a58a7a37d7bc80459d611be0e 13-Feb-2010 Elliott Hughes <enh@google.com> Merge "Fix a few of our FindBugs "high" warnings." into dalvik-dev
deacd761e85ee4d75a6adbdd63225fc4a6d3088d 13-Feb-2010 Elliott Hughes <enh@google.com> Fix a few of our FindBugs "high" warnings.

RuleBasedBreakIterator was breaking the equals/hashCode contract.

Various classes were calling toString on arrays, which isn't very useful.

GregorianCalendar was missing a null/instanceof check. (FindBugs complained about
the former, but the super.equals would actually take care of that. The lack of
the explicit "instanceof" did mean that we could throw ClassCastException if you
had a Calendar that wasn't a GregorianCalendar, though. [Not easily testable,
and I hope we'll replace our calendars with ICU4J's before we actually have
another Calendar subclass.])

Collator's cache was broken, but luckily never had anything inserted into it
anyway.
ava/util/GregorianCalendar.java
8482ba207c66d3251d8c5ec0fb3f59d6995b6c02 13-Feb-2010 Elliott Hughes <enh@google.com> Merge "Use one method to create a Locale from a String." into dalvik-dev
b0e5963793d8980b349f8e553067c19fd31601c5 13-Feb-2010 Elliott Hughes <enh@google.com> Throw IllegalArgumentException if Currency.getInstance is given an invalid currency code.

This fixes an existing harmony DecimalFormatSymbolsTest failure, but I've added
an explicit test for clarity (and to reduce the likelihood of regression).
ava/util/Currency.java
aa3919543be785a76742c5ae2a753178cb2d928a 13-Feb-2010 Elliott Hughes <enh@google.com> Use one method to create a Locale from a String.

Bug: 2392157
ava/util/Locale.java
ava/util/ResourceBundle.java
18aa2ce5993b2f06e1d4d60c90d92fe4650b1d75 06-Feb-2010 Elliott Hughes <enh@google.com> Fix a bug I introduced to SimpleTimeZone with my Calendar.setTimeZone fix.

Our implementations of SimpleTimeZone and Calendar became mutually recursive
for custom time zones when I changed GregorianCalendar.computeFields to use
TimeZone.inDaylightTime --- SimpleTimeZone's implementation of inDaylightTime
creates a GregorianCalendar leading to a stack overflow looking something
like this...

at java.util.SimpleTimeZone.inDaylightTime(SimpleTimeZone.java:599)
at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:595)
at java.util.Calendar.complete(Calendar.java:819)
at java.util.Calendar.setTimeInMillis(Calendar.java:1319)
at java.util.GregorianCalendar.<init>(GregorianCalendar.java:339)
at java.util.GregorianCalendar.<init>(GregorianCalendar.java:325)
at java.util.SimpleTimeZone.inDaylightTime(SimpleTimeZone.java:599)

I've cut the knot by introducing "Grego" from ICU4J, and rewriting our
SimpleTimeZone.inDaylightTime in the style of ICU4J's implementation.

Maybe we'll be using the ICU4J calendar implementation sooner than I thought!
ava/util/Grego.java
ava/util/GregorianCalendar.java
ava/util/SimpleTimeZone.java
69bcb487b7317dde579a8ddc1a8094040ed7ae2b 04-Feb-2010 Elliott Hughes <enh@google.com> Minimal fix for Calendar.setTimeZone.

The interpretation of Calendar's competing member variables when the time,
time zone, and fields[] don't agree is confusing, and led to
Calendar.setTimeZone having no effect. I've improved the documentation
based on my reverse-engineering and fixed this bug. I noticed a lot of
other code that looks incorrect though, and I've raised http://b/2419810
suggesting that we switch to icu4j's calendars in the longer term.

Bug: http://code.google.com/p/android/issues/detail?id=6184
ava/util/Calendar.java
ava/util/GregorianCalendar.java
e5a4be15160c6f2cf54729ab29de21c0944dfbce 02-Feb-2010 Elliott Hughes <enh@google.com> Add a missing "static", found by FindBugs.
ava/net/AddressCache.java
2b1f1d31b83dbabc432a928bd30d443e01b16b46 30-Jan-2010 Elliott Hughes <enh@google.com> Fix fallback in Currency.getSymbol(Locale).

If ICU doesn't have any localized symbol for a currency, we're supposed to
return the currency code, not null.

I introduced this bug in my recent changes. The Currency tests don't find it,
but DecimalFormatTest.test_setCurrencyLjava_util_Currency does, by accident.
I've added an explicit test.
ava/util/Currency.java
f8ba29b25f7fc2ef93ab39a8ac436c94d55b3984 29-Jan-2010 Elliott Hughes <enh@google.com> Fix tests.api.java.io.SerializationStressTest3.test_18_116_writeObject.

The dead field 'minExponentDigits' was of type 'byte', not 'int'.

Also add detail to serialization exception messages (this isn't just test code ---
ObjectInputStream calls this).
ava/io/EmulatedFields.java
96474a05d47fcca92f7d511e41a20f994fc1e677 27-Jan-2010 Elliott Hughes <enh@google.com> Add a cache to Currency.getInstance(Locale).

Statically there are lots of calls to Currency.getInstance(String) in the
core libraries and only one to Currency.getInstance(Locale). This might
be why the former has a cache but the latter doesn't. Dynamically, looking
up Currency by Locale is a common operation because that one caller --
DecimalFormatSymbols -- is widely used, and it sets up its currency data
eagerly. (Which might be worth coming back and also fixing later.)
ava/util/Currency.java
ava/util/Formatter.java
rg/apache/harmony/luni/util/LocaleCache.java
2c93c5c6ee4d1b7d8d5a3f930fec46787e1d4c30 25-Jan-2010 Elliott Hughes <enh@google.com> Fix @link and @see tags.
ava/util/Formatter.java
4d756372aa8c13ec7710179a92543420b0f1e41a 23-Jan-2010 Elliott Hughes <enh@google.com> java.util.Formatter javadoc fix.
ava/util/Formatter.java
cb4ede2175f1678b1c27dfa74962f3493fb1fea3 23-Jan-2010 Elliott Hughes <enh@google.com> Fix java.util.Formatter "%tz".

Found by jtreg.
ava/util/Formatter.java
707352ffb98f15e7f832fc593ef6fc5f72854431 22-Jan-2010 Elliott Hughes <enh@google.com> Rewrite java.util.Formatter documentation.

Some guy on the internets pointed out that our documentation of argument
indexes was garbled. I fixed that, and then noticed that pretty much all
the documentation was close enough to be convincing but wrong enough to
not be very useful.

I've fixed everything I've found. The result isn't perfect, but it's good
enough that I could stand to use it myself now.
ava/util/Formatter.java
b2d899b733e6f9f130a13d3684a9318da7ef9b2f 21-Jan-2010 Elliott Hughes <enh@google.com> Fix String.format("%d", null) and relatives.

Must have been asleep at the wheel when I mistranslated this.

We need to get the number of test failures down so we don't have to rely
on our memories of how many test failures we're expecting to see.
ava/util/Formatter.java
7bf573490e6c41a9e8cb26b755bc01ad7cd41cce 21-Jan-2010 Elliott Hughes <enh@google.com> More java.util.Formatter performance work.

I got distracted into doing a bit more here, mainly speeding up the slow path
for integers. I've started to pull out some of the error checking too. We could
do a lot more along those lines, but then we'd fail even more jtreg tests which
assume a specific order in which checks are made. (I don't think we should
worry about that; I'm stopping here because this isn't what I wanted to do
today, not because I don't think we should press on. There's plenty of more
important stuff to look at first.)
ava/util/Formatter.java
4c5cbf2953ada194c4dc9d7b387615b1c6fe3e63 20-Jan-2010 Elliott Hughes <enh@google.com> One true way to query "java.net.preferIPv6Addresses".

Also stop querying and passing this boolean to code that doesn't care. (We
sort our InetAddress[]s appropriately, so most code doesn't need to worry
about this.)

Bug: http://code.google.com/p/android/issues/detail?id=5903
ava/net/DatagramSocketImpl.java
ava/net/InetAddress.java
ava/net/MulticastSocket.java
ava/net/Socket.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
048303b64df9c987ae2f57b6bf88ff5ac1b5cca0 16-Jan-2010 Elliott Hughes <enh@google.com> Rewrite InetAddress' DNS cache.

Replace harmony's two 5-element linked lists with a single 512-element
LinkedHashMap. Greatly reduce the time we spend under locks (and no network
I/O is done under a lock any more!). Take advantage of various properties
of how the cache is used to avoid having to do much explicit work to handle
expiry.

I've also optimized the usual no-SecurityManager/no custom system properties
configuring cache TTLs case (without making the slow path much slower than it
already was).

I've also updated the native method names to correspond to the C functions
they're really wrapping (rather than completely different IPv4-only ones
they probably used to wrap long ago).

I've also improved the InetAddress documentation.

Bug: 2320435
ava/net/AddressCache.java
ava/net/InetAddress.java
ava/net/NegCacheElement.java
ava/net/NegativeCache.java
aa6c33c1a15dc53c213a9b32d37ed0beb21cc91a 15-Jan-2010 Elliott Hughes <enh@google.com> Fix Formatter's behavior with %% and %n.

Yesterday's fix to the behavior with genuine null arguments didn't take into
account that we have format specifiers that don't take arguments. Fix the fix,
and add an explicit test.
ava/util/Formatter.java
9ded0f2cf1ca1e18923e3dd3313ee2adb9b37c74 15-Jan-2010 Ficus Kirkpatrick <ficus@android.com> Fix a NPE in java.util.Formatter.

A recent optimization to simple '%s' and '%d' formats was
failing to format null as "null". Also add a test.
ava/util/Formatter.java
e1e5e8e60af12f145c4dd0395e30069665f97529 14-Jan-2010 Elliott Hughes <enh@google.com> Fix Date.toString.

Date.toString was using the TimeZone id ("America/Los_Angeles") rather than
the time zone short name ("PDT" or "PST", depending on time of year). The
naive fix made things 5x slower, so I improved Resources.getDisplayTimeZone
so the fixed Date.toString is only 2x slower. This could be improved further
with a faster getDisplayTimeZone.

I hoped to replace the body of Date.toString with a call to SimpleDateFormat,
but that turns out to be 40x slower. This patch also optimizes SimpleDateFormat
to bring the gap down to 8x by using Resources.getDisplayTimeZone instead of
asking for all the strings.

(Note that these improvements refer to the hopefully common case of localized
strings for the default locale. If you have the misfortune to need strings for
other locales, the new code will be more like 600x faster. At 0.5s a call on
the fastest current hardware, I hope no-one's actually doing that.
Dalvik Explorer -- available on the Market -- needs to do it when generating
summary reports, and it is indeed ridiculously slow. It uses two
SimpleDateFormat objects per locale, so it takes 1s per locale, for about 60
locales. I've tested Dalvik Explorer with this patch, and it does fix that
pathological behavior.)

Also fix a bug I introduced in https://android-git.corp.google.com/g/36242 that
meant that our zone names String[][] contained incorrect values (accidentally
concatenating each successive value in a row), found by existing tests now we
use more of those values.

Also replace a couple of "new Integer" calls with Integer.valueOf for a modest
speedup.

Also factor out some duplication.

Bug: http://code.google.com/p/android/issues/detail?id=6013
ava/util/Date.java
aba52f92911e0faa4ae1907becc5a66cdb3254de 13-Jan-2010 Elliott Hughes <enh@google.com> Remove the last bits of the ICU ResourceBundle hack.

This patch switches us over to calling ICU directly for localized currency
symbols, and then removes all the mechanism for sneaking fake ResourceBundle
implementations in. The code's a lot simpler too, because ICU's default
behavior is what we want anyway.
ava/util/Currency.java
ava/util/ResourceBundle.java
fafc8016f5911d05053a6fd38c6349965647b0d3 13-Jan-2010 Elliott Hughes <enh@google.com> Fix a comment.
ava/util/Formatter.java
d8170b39f42e17cf6d01a8890dfb5f43a94b2f0c 13-Jan-2010 Elliott Hughes <enh@google.com> Make Formatter %d cost about the same as %s (i.e. 60% faster).

Fast-path "%d" and "%s", the only two cases that matter, so they don't have to
go through all the flags, width, and precision machinery unless flags, widths,
or precisions are actually specified.

This makes "%s" slightly but not significantly faster -- because I'd already
optimized that code for the default case pretty well -- but makes a huge
difference to "%d", which wasn't as amenable to general optimization.

I've also improved the identifiers and comments surrounding the date suffix,
after TraceView misled me into attempting to optimize this non-hotspot (though
to be fair, I'm only benchmarking on passion-eng with JIT; TraceView might be
telling the truth for a G1 without JIT).

TraceView also misled me into trying to optimize away the check for uppercase
conversion types at the end of Transformer.transform (by adding different bodies
to the uppercase entries in the switch directly above it), but that made no
convincing difference on passion-eng.

Bug: 2272346
ava/util/Formatter.java
71b856e4813468e5b5ad85e40ba7efdc18e748eb 12-Jan-2010 Elliott Hughes <enh@google.com> Shave another 10%-25% off Formatter.

Array indexing might be fast, but String.charAt is pretty fast, and
String.indexOf is pretty fast too, while String.toCharArray is really
rather expensive.

For a format string with no format specifiers, this is 25% faster. For
a format string with a single %s or %d format specifier (the common
cases in the Android codebase), this is about 10% faster.
ava/util/Formatter.java
974bc3b7d4ea2d802d06de8901aecfcaffce5e0d 11-Jan-2010 Jesse Wilson <jessewilson@google.com> Merge "Fixing our default HTTP Accept header to be spec-compliant."
398cf32a303a3b2a878a48cbae54be5ac23f7ecd 07-Jan-2010 Jesse Wilson <jessewilson@google.com> Fixing our default HTTP Accept header to be spec-compliant.

See bug http://code.google.com/p/android/issues/detail?id=5843

Also fixing a bug in the test webserver, where we weren't formatting
the headers properly. I'm dumbfounded how the tests passed previously;
although I fear that omitting the @TestTargetNew annotation might mean
that they weren't being run. I'll investigate that in a follow up.
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
c9a29bea2462417ebe58bdd3b4f6514d67b53610 08-Jan-2010 Jesse Wilson <jessewilson@google.com> The SecurityManager doesn't work, so advertise that shouldn't be used.
ava/lang/SecurityManager.java
96b251cd6e3aa354b86330da0c598d538151be0a 06-Jan-2010 Elliott Hughes <enh@google.com> Fix String.toLowerCase/toUpperCase for Azeri, Greek (all locales), and Turkish.

This patch fixes Greek final sigma in all locales, treats Azeri locales like
Turkish locales, and fixes our dotted/dotless-i/I behavior in Turkish locales
(and thus now Azeri locales too).

Still broken: behavior in Lithuanian locales, supplementary characters.

I've also removed String's own optimized-for-ASCII toLowerCase(char) and
toUpperCase(char): we've optimized Character's methods and don't want another
copy. I've removed the unused String.getValue which provided access to the
underlying char[] --- this wasn't used, and wouldn't work anyway without
some way to access String's 'offset' and 'count' fields too.
ava/lang/CaseMapper.java
ava/lang/String.java
33aa6eb602478e7f51ac16f30c88db3566022886 23-Dec-2009 Elliott Hughes <enh@google.com> Stop using ResourceBundle for locale data.

This offers an additional speed increase and gets rid of a lot of native code.
ava/util/Calendar.java
ava/util/Currency.java
2e3a41defb42a97b463194d859d2d4088a600fd8 21-Dec-2009 Elliott Hughes <enh@google.com> Speed up the way we access ICU's locale data.

This patch makes creating a new NumberFormat or new SimpleDateFormat 2x faster.

Basically, the ResourceBundle mechanism is really expensive in several ways:

1. The two-level caching is unnecessary for locale data, and expensive because
it burns through a lot of temporary objects.
2. The PrivilegedAction stuff is unnecessary and expensive because it too burns
quite a few temporary objects (including an ArrayList for each call; should
we consider removing support for SecurityManager so we can remove this cruft
from our code?).
3. The caching in most cases doesn't cache anything useful; the ResourceBundles
simply forward all questions straight to native code anyway, all we're
caching is an unnecessary forwarding object (in a cache where lookups cost
more than just creating a new unnecessary forwarding object would cost).

I've left CurrencyResourceBundle on the slow (ResourceBundle.getBundle) path
because I'm not yet sure how much of that path's semantics it relies on.

I still return LocaleResourceBundle instances (albeit via a much faster path)
but we should fix that. The native code returns an array which ResourceBundle
stuffs into a Hashtable and the calling code accesses via hash table lookups.
This despite the fact that the keys are a small fixed set known in advance.
We could make the native layer and the calling layer simpler and faster by
using a "struct", and doing so would make the middle layer go away completely.
ava/util/Calendar.java
ava/util/Currency.java
ava/util/Locale.java
ccb052344fadac2153c1ec998eb70a8dc41c8da1 20-Dec-2009 Elliott Hughes <enh@google.com> Fix Long.toBinaryString, Long.toHexString, and Long.toOctalString for negative values.

Although (int) -1 == (long) -1, Integer.toXString produces a shorter result than
Long.toXString should.
ava/lang/Long.java
cf85c7a465d494ba9f56fb3b5b6d57c7fbbb1798 18-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I1e941570

* changes:
Depessimize string conversions.
f787a8787d0b7bcdc178ffc2e3343f1c1b02ed30 18-Dec-2009 Elliott Hughes <enh@google.com> Depessimize string conversions.

Why does this idiom persist? It's ugly, and it's the least efficient way to do
it. (I found the ones in DecimalFormatSymbols while invesigating why
"new SimpleDateFormat()" burns through so many StringBuilders. grep(1) found
the rest.)

The DocumentBuilderImpl removes an unnecessary level of indirection, since we
implement Character.toString in terms of String.valueOf. (I wouldn't have
bothered except this was the only use of Character.toString in the core
libraries, and I added it myself a few weeks ago.)
ava/util/Date.java
386ddaf3659003b7188188b5d9af6cc95c61254f 18-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I60383632

* changes:
Update luni package to Harmony r888752.
4c2b8db255a9225079f5a1a942b76be1c242b7a7 17-Dec-2009 Elliott Hughes <enh@google.com> Improve our java.util.Locale documentation.

Bug: http://code.google.com/p/android/issues/detail?id=5476
ava/util/Locale.java
c93e26215cff24bc8c234b1b9268b03075e44ce4 17-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ice913bbd

* changes:
Make java.lang.Character fast.
c574d81e3de6cb92cf68bd44f7e50ac52fe2fd87 17-Dec-2009 Elliott Hughes <enh@google.com> Make java.lang.Character fast.

This patch reinstates some of the upstream ASCII fast paths, adds some new
ones, and forwards all char overloads to the int methods (placing the fast
paths in the int overload), so using the int overload isn't automatically
3x slower than the char overload even for the same characters.

See the bug for benchmark results. The ASCII speedups are between 2x and 4x.

Bug: 2295801
ava/lang/Character.java
9e13cc8ad982ba191400889bb8e5248a1933d45e 17-Dec-2009 Joshua Bloch <jjb@google.com> Fixed a bug int the new version of Long.reverse introduce in change Id6bd7c81.
The corresponding code in Hacker's Delight is written in C, which supports
unsigned numbers. In Java, it's essential to use explicit unsigned shifts,
but I neglected to do so. This bug was caught by jtreg test
java.lang.Long.BitTwiddle (which I wrote in 2003). This preexisting
test serves as the regression test for this change.
ava/lang/Long.java
c54a98f8a987a2ac35f3523b1dbe43588b1cc773 16-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Id6bd7c81

* changes:
Rewrote all the toString and bit twiddling code in Integer and Long using state-of-the-art recipes. The resulting code is much faster than what it replaced, as well as being more concise. While I was in the neighborhood I also cleaned up a few other things in the boxed primitives (TYPE fields, small-value caches, etc.).
55392539fea537abfb6581b474918f9d611fba27 16-Dec-2009 Jesse Wilson <jessewilson@google.com> Update luni package to Harmony r888752.

Conflicts:
libcore/luni/META-INF/MANIFEST.MF
libcore/luni/make/findbugs-exclude-filter.xml
libcore/luni/src/main/java/java/io/BufferedOutputStream.java
libcore/luni/src/main/java/java/io/BufferedReader.java
libcore/luni/src/main/java/java/io/CharArrayReader.java
libcore/luni/src/main/java/java/io/StringReader.java
libcore/luni/src/main/java/java/lang/StrictMath.java
libcore/luni/src/main/java/java/lang/ref/ReferenceQueue.java
libcore/luni/src/main/java/java/net/Inet4Address.java
libcore/luni/src/main/java/java/net/InetAddress.java
libcore/luni/src/main/java/java/util/ArrayList.java
libcore/luni/src/main/java/java/util/EnumSet.java
libcore/luni/src/main/java/java/util/HugeEnumSet.java
libcore/luni/src/main/java/org/apache/harmony/luni/internal/reflect/ProxyConstantPool.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/AbstractMemorySpy.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/DebugMemorySpy.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/Endianness.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/IFileSystem.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/IMemorySystem.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/INetworkSystem.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/IPlatformConstants.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/OSFileSystem.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/OSMemory.java
libcore/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java
libcore/luni/src/main/java/org/apache/harmony/luni/util/InputStreamExposer.java
libcore/luni/src/main/native/hyzip/shared/zipcache.c
libcore/luni/src/main/native/hyzip/shared/zipsup.c
libcore/luni/src/main/native/include/jni.h
libcore/luni/src/main/native/include/jni_types.h
libcore/luni/src/main/native/include/jvmti.h
libcore/luni/src/main/native/include/jvmti_types.h
libcore/luni/src/main/native/launcher/unix/main_hlp.c
libcore/luni/src/main/native/luni/shared/OSNetworkSystem.c
libcore/luni/src/main/native/luni/shared/file.c
libcore/luni/src/main/native/luni/windows/makefile
libcore/luni/src/test/api/unix/org/apache/harmony/luni/tests/java/io/UnixFileTest.java
libcore/luni/src/test/java/tests/api/java/io/BufferedOutputStreamTest.java
libcore/luni/src/test/java/tests/api/java/io/BufferedReaderTest.java
libcore/luni/src/test/java/tests/api/java/io/SerializationStressTest.java
libcore/luni/src/test/java/tests/api/java/net/SocketTest.java
libcore/luni/src/test/java/tests/api/java/util/ArrayListTest.java
libcore/luni/src/test/java/tests/api/java/util/EnumSetTest.java
libcore/luni/src/test/java/tests/api/java/util/TimerTest.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/io/CharArrayReader.java
ava/io/FilterOutputStream.java
ava/io/InputStreamReader.java
ava/io/LineNumberReader.java
ava/io/OutputStream.java
ava/io/OutputStreamWriter.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/io/StringReader.java
ava/io/Writer.java
ava/lang/StrictMath.java
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ava/net/InetAddress.java
ava/net/ServerSocket.java
ava/net/SocketPermission.java
ava/net/URL.java
ava/net/URLConnection.java
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ava/util/AbstractMap.java
ava/util/AbstractSet.java
ava/util/Collections.java
ava/util/EnumSet.java
ava/util/HugeEnumSet.java
ava/util/MiniEnumSet.java
ava/util/Stack.java
ava/util/Timer.java
ava/util/TreeMap.java
ava/util/TreeSet.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/internal/nls/messages.properties
rg/apache/harmony/luni/platform/AbstractMemorySpy.java
rg/apache/harmony/luni/platform/IMemorySystem.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/platform/RuntimeMemorySpy.java
rg/apache/harmony/luni/util/Base64.java
rg/apache/harmony/luni/util/ExposedByteArrayInputStream.java
rg/apache/harmony/luni/util/InputStreamExposer.java
rg/apache/harmony/luni/util/SneakyThrow.java
726ac583d69b37db03c6279af5b36df7b837ede1 15-Dec-2009 Joshua Bloch <jjb@google.com> Rewrote all the toString and bit twiddling code in Integer and Long using
state-of-the-art recipes. The resulting code is much faster than what it
replaced, as well as being more concise. While I was in the neighborhood
I also cleaned up a few other things in the boxed primitives (TYPE fields,
small-value caches, etc.).

Addressed review comments.
ava/lang/Boolean.java
ava/lang/Byte.java
ava/lang/Character.java
ava/lang/Double.java
ava/lang/Float.java
ava/lang/Integer.java
ava/lang/Long.java
ava/lang/Short.java
43738ceee7ba810bf0b84ff4dcd441a366975a5c 15-Dec-2009 Elliott Hughes <enh@google.com> Eclipse doesn't like that this class' directory didn't match its package.

Resolve in favor of the package declaration.
rg/apache/harmony/luni/InputStreamHelper.java
rg/apache/harmony/luni/util/InputStreamHelper.java
ee5af1749a3e4274baf177dc86d222c519086da9 14-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I1d96b51e

* changes:
Merge branch 'archive_888752' into archive_dalvik
f226fd4060db45a0738cbbc1bb49bebe5963ac11 10-Dec-2009 Elliott Hughes <enh@google.com> More java.io.File cleanup.

Make File.list (and friends) cost one JNI call instead of four,
and move the conversion of UTF-8 byte sequences into the JNI, so
it returns String[] instead of byte[][].

Switch to readdir_r(3) so we don't need the JNI to be "static
synchronized".

Remove fixed-length buffers from the native code.

Fix leaks by introducing a "proper" native container (similar to
std::forward_list). We should still investigate either using
std::vector or passing in an ArrayList<String> and using JNI to
call ArrayList.add, but this is a step forward from the old
code anyway.

Bug: 2281992
ava/io/File.java
f7c6911047d63bc76292f55ce538da32818dd931 10-Dec-2009 Jesse Wilson <jessewilson@google.com> Merge branch 'archive_888752' into archive_dalvik

Conflicts:
libcore/archive/build.xml
libcore/archive/src/main/java/java/util/jar/JarFile.java
libcore/archive/src/main/java/java/util/zip/GZIPInputStream.java
libcore/archive/src/main/java/java/util/zip/Inflater.java
libcore/archive/src/main/java/java/util/zip/InflaterInputStream.java
libcore/archive/src/main/java/java/util/zip/ZipEntry.java
libcore/archive/src/main/java/java/util/zip/ZipFile.java
libcore/archive/src/main/java/java/util/zip/ZipInputStream.java
libcore/archive/src/main/java/org/apache/harmony/archive/internal/nls/Messages.java
libcore/archive/src/main/java/org/apache/harmony/archive/internal/nls/messages.properties
libcore/archive/src/main/native/archive/unix/exports.txt
libcore/archive/src/main/native/archive/unix/makefile
libcore/archive/src/main/native/archive/windows/makefile
libcore/archive/src/main/native/archive_copyright.c
libcore/archive/src/main/native/jarfile.c
libcore/archive/src/main/native/java_util_zip_Deflater.c
libcore/archive/src/main/native/zip.c
libcore/archive/src/main/native/zipcache.c
libcore/archive/src/main/native/zlib/unix/makefile
libcore/archive/src/main/native/zlib/windows/makefile
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/AllTests.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarFileTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarInputStreamTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarOutputStreamTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/ManifestTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/Pack200Test.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/DeflaterOutputStreamTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/InflaterInputStreamTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/InflaterTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/ZipEntryTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/ZipFileTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/ZipInputStreamTest.java
rg/apache/harmony/luni/InputStreamHelper.java
a1e5d8a2c1594f7a6ed8aca6e82b106ec8ce79d6 09-Dec-2009 Elliott Hughes <enh@google.com> Fix java.util.Formatter formatting of -0.0.

The active ingredient here is the two changes to stop comparing longValue
with doubleValue and formatting the long if the two compare equal. This
causes us to lose the sign of 0 (because there's no long -0, but -0.0d == 0).
Instead, we explicitly test for boxed Double and Float arguments (because
the number of integral types is larger, they get the "else" clause).

The other changes are just minor cosmetic changes made as I followed the code.

Bug found by jtreg, so no new test.
ava/util/Formatter.java
d385bfc328b9d85901eec969a55afb28125f2b51 09-Dec-2009 Elliott Hughes <enh@google.com> Improve the FileNotFoundExceptions thrown by OSFileSystem.open.

When I improved the internals of java.io.File, I failed to keep
OSFileSystem.open (which uses the internals of java.io.File) in
sync, leading to misleading error reporting. java.io.File's
internals now include a trailing NUL, which is useful for the
native code but confuses Java if it tries to decode the byte[]
as a UTF-8 sequence.

This patch fixes the bug and also improves OSFileSystem.open's
error reporting to include the reason for the failure.

Bug: 2313271
rg/apache/harmony/luni/platform/OSFileSystem.java
932be7210341cec0742f00de7068e31902ae1636 08-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I8cdf9790

* changes:
Take Locale into account in java.util.Formatter uppercase conversions.
1f7da4ea71ba7423dc62ea7a8ff52482cc9fd4e8 08-Dec-2009 Elliott Hughes <enh@google.com> Take Locale into account in java.util.Formatter uppercase conversions.

(This is an RI incompatibility, but Sun accepts that the RI's behavior is a
bug.)

Bug: 2301938
ava/util/Formatter.java
0af4ef265f1e67edfcc5e34bcb68ee42a791beef 06-Dec-2009 Elliott Hughes <enh@google.com> More java.io.File cleanup.

Remove the duplication between the various list and listFiles methods.
This also makes the variants that take a filter no less efficient than
those that don't, for the special case of the null filter.

The upstream code sometimes assumed returned filenames were UTF-8, and
at other times assumed returned filenames were in the platform encoding.
The new code always uses UTF-8, to match filenames sent to the operating
system, which were and are always sent as UTF-8 byte sequences.

This patch does not alter the native listImpl method. That's for the
next patch.

A couple of unrelated cosmetic changes have been made in this patch:
declarations of native methods have been moved next to the methods
they implement, and a minor simplification has been made to the
documentation of isAbsolute.

Bug: 2281992
ava/io/File.java
9244d201851360f6ebfa95647a9f23caf8a34cd1 06-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I76f1dbe7

* changes:
More java.io.File cleanup.
070f14c41b2494fd008afc4d96b873873692945f 05-Dec-2009 Elliott Hughes <enh@google.com> More java.io.File cleanup.

Mostly cosmetic: improve documentation, factor out the code to join two
strings into a path, put fields in canonical order, defer to String (which
might be able to perform optimizations we can't), simplify the path
cleaning code.

Also remove more unused Windows support (since our File is already totally
broken on Windows anyway).

Bug: 2281992
ava/io/File.java
dc30337534e7970bb5b8cfbcb3c2b7f75d818795 05-Dec-2009 Elliott Hughes <enh@google.com> Improve TimeZone documentation.

We can't do anything about the RI's unfortunate choice of method names,
but improving our documentation might help reduce the confusion they
cause.

Bug: 2244560
ava/util/TimeZone.java
b7a82cf4a81de20455670855e2a9974a16102a52 05-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I97af6ec8

* changes:
More java.io.File cleanup.
93a4b2a6cc35a72aa5a58027025f3e18c0ec2e64 05-Dec-2009 Elliott Hughes <enh@google.com> More java.io.File cleanup.

Two changes:

1. Change the createNewFile JNI to match the Java interface, so we can lose the
glue. (Also make the Java/JNI names match, and sort the table of native method
names alphabetically.)

2. Fix the caching of the path byte sequence so we're caching the exact byte
sequence we want to hand to JNI. Also switch to caching the byte[] at
construction time, rather than hiding it behind an accessor.

There's a deliberate functional change here too: previously we were inconsistent
about which encoding was in use. Sometimes it was explicitly UTF-8, other times
the default platform encoding (which happens to be UTF-8 on Android). Now we
always use UTF-8. (But note that the File.list methods, which I haven't got to
yet, still return a mix of UTF-8 and platform-encoded strings.)

Bug: 2281992
ava/io/File.java
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/RandomAccessFile.java
bbf2a4b56f779b2c943862bb8c27d436a1e3b1ca 04-Dec-2009 Elliott Hughes <enh@google.com> Fix two trivial Formatter bugs (found by jtreg).

jtreg complains that we allow "%<%" and "%<n". This patch disallows
the special "last argument" case to conversions that don't take
arguments.

We also reject explicitly-numbered arguments such as "%123$n" or
"%123$%" (whether or not a corresponding argument was provided) though
the RI ignores such errors. I've modified the harmony tests to stop
passing unused argument indexes to %n and %%.

This fixes about 80 jtreg complaints (the java/util/Formatter/Basic test is
generated by shell script and seems to accidentally repeat many of the same
tests over and over).

This patch also includes a little more tidying for readability, but
no other functional changes.
ava/util/Formatter.java
9c4c0a1fa859879e1e8a2303fcef89e5d3ab4720 04-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I6d8a640c

* changes:
Make java.util.Formatter perform acceptably (and fix two jtreg failures).
9a501d6cb2a26c3b5d77497826ea33481716ab2d 02-Dec-2009 Elliott Hughes <enh@google.com> Make java.util.Formatter perform acceptably (and fix two jtreg failures).

Here are the slowdowns compared to hand-written StringBuilder.append code,
for three cases: a long format string with no format specifiers, a long
format string with a single %d, and a long format string with a
single %s (in that order):

passion-old: 54x 40x 10x
sim-new: 1.7x 3.4x 5.3x
passion-new: 9.2x 2.2x 1.8x

Formatter has been changed to use a less expensive mechanism for parsing
the format string, to not create expensive temporary objects unless they're
actually needed (particularly strings used only in error messages), to not
create a temporary StringBuilder in every transform* method, and to not
charge for padding (or truncation) unless actually required.

As Stroustrup would say, "you don't pay for what you don't use".

Other changes:

AbstractStringBuilder adds a special case for appending one StringBuilder to
another, similar to its existing special case for String (because we do a
much better job of copying a char[] with System.arraycopy than iterating over
a CharSequence).

Character reinstates the ASCII-range optimizations for isDigit and
isUpperCase, both of which are used by Formatter. Bug 2295801 covers
reinstating the rest of Character's special cases.

String loses the unused inner class ConsolePrintStream, which isn't actually
relevant to this change, but offended me greatly.

CharBuffer gets a rewritten toString that's less inefficient. (This doesn't
matter to us because the new Formatter doesn't use CharBuffer, but one
shouldn't leave broken glass on the lawn.)

The change to Formatter.close fixes a jtreg failure (and brings our
implementation in line with our documentation, which already stated that
multiple calls to Formatter.close only close the underlying Closeable
once).

The change to Formatter.format(Locale, ...) fixes a jtreg failure: any
Formattable we call out to needs to be able to use Formatter.locale to
find out the locale it's formatting for. I've reworded the documentation
so that it's clearer (it was already correct, but ambiguous).

Bug: 2272346
ava/lang/AbstractStringBuilder.java
ava/lang/Character.java
ava/lang/String.java
ava/util/Formatter.java
e693c3d04e1ab4f7d66e9a39e4698150749d2195 01-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I47b9b7f9

* changes:
DPQ Comment cleanup (and a few very minor code changes)
7d6b0007041b192e33858c38d099561237264cb0 01-Dec-2009 Joshua Bloch <jjb@google.com> Replaced all versions of binarySearch with better versions.
For float[] and double[], the new versions should run significantly faster than the old.
Removed some obsolete helper methods.
ava/util/Arrays.java
ef487e8906482e62f90487639ea3d6f4a565b564 01-Dec-2009 Joshua Bloch <jjb@google.com> DPQ Comment cleanup (and a few very minor code changes)
ava/util/DualPivotQuicksort.java
c5c9c667028146ab5f5e446c44f911c2fdd7dd30 30-Nov-2009 Elliott Hughes <enh@google.com> More java.io.File improvements.

Three themes to this change: not making unnecessary native calls (like the
pointless "exists" check in canWrite), being consistent in our
treatment of the empty path, and removing unnecessary cruft from the native
code.

I'm sure there must be a better implementation for handling the empty
path (the few methods for which it *isn't* invalid should be the special
cases, not every single method), but in this patch I'm just interested
in correctness.

With this patch, we pass the jtreg empty path test (which we previously
failed) and we pass my more complete test (added to FileTest.java in this
patch).

Bug: 2281992
ava/io/File.java
87415b1521402398d4470aecbef7c126a6948290 26-Nov-2009 Elliott Hughes <enh@google.com> Fix File.isHidden and File.listRoots.

Not only were the old implementations of these methods over-complicated, they
were both incorrect. We now pass all our existing tests plus the jtreg tests.

Bug: 2281992
ava/io/File.java
1072631d16a5e5ffd97ae346e20dcd112df9dc13 24-Nov-2009 Jesse Wilson <jessewilson@google.com> A few notes on why we don't cache canonical paths.
ava/io/File.java
fb917ba71e0440774660ba18a6725612c7ed79c5 24-Nov-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I9189bd9d

* changes:
Fix java.io.File's JNI's fixed-length buffers.
1326cfc6f105f6c8fd5ffd83793223e1a797409d 21-Nov-2009 Elliott Hughes <enh@google.com> Fix java.io.File's JNI's fixed-length buffers.

I've also removed most of the duplication, simplified a lot of the
implementation, and added loads of TODOs now it's possible to see
what's going on under all the obfuscation. (The native code is
roughly half its previous size, but more functional.)

I want to stop here rather than start fixing any of the TODOs
because this change is already large enough and the history will
be clearer if unrelated changes are kept separate (easy though many
of them are).

Strictly speaking, I haven't removed all the fixed-length buffers:
the File.list implementation still uses fixed-length buffers, but
as the new TODOs point out, I think we want to rewrite that code
to better match its callers, and doing so will make the fixed-length
buffers go away. There's no point polishing code that's already
scheduled for deletion.

Add a couple of basic tests, one that assumes that if Path copes
with long paths in a couple of File's methods, it works in all of
them; another that singles out our readlink(2) wrapper because
that's the only place so far where we cope with arbitrary-length
paths moving in the opposite direction (from kernel to JNI to Java).
ava/io/File.java
820172a7b862b4fa8c87684c7f16b08fbdf523cd 24-Nov-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I4bd6f817

* changes:
Replaced primitive sorts with Iaroslavski, Bentley, and Bloch's Dual Pivot Quicksort. The originals were based on Bentley and McIlroy's "Engineering a Sort Function." The original floating point sorts suffered from poor performance due to the use of a naive comparison function. In round numbers, the new version is 1.5x as fast as the old one on integers and twice as fast on floating point numbers (on the latest Android build running on Sholes). On some data sets (e.g., nearly sorted data, the new version is substantially faster.
2626284e3b8aa00ac87146a324854bbd40f0726f 12-Nov-2009 Joshua Bloch <jjb@google.com> Replaced primitive sorts with Iaroslavski, Bentley, and Bloch's Dual Pivot Quicksort.
The originals were based on Bentley and McIlroy's "Engineering a Sort Function."
The original floating point sorts suffered from poor performance due to the use
of a naive comparison function. In round numbers, the new version is 1.5x as fast
as the old one on integers and twice as fast on floating point numbers (on the
latest Android build running on Sholes). On some data sets (e.g., nearly sorted data,
the new version is substantially faster.

Now, with added performance tweaks from Jesse and Bob!! With these tweaks, the sort
is 70% faster than the original sort on integers and over twice as fast on doubles.
None of the optimizations are Dalvik-specific, and we may be able to make it even
faster by adding Dalvik-specific optimizations.

Also added beefier tests.
ava/util/Arrays.java
ava/util/DualPivotQuicksort.java
d2c1275661bbebbbb3fae30b6359f71f2628c4b3 21-Nov-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I9fa3ef2c

* changes:
Rewrite NetworkInterface's JNI for IPv6.
e004690c9eb948e9276aa9d4bb92d98f22bc879f 21-Nov-2009 Dan Egnor <egnor@google.com> am 070dbac8: am 0dfef7bc: Fix bugs created by caching NumberFormat & DecimalFormatSymbols objects

Merge commit '070dbac882856834111bc0e766224ee53c8d5471'

* commit '070dbac882856834111bc0e766224ee53c8d5471':
Fix bugs created by caching NumberFormat & DecimalFormatSymbols objects
ff30d8c3c306d660a58a9bad60e7256d372bc6e8 21-Nov-2009 Dan Egnor <egnor@google.com> Fix bugs created by caching NumberFormat & DecimalFormatSymbols objects
ava/util/Formatter.java
rg/apache/harmony/luni/util/LocaleCache.java
b5fc5ecd3fe5315fc2756c0c25adc458cc8c8d91 20-Nov-2009 Elliott Hughes <enh@google.com> Rewrite NetworkInterface's JNI for IPv6.

The old ioctl SIOCGIFCONF implementation of getNetworkInterfaces only returns
IPv4 addresses. Now we've switched everything over to IPv6, that's not good
enough. This change (a) implements glibc/BSD-like getifaddrs(3)/freeifaddrs(3)
for Android, and (b) rewrites our getNetworkInterfaces to use that method. Of
particular note is that we now do more of the work in Java. The JNI hands back
a Java equivalent of getifaddrs(3)'s linked list of ifaddrs structs. The new
package-private java.net.InterfaceAddress class serves as Java's "struct
ifaddrs".

The old implementation was also broken: SIOCGIFCONF doesn't actually return
interface indexes from the kernel as the old code believed, so we were
pulling the address family out of the IPv4 address it returned, leading
us to assign the index 2 to all network interfaces. This caused all kinds of
weird behavior later.

I also had to fix GenericIPMreq so that its interface index field is actually
set. The native code gets passed one of these objects when setNetworkInterface
is called, so it's kind of important that the object identify which interface
it's supposed to correspond to.

I've also added missing copyright headers.

This fixes all of the harmony tests on the simulator and on the device. It
fixes several but not all of the jtreg MulticastSocket and IPv6 tests.
ava/net/InterfaceAddress.java
ava/net/NetworkInterface.java
rg/apache/harmony/luni/net/GenericIPMreq.java
d3012a3bff31557a81c74c1ef1b50ef556b38967 20-Nov-2009 Elliott Hughes <enh@google.com> Implement ZoneInfo.toString for debugging convenience.

Bug: 2276903
rg/apache/harmony/luni/internal/util/ZoneInfo.java
d5011e8caf816d71ac85243e3c5f6343e362236c 18-Nov-2009 Dan Egnor <egnor@google.com> am 50f82ad4: am 08e0023c: Merge change I42d17725 into eclair-mr2

Merge commit '50f82ad4f2c4047382029560fd09d1907518adc8'

* commit '50f82ad4f2c4047382029560fd09d1907518adc8':
Cache NumberFormat and DecimalFormatSymbols objects in a ThreadLocal,
84a0540c3925ef1e48ea3ef310db76adce1246fa 18-Nov-2009 Dan Egnor <egnor@google.com> Cache NumberFormat and DecimalFormatSymbols objects in a ThreadLocal,
so they can be reused between multiple instances of Formatter on the
same thread. This speeds up my unscientific benchmark (a number of
printouts involved in a debugging diagnostics output) by 3x, and
should have a similar impact on anyone who uses String.format(),
PrintWriter.format(), and the like.
ava/util/Formatter.java
rg/apache/harmony/luni/util/LocaleCache.java
3cc642cb0627dd99441bf90f72054de81a5948cf 22-Sep-2009 Elliott Hughes <enh@google.com> Fix Formatter.format's handling of Formattable.

This doesn't make much difference to performance, but it is
slightly faster and I think it reads better too. Proof of the
latter is the fact that the rewritten form accidentally fixed
bug 1767: the old code was storing up literal text until after
handling the next format specifier, which is wrong if the
format specifier has side effects caused by the use of
Formattable.

(I don't plan on doing any more on the performance bug for now,
though I note that %g allocates and manipulates BigDecimal
instances, which would be worth looking at when we get round to
the bug that causes it to fail a harmony test.)

Bug: 1476, 1767
ava/util/Formatter.java
c707cc4edeee6a6bf62a8da4d6d223ae61025dd9 21-Sep-2009 Elliott Hughes <enh@google.com> Consistently use Formatter's cached NumberFormat.

%f is a lot more expensive than it should be because we're not using the cached
NumberFormat (as we are for %d). Running the microbenchmark I added to the
bug (times in ms, on a Cortex A8):

old new
new Formatter %f 1732 811
String.format %d 635 651
String.format %f 1752 900
reuse Formatter %f 1521 188
Double.toString + 149 148
Double.toString append 33 33
StringBuilder.append 143 139

Bug: 1476
ava/util/Formatter.java
e40c9e3935a5024c0f3ebfb3f1441fcd5c48ed86 12-Nov-2009 Elliott Hughes <enh@google.com> Fix HttpURLConnection's chunked encoding behavior.

A third-party developer who wasn't reading to the end of the stream found that
their next connection would return junk, which turned out to be the tail of
the first response (thanks to connection recycling). Make sure we clean up
a chunked-encoding stream before allowing the connection to be reused.

Enhance our test web server to implement chunked encoding properly, with
configurable chunk sizes, rather than just responding with a single chunk.

Bug: http://code.google.com/p/android/issues/detail?id=2939
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
7861ea9a813b337a4abd0378584baae9cc177896 12-Nov-2009 Elliott Hughes <enh@google.com> Remove OSNetworkSystem.oneTimeInitialization.

Do this work at JNI registration time, as we do for almost everything else.
(I did this to rule out a warning from the dalvikvm deadlock prediction
code, which doesn't like the unusual lock ordering at initialization time,
and although it didn't make any difference to that, I prefer to have a
defined static order of initialization.)
ava/net/DatagramSocket.java
ava/net/ServerSocket.java
ava/net/Socket.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
ba563a4578c970b0c750464c7efe7ec5dc0ad2c1 05-Nov-2009 Elliott Hughes <enh@google.com> More OSNetworkSystem cleanup.

Handle select(2) errors by throwing exceptions from native code (which is
simpler and provides more useful detail messages).

Factor out exception throwing commonality. This is probably ready for JNIHelp.h
now.

Remove sockSelect. Simplify selectWait by observing that it's only ever called
with a "read" fdset.

Remove a little more SOCKERR_* cruft.

Remove a few unused #defines.
rg/apache/harmony/luni/platform/OSNetworkSystem.java
8be18649646b73d011c4d8aab802ca739dadec32 03-Nov-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I22212019

* changes:
Kill OSNetworkSystem.inheritedChannelImpl.
d15a2c34e554c7180936ee0325b414a47a6cca0b 03-Nov-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ie098e2fa

* changes:
Fixing PipedWriters/PipedOutputStreams silent failures during close().
21d6937a70c255b47b707a995c1f9e76a5460fa4 03-Nov-2009 Elliott Hughes <enh@google.com> Kill OSNetworkSystem.inheritedChannelImpl.

This code is broken (and more broken than upstream), and not obviously relevant
to our platform. Let's make it clear that all this currently does is return
null.

The changes in the Java side bring us back in sync with upstream.
rg/apache/harmony/luni/platform/OSNetworkSystem.java
da1bdbd09a1f6c394fa9d4210de9db0b570ac1fd 02-Nov-2009 Jesse Wilson <jessewilson@google.com> Fixing PipedWriters/PipedOutputStreams silent failures during close().

See bug 2224903 and jtreg test java.io.BufferedWriter.Cleanup.
ava/io/PipedInputStream.java
ava/io/PipedOutputStream.java
ava/io/PipedReader.java
ava/io/PipedWriter.java
22775bf8e06b7a5099c54b82c2065523377e1904 02-Nov-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I318b1449

* changes:
More OSNetworkSystem cleanup.
a9a57f2581773484d13e160fd3407692e825971a 31-Oct-2009 Elliott Hughes <enh@google.com> More OSNetworkSystem cleanup.

valgrind didn't like what we were doing here, specifically the way we
were setting ss_family to AF_INET if getsockopt IP_MULTICAST_IF didn't
return an AF_INET address, and ignoring the fact that the rest of
the sockaddr_storage doesn't necessarily correspond to an AF_INET address.
Linux seems to return an AF_UNSPEC address (rather than INADDR_ANY) if we
haven't set a multicast interface, so we have to do the conversion ourselves.

More disturbingly (and unfixed by this patch) we sometimes see ss_family
come back as 127 (when AF_MAX is 32 on our system). My guess is that the
kernel is just handing back bad data we gave it earlier, but I'll come back
to see about fixing multicast properly later.

I've inlined socketAddressToString into osNetworkSystem_byteArrayToIpString,
its only caller, because it's clearer that way now we've simplified the
division of error handling between the two.

I've brought getSocketLocalAddressImpl and getSocketLocalPortImpl in line
with each other and changed them to at least log errors. I've also added
a new test that fails, to demonstrate that this implementation is broken
as designed.

I've changed the name of JAVASOCKOPT_IP_MULTICAST_IF to match the Java
constant.

I've fixed the exception we throw if we're asked to convert a bad address
family's address from code that can't throw IOException --- AssertionError
doesn't have a String constructor. Really, we need to kill this code, so
I've added a TODO.

I've also made a real push to get rid of most of the SOCKERR_*-based error
reporting. (I had a transient failure with a meaningless error message
that sent me to the source to work out which errno it was actually
trying to report.)

I've changed setTTL to call setTimeToLive, and change the implementation
of the latter to pass Integer rather than Byte to the native implementation,
since that's what the native code needs anyway and native Byte support was
only for TTL.

Bug: 2225748
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
82a2dfcd2281c2f8042fd5f09c98bea1e728530f 30-Oct-2009 Jesse Wilson <jessewilson@google.com> Fixing 1 of the 4 BufferedReader test failures in bug 2224903.

This CL includes the following functional changes:
- changing read to not clear the mark upon reading EOF
- changing read(char[], int, int) to use the 'read
directly from the source stream' shortcut when the
mark has exceeded its limit. Previously we took the
shortcut only when the mark was unset.

And these nonfunctional changes
- rewrote read(char[], int, int) dramatically. The new
revision contains only one call to 'System.arrayCopy'
and the related bookkeeping. Previously there was one call
before the loop, and another call in the loop.
- renamed markpos to mark
- renamed marklimit to markLimit
- renamed count to end (it isn't a count, it's a position)
- simplifying conditions that used >= when > was impossible
- reducing the number of field reads where convenient
ava/io/BufferedReader.java
85791bb7e2a5102f0472cbd0328c853f6ab39261 28-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I8c671e53

* changes:
Implement ProcessBuilder.redirectErrorStream.
1805727c24b2b80161fef93c4b7742cf2322bdea 27-Oct-2009 Elliott Hughes <enh@google.com> Implement ProcessBuilder.redirectErrorStream.

Also simplify and correct the security to ensure that the user can't modify
the command to be executed after the SecurityManager has approved it.

Bug: 2180063
ava/lang/ProcessBuilder.java
d9179c4701153caeb821cf3da639b28465317508 27-Oct-2009 Elliott Hughes <enh@google.com> Remove OSNetworkSystem.sendStream and all use of ErrorCodeException.

Removing OSNetworkSystem.sendStream brings us in line with harmony. I've
also rewritten writeSocketImpl to not make a temporary copy of the data it's
going to send.

The weird code in writeSocketDirectImpl that threw ErrorCodeException turns out
to be a very awkward way of returning zero to the only two callers that are
paying attention. (Harmony actually calls the equivalent of this code every
time it throws SocketException from native code, but these two callers were
the only places that checked for the special case.)
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/util/ErrorCodeException.java
954754fc999fb5fb747f7928302639d16dd3ac7e 23-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I3628c655

* changes:
OSMemorySystem.mmap fixes.
3c6ff817ba94b64cf24014acff7201859410fb13 23-Oct-2009 Elliott Hughes <enh@google.com> OSMemorySystem.mmap fixes.

Stop silently truncating the arguments to mmap. Check they're actually valid.

Fix mmap to actually throw IOException on error, as it claimed to do.

Correct parameter name 'alignment' to 'offset'.

Remove dead code (getPageSize).
rg/apache/harmony/luni/platform/IMemorySystem.java
rg/apache/harmony/luni/platform/OSMemory.java
70882923fb227de7a54a9b1a2a4dd2c6ec8b51ae 22-Oct-2009 Elliott Hughes <enh@google.com> Remove OSNetworkSystem.receiveStream.

Harmony removed this some time ago, and -- if we change our read/readDirect
implementations slightly -- we can too.

I've also added some bounds checking in the Java so we don't ask native code
to perform a buffer overrun for us.

I've also rewritten the native readSocketImpl to use GetByteArrayElements and
ReleaseByteArrayElements rather than its own custom stack/heap allocation and
arbitrary 64KiB limit. (As far as I can tell from the harmony history, the
limit dates from when they always read into an on-stack buffer, and was never
removed.)

I've also brought us in line with harmony so we only pass 'address' to
readDirect, rather than 'address' and 'offset'.

I've changed SocketTest to match upstream and -- since they pulled out some
of the tests into a new file -- I've added their UnixSocketTest so we don't
miss out. Our old SocketTest's test_getInputStream is the only test my new
code doesn't pass, but I think the old SocketTest was broken and the new
SocketTest/UnixSocketTest is correct.

I've also brought us back into line with harmony's MulticastSocketTest. With
the up-to-date tests, the new code behaves the same as the old code. (With
our old tests, the new code fails the joinGroup test with a
NullPointerException instead of a junit comparison failure.)
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
b150dcd6a072b41df6b010a60977a1657a7bdfa5 21-Oct-2009 Elliott Hughes <enh@google.com> More OSNetworkSystem cleanup.

Rewrite OSNetworkSystem.connect in terms of connectStreamWithTimeoutSocketImpl
in Java rather than in native code. Remove OSNetworkSystem.connectSocketImpl.
Make INetworkSystem.connect void, since the return value is always 0.

Use TEMP_FAILURE_RETRY rather than explicit do loops to retry interrupted
system calls.

Fix peekDatagramImpl to actually update the byte[] in the passed-in
InetAddress.

Stop pulling the int fd out of the FileDescriptor each time round the loop
in sendStreamImpl and sendDatagramImpl2.

More tiny steps towards eliminating the SOCKERR_ nonsense in favor of errno.

Prefer sizeof(variable) to sizeof(type).

Remove a few more superfluous "struct" keywords.
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
08091cfcf0fd89cb0021718d56501535b57a90e2 20-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I7cc0fe4d

* changes:
rightsize StringBuilders for arrays; see bug 2135223
4030ad60f305d1f23e9b681dca7a181ab4f09276 20-Oct-2009 Jesse Wilson <jessewilson@google.com> Removing caching of file canonical path caching, and fixing NIO tests.

I checked in some regressions in the NIO test cases with the NIO patch;
this addresses those problems.
ava/io/File.java
rg/apache/harmony/luni/internal/io/FileCanonPathCache.java
388ae438a01d2de1e0f9c6a95ab5ad71e5e21f60 19-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I1f575e9e

* changes:
Improve error handling in InetAddress native code.
fc354fea0c535ceef679e8856a73dd05be8351df 17-Oct-2009 Elliott Hughes <enh@google.com> Improve error handling in InetAddress native code.

Fix a bug where we changed the return values of functions such
as byteArrayToSocketAddress without changing the logic in the
callers that's supposed to distinguish success and failure.
For simplicity, I've switch all of these functions over to
returning bool, and I've gone through all the callers to ensure
we're using the right check now. (This is the majority of the
diff.)

Also switch to throwing IllegalArgumentException instead of SocketException
when we find ourselves with a bad byte[] --- before we were throwing
a checked exception we weren't allowed to (from native code, which
can't actually be checked statically) and then trying to cover up
in Java.

I've also simply removed one case where we were trying to mask an
OutOfMemoryError with a SocketException.

I also removed dead code in socketAddressToString: this function's
sole caller always passed false for withPort. This makes the
temporary variable and the copying (which was unsafe) unnecessary.

In instances where I was already changing the code, I've removed
bogus "handle == 0" failures, but I'll come back and remove all
the other instances in another patch.

Since I was in connectSocketImpl, I've removed the dead second half
of that method.
ava/net/InetAddress.java
9fa1c846e67286c6cd0030ebb455841a4a893540 16-Oct-2009 Jesse Wilson <jessewilson@google.com> rightsize StringBuilders for arrays; see bug 2135223
ava/util/Arrays.java
b869baf43ffd3d81098c6a68b9d9af6791119a7f 16-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I2e354493

* changes:
Update NIO and NIO char packages to Harmony 802921.
eaa2ff09069424b0f7a95c7cd831cef1b744fe67 16-Oct-2009 Jesse Wilson <jessewilson@google.com> Update NIO and NIO char packages to Harmony 802921.

Notable changes:
- We don't use Harmony's new indexing for SelectorImpl. See the long bug
thread on Harmony's site, https://issues.apache.org/jira/browse/HARMONY-6312
This patch includes the latest Harmony changes to SelectorImpl, which
have been optimized since this patch was first created.
- Several uses of StringBuffer updated to use StringBuilder
- CharBuffer.read implementation changes
- Additional checking in CharsetEncoder
- Some inner classes made static
- Harmony changed their Charset impl from ICU to Java. We're sticking with ICU.
- Harmony added support for epoll. We're sticking with standard 'poll'.

commit 2ed6cb602a52f4681afbf1348928f1b0c36d914d
Merge: 8a74fca bcc5ec7
Author: Jesse Wilson <jessewilson@google.com>
Date: Fri Aug 14 15:14:10 2009 -0700

Merge branch 'nio_802921' into nio_dalvik

Conflicts:
libcore/nio/.classpath
libcore/nio/META-INF/MANIFEST.MF
libcore/nio/build.xml
libcore/nio/make/exclude.linux.x86.drl
libcore/nio/make/exclude.linux.x86.ibm
libcore/nio/make/exclude.linux.x86_64.drl
libcore/nio/src/main/java/java/nio/BaseByteBuffer.java
libcore/nio/src/main/java/java/nio/Buffer.java
libcore/nio/src/main/java/java/nio/BufferOverflowException.java
libcore/nio/src/main/java/java/nio/BufferUnderflowException.java
libcore/nio/src/main/java/java/nio/ByteBuffer.java
libcore/nio/src/main/java/java/nio/ByteOrder.java
libcore/nio/src/main/java/java/nio/CharArrayBuffer.java
libcore/nio/src/main/java/java/nio/CharBuffer.java
libcore/nio/src/main/java/java/nio/CharSequenceAdapter.java
libcore/nio/src/main/java/java/nio/CharToByteBufferAdapter.java
libcore/nio/src/main/java/java/nio/DirectByteBuffer.java
libcore/nio/src/main/java/java/nio/DirectByteBuffers.java
libcore/nio/src/main/java/java/nio/DoubleArrayBuffer.java
libcore/nio/src/main/java/java/nio/DoubleBuffer.java
libcore/nio/src/main/java/java/nio/DoubleToByteBufferAdapter.java
libcore/nio/src/main/java/java/nio/FloatArrayBuffer.java
libcore/nio/src/main/java/java/nio/FloatBuffer.java
libcore/nio/src/main/java/java/nio/FloatToByteBufferAdapter.java
libcore/nio/src/main/java/java/nio/HeapByteBuffer.java
libcore/nio/src/main/java/java/nio/IntArrayBuffer.java
libcore/nio/src/main/java/java/nio/IntBuffer.java
libcore/nio/src/main/java/java/nio/IntToByteBufferAdapter.java
libcore/nio/src/main/java/java/nio/InvalidMarkException.java
libcore/nio/src/main/java/java/nio/LongArrayBuffer.java
libcore/nio/src/main/java/java/nio/LongBuffer.java
libcore/nio/src/main/java/java/nio/LongToByteBufferAdapter.java
libcore/nio/src/main/java/java/nio/MappedByteBuffer.java
libcore/nio/src/main/java/java/nio/MappedByteBufferAdapter.java
libcore/nio/src/main/java/java/nio/ReadOnlyBufferException.java
libcore/nio/src/main/java/java/nio/ReadOnlyCharArrayBuffer.java
libcore/nio/src/main/java/java/nio/ReadOnlyDirectByteBuffer.java
libcore/nio/src/main/java/java/nio/ReadOnlyDoubleArrayBuffer.java
libcore/nio/src/main/java/java/nio/ReadOnlyFloatArrayBuffer.java
libcore/nio/src/main/java/java/nio/ReadOnlyHeapByteBuffer.java
libcore/nio/src/main/java/java/nio/ReadOnlyIntArrayBuffer.java
libcore/nio/src/main/java/java/nio/ReadOnlyLongArrayBuffer.java
libcore/nio/src/main/java/java/nio/ReadOnlyShortArrayBuffer.java
libcore/nio/src/main/java/java/nio/ReadWriteCharArrayBuffer.java
libcore/nio/src/main/java/java/nio/ReadWriteDirectByteBuffer.java
libcore/nio/src/main/java/java/nio/ReadWriteDoubleArrayBuffer.java
libcore/nio/src/main/java/java/nio/ReadWriteFloatArrayBuffer.java
libcore/nio/src/main/java/java/nio/ReadWriteHeapByteBuffer.java
libcore/nio/src/main/java/java/nio/ReadWriteIntArrayBuffer.java
libcore/nio/src/main/java/java/nio/ReadWriteLongArrayBuffer.java
libcore/nio/src/main/java/java/nio/ReadWriteShortArrayBuffer.java
libcore/nio/src/main/java/java/nio/ShortArrayBuffer.java
libcore/nio/src/main/java/java/nio/ShortBuffer.java
libcore/nio/src/main/java/java/nio/ShortToByteBufferAdapter.java
libcore/nio/src/main/java/java/nio/channels/AlreadyConnectedException.java
libcore/nio/src/main/java/java/nio/channels/AsynchronousCloseException.java
libcore/nio/src/main/java/java/nio/channels/ByteChannel.java
libcore/nio/src/main/java/java/nio/channels/CancelledKeyException.java
libcore/nio/src/main/java/java/nio/channels/Channel.java
libcore/nio/src/main/java/java/nio/channels/Channels.java
libcore/nio/src/main/java/java/nio/channels/ClosedByInterruptException.java
libcore/nio/src/main/java/java/nio/channels/ClosedChannelException.java
libcore/nio/src/main/java/java/nio/channels/ClosedSelectorException.java
libcore/nio/src/main/java/java/nio/channels/ConnectionPendingException.java
libcore/nio/src/main/java/java/nio/channels/DatagramChannel.java
libcore/nio/src/main/java/java/nio/channels/FileChannel.java
libcore/nio/src/main/java/java/nio/channels/FileLock.java
libcore/nio/src/main/java/java/nio/channels/FileLockInterruptionException.java
libcore/nio/src/main/java/java/nio/channels/GatheringByteChannel.java
libcore/nio/src/main/java/java/nio/channels/IllegalBlockingModeException.java
libcore/nio/src/main/java/java/nio/channels/IllegalSelectorException.java
libcore/nio/src/main/java/java/nio/channels/InterruptibleChannel.java
libcore/nio/src/main/java/java/nio/channels/NoConnectionPendingException.java
libcore/nio/src/main/java/java/nio/channels/NonReadableChannelException.java
libcore/nio/src/main/java/java/nio/channels/NonWritableChannelException.java
libcore/nio/src/main/java/java/nio/channels/NotYetBoundException.java
libcore/nio/src/main/java/java/nio/channels/NotYetConnectedException.java
libcore/nio/src/main/java/java/nio/channels/OverlappingFileLockException.java
libcore/nio/src/main/java/java/nio/channels/Pipe.java
libcore/nio/src/main/java/java/nio/channels/ReadableByteChannel.java
libcore/nio/src/main/java/java/nio/channels/ScatteringByteChannel.java
libcore/nio/src/main/java/java/nio/channels/SelectableChannel.java
libcore/nio/src/main/java/java/nio/channels/SelectionKey.java
libcore/nio/src/main/java/java/nio/channels/Selector.java
libcore/nio/src/main/java/java/nio/channels/ServerSocketChannel.java
libcore/nio/src/main/java/java/nio/channels/SocketChannel.java
libcore/nio/src/main/java/java/nio/channels/UnresolvedAddressException.java
libcore/nio/src/main/java/java/nio/channels/UnsupportedAddressTypeException.java
libcore/nio/src/main/java/java/nio/channels/WritableByteChannel.java
libcore/nio/src/main/java/java/nio/channels/spi/AbstractInterruptibleChannel.java
libcore/nio/src/main/java/java/nio/channels/spi/AbstractSelectableChannel.java
libcore/nio/src/main/java/java/nio/channels/spi/AbstractSelectionKey.java
libcore/nio/src/main/java/java/nio/channels/spi/AbstractSelector.java
libcore/nio/src/main/java/java/nio/channels/spi/SelectorProvider.java
libcore/nio/src/main/java/org/apache/harmony/nio/AddressUtil.java
libcore/nio/src/main/java/org/apache/harmony/nio/FileChannelFactory.java
libcore/nio/src/main/java/org/apache/harmony/nio/internal/DatagramChannelImpl.java
libcore/nio/src/main/java/org/apache/harmony/nio/internal/DirectBuffer.java
libcore/nio/src/main/java/org/apache/harmony/nio/internal/FileChannelImpl.java
libcore/nio/src/main/java/org/apache/harmony/nio/internal/FileLockImpl.java
libcore/nio/src/main/java/org/apache/harmony/nio/internal/IOUtil.java
libcore/nio/src/main/java/org/apache/harmony/nio/internal/MappedByteBufferFactory.java
libcore/nio/src/main/java/org/apache/harmony/nio/internal/ReadOnlyFileChannel.java
libcore/nio/src/main/java/org/apache/harmony/nio/internal/ReadWriteFileChannel.java
libcore/nio/src/main/java/org/apache/harmony/nio/internal/SelectorImpl.java
libcore/nio/src/main/java/org/apache/harmony/nio/internal/SelectorProviderImpl.java
libcore/nio/src/main/java/org/apache/harmony/nio/internal/SocketChannelImpl.java
libcore/nio/src/main/java/org/apache/harmony/nio/internal/WriteOnlyFileChannel.java
libcore/nio/src/main/native/nio/shared/DirectBufferUtil.c
libcore/nio/src/main/native/nio/unix/exports.txt
libcore/nio/src/main/native/nio/unix/makefile
libcore/nio/src/main/native/nio/windows/makefile
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/BufferOverflowExceptionTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/BufferUnderflowExceptionTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/CharBufferTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/FloatBufferTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/InvalidMarkExceptionTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/MappedByteBufferTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/ReadOnlyBufferExceptionTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/DatagramChannelTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/FileChannelLockingTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/FileChannelTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/FileChannelWin32OnlyTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/FileLockTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/ServerSocketChannelTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java
libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/spi/AbstractSelectableChannelTest.java
libcore/nio_char/.classpath
libcore/nio_char/META-INF/MANIFEST.MF
libcore/nio_char/build.xml
libcore/nio_char/src/main/java/java/nio/charset/CharacterCodingException.java
libcore/nio_char/src/main/java/java/nio/charset/Charset.java
libcore/nio_char/src/main/java/java/nio/charset/CharsetDecoder.java
libcore/nio_char/src/main/java/java/nio/charset/CharsetEncoder.java
libcore/nio_char/src/main/java/java/nio/charset/CoderMalfunctionError.java
libcore/nio_char/src/main/java/java/nio/charset/CoderResult.java
libcore/nio_char/src/main/java/java/nio/charset/CodingErrorAction.java
libcore/nio_char/src/main/java/java/nio/charset/IllegalCharsetNameException.java
libcore/nio_char/src/main/java/java/nio/charset/MalformedInputException.java
libcore/nio_char/src/main/java/java/nio/charset/UnmappableCharacterException.java
libcore/nio_char/src/main/java/java/nio/charset/UnsupportedCharsetException.java
libcore/nio_char/src/test/java/org/apache/harmony/nio_char/tests/java/nio/charset/CharsetDecoderTest.java
libcore/nio_char/src/test/java/org/apache/harmony/nio_char/tests/java/nio/charset/CharsetEncoderTest.java
libcore/nio_char/src/test/java/org/apache/harmony/nio_char/tests/java/nio/charset/CharsetTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/ASCCharsetDecoderTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/CharsetDecoderTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/CharsetEncoderTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/CharsetProviderTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/CharsetTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/GBCharsetDecoderTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/GBCharsetEncoderTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/ISOCharsetDecoderTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/UTF16BECharsetDecoderTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/UTF16CharsetDecoderTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/UTF16CharsetEncoderTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/UTF16LECharsetDecoderTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/UTFCharsetDecoderTest.java
libcore/nio_char/src/test/java/tests/api/java/nio/charset/UTFCharsetEncoderTest.java

commit 8a74fca0d85c82a9d02a83d00fd028d9b09755f7
Author: Jesse Wilson <jessewilson@google.com>
Date: Thu Aug 13 16:03:25 2009 -0700

Dalvik Nio, Nio char

commit bcc5ec78806787fbecab742e716fc0d63bcece5c
Author: Jesse Wilson <jessewilson@google.com>
Date: Thu Aug 13 16:01:06 2009 -0700

Nio, nio char 802921

commit fc1e09e74aec8e49e0e23f13643deed1e9112af4
Author: Jesse Wilson <jessewilson@google.com>
Date: Thu Aug 13 15:48:17 2009 -0700

Nio, nio char 527399
rg/apache/harmony/luni/platform/FileDescriptorHandler.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
1c422fc0ab0692e10a05af6f48c6276c4dad4bea 16-Oct-2009 Jesse Wilson <jessewilson@google.com> Respond to impossible CloneNotSupportedExceptions with AssertionErrors.

See bug 2183132.
ava/util/BitSet.java
ava/util/Calendar.java
ava/util/Date.java
ava/util/EnumMap.java
ava/util/EnumSet.java
ava/util/HashSet.java
ava/util/IdentityHashMap.java
ava/util/LinkedList.java
ava/util/Locale.java
ava/util/MapEntry.java
ava/util/TimeZone.java
ava/util/TreeMap.java
ava/util/TreeSet.java
ava/util/Vector.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
5839b909d9528b7726e678a4b696ed37df15d897 10-Oct-2009 Jesse Wilson <jessewilson@google.com> Udating luni to Harmony r823222.

Highlights:
- InputStream.skip concurrency issue
- "better" messages in bound exceptions for streams and arrays
- prefer fewer writes to underlying streams (using byte[] buffers)
- Rename subclasses to not reuse names from their superclasses
- PlatformAddressFactory.allocMap bugfix

Plus some spelling fixes, style fixes, serial version UIDs and other
boilerplate improvements.
ava/io/BufferedOutputStream.java
ava/io/CharArrayReader.java
ava/io/DataOutputStream.java
ava/io/EmulatedFieldsForDumping.java
ava/io/File.java
ava/io/FileInputStream.java
ava/io/FilterOutputStream.java
ava/io/InputStream.java
ava/io/LineNumberInputStream.java
ava/io/NotSerializableException.java
ava/io/ObjectInputStream.java
ava/io/ObjectOutputStream.java
ava/io/PrintStream.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/lang/AbstractStringBuilder.java
ava/lang/ArrayIndexOutOfBoundsException.java
ava/lang/Enum.java
ava/lang/Integer.java
ava/lang/Math.java
ava/lang/SecurityManager.java
ava/net/DatagramSocketImpl.java
ava/net/InetAddress.java
ava/net/JarURLConnection.java
ava/net/NetworkInterface.java
ava/net/SocketAddress.java
ava/net/URL.java
ava/net/URLClassLoader.java
ava/util/Arrays.java
ava/util/Collection.java
ava/util/Collections.java
ava/util/Formatter.java
ava/util/GregorianCalendar.java
ava/util/Locale.java
ava/util/Scanner.java
ava/util/UnknownFormatFlagsException.java
rg/apache/harmony/luni/internal/io/FileCanonPathCache.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/https/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnectionImpl.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnectionImpl.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/SocketInputStream.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/platform/PlatformAddressFactory.java
rg/apache/harmony/luni/util/ExternalMessages.properties
7fb15841fb9efbdf924be69f1a585c4868c527ac 09-Oct-2009 Dan Bornstein <danfuzz@android.com> Fix the docs for the no-arg Random() constructor to better reflect reality,
and make the constructors more resilient with respect to subclassing by
using System.identityHashCode() instead of Object.hashCode(), and also by
not calling overridable methods.

Change-Id: I6239d93bb46876ef1c4a5e155a6dc1ac6fab4eae
ava/util/Random.java
128041b19c25037bb6b60830c0d53f11a1b3f77e 01-Oct-2009 Jesse Wilson <jessewilson@google.com> am a20c6d23: am b5b7f4ba: Merge change I9899be9d into eclair

Merge commit 'a20c6d2347224d89dced471e61a36610699b7e71'

* commit 'a20c6d2347224d89dced471e61a36610699b7e71':
Fixing a Harmony regression in ObjectInputStream.
109fc1115e7afd2907544b805eaa2cc8a0e2635f 01-Oct-2009 Elliott Hughes <enh@google.com> Simplify FileInputStream.skip to match the RI.

The RI throws IOException on any non-seekable stream, including stdin.
This patch removes harmony's special-case hack for stdin, and the native
cruft that wasn't even necessary if you did want a special hack for
stdin.

Bug: 1542253
ava/io/FileInputStream.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
655cccb8a5447bfd6f3369d545870930a5f14b10 30-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I9899be9d into eclair

* changes:
Fixing a Harmony regression in ObjectInputStream.
5905afbf06aa390d6e580d75f3e1419f9cf67472 30-Sep-2009 Jesse Wilson <jessewilson@google.com> Fixing a Harmony regression in ObjectInputStream.

We check the field type against the instance being
populated and not the field descriptor on the wire.
The root cause is a bug in Harmony which we should
send upstream.
ava/io/ObjectInputStream.java
3d478ad9fefa9c90b5c644f5e3d9437828537ed9 27-Sep-2009 Elliott Hughes <enh@google.com> Throw meaningful IOException instances from native code.

The Java side of OSFileSystem was throwing IOExceptions with no detail
message. If we throw from the native side instead, we can supply
meaningful explanations. This turned up a couple of bugs:

* read, readDirect, readv, writev, and ttyRead would only throw IOException
if they returned < -1, which is impossible. (writev was probably a copy & paste
from readv, and the reads were probably confused by the impedence mismatch
between Unix's use of 0 to mean end of file and -1 to mean error, and Java's
use of -1 for end of file.)

* inconsistent checking for null byte[]s passed in.

* read and write would retry on EINTR, but readDirect and writeDirect wouldn't.

* we'd silently truncate seek/lock/truncate offsets that didn't fit in 32 bits;
we now throw an IOException instead.

It also means a few native functions become "void" because errors are now
reported by throwing exceptions, and the Java functions that used to call them
are no longer needed.

Also change ProcessManager to use jniThrowIOException, remove the unused
throwIOExceptionStr from OSNetworkSystem.cpp, and remove the KnownFailure from
FileTest's test_delete, now we have a fixed version of yaffs that won't
rmdir(2) non-empty directories.

Bug: 1542253
rg/apache/harmony/luni/platform/OSFileSystem.java
e8596906d75fd8ccda31600d71ad56391cd7cd3a 19-Sep-2009 Lorenzo Colitti <lorenzo@google.com> Manual merge of change I3665f82b into master.
ava/net/InetAddress.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/util/Inet6Util.java
7de2d41b95fc968b0ccc530c28d66f003ff9ab2a 21-Sep-2009 Joshua Bloch <jjb@google.com> Replace existing ArrayList implementation with faster, simpler one.
ava/util/ArrayList.java
e175af7bae1c6bd254471b2503a8e01c68f4ed27 26-Sep-2009 Jesse Wilson <jessewilson@google.com> DO NOT MERGE: Cleaning up PipedInputStream
ava/io/PipedInputStream.java
f05f05786703045d75dc1366c2b1e3eb5ee27cf1 23-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26453

* changes:
Fix Formatter.format's handling of Formattable.
d8f217f6b2ef6201a6db0652bad2e9435d3bf9fd 23-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26285 into eclair

* changes:
Use native code to convert strings to IP addresses.
7356e5631e05b8b31d22a7e303bdef8b1221b065 19-Sep-2009 Lorenzo Colitti <lorenzo@google.com> Use native code to convert strings to IP addresses.

1. Add an ipStringToByteArray method to the OSNetworkSystem interface and
provide a native implementation for it.
2. Change InetAddress to use the new method.
3. Remove a mid-sized chunk of Inet6Util, which is now redundant.
4. Remove the KnownFailure annotations from the InetAddress, InetAddress and
Inet6Address tests that expected 1.2.3, 1.3 and 3 to be valid IPv4
addresses. These tests now pass again.
5. Removed an unused native method.
6. Added a comment to the top of the native socket implementation to the effect
that the file is significantly different from harmony.

Change-Id: I3665f82b00ebc089e9133cc6166dda5a99fa10e4
ava/net/InetAddress.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/util/Inet6Util.java
ced76a9b276a0f120c2226855c4c704b2074ec5b 22-Sep-2009 Elliott Hughes <enh@google.com> Fix Formatter.format's handling of Formattable.

This doesn't make much difference to performance, but it is
slightly faster and I think it reads better too. Proof of the
latter is the fact that the rewritten form accidentally fixed
bug 1767: the old code was storing up literal text until after
handling the next format specifier, which is wrong if the
format specifier has side effects caused by the use of
Formattable.

(I don't plan on doing any more on the performance bug for now,
though I note that %g allocates and manipulates BigDecimal
instances, which would be worth looking at when we get round to
the bug that causes it to fail a harmony test.)

Bug: 1476, 1767
ava/util/Formatter.java
8ed4ad0c5b361f7a196eb97bc3ec210ab086623b 22-Sep-2009 Elliott Hughes <enh@google.com> Fix useDaylightTime for zh_TW (and other locales).

TimeZone.useDaylightTime shouldn't report whether a locale has *ever* used DST,
but whether a locale uses DST "these days". Taiwan is an example supported
locale that historically used DST but hasn't used it since 1980.

Bug: 877
rg/apache/harmony/luni/internal/util/ZoneInfo.java
ad1af8e17368582b24fd9e2b6e2b2578ab4d8829 22-Sep-2009 Joshua Bloch <jjb@google.com> am 4b8fbfe9: am 51ccfdb5: Merge change 26318 into eclair

Merge commit '4b8fbfe9f7dcd8cfa796f968b9feaadb3c72661c'

* commit '4b8fbfe9f7dcd8cfa796f968b9feaadb3c72661c':
Fixed LinkedHashMap bug 2121546
0e70fdb9bfb8bae59347f4e3a700db3603e14e04 22-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26288

* changes:
Cleaning up PipedInputStream.
9483551bcc25e4df0a27d6548b54e1971fac9aea 21-Sep-2009 Joshua Bloch <jjb@google.com> Fixed LinkedHashMap bug 2121546
Also made minor improvements in LinkedHashMap and NegativeCache.
(The "opportunities for improvement" were discovered while investigating the bug.)
ava/net/NegCacheElement.java
ava/net/NegativeCache.java
ava/util/HashMap.java
ava/util/LinkedHashMap.java
801d4e3787d81f759514e99172cb762e38f8c808 22-Sep-2009 Jesse Wilson <jessewilson@google.com> Cleaning up PipedInputStream.

In particular, fixing a problem where the reader thread fails
as soon as the writer thread exists, even if there is data left
for the reader thread to read. Similarly, the writer fails fast
even when the buffer has space remaining.

Also fixing some concurrency issues by making readers and writers
release each other more aggressively.
ava/io/PipedInputStream.java
a564e32377d6b926988fe67559f7550233a9845b 21-Sep-2009 Elliott Hughes <enh@google.com> Consistently use Formatter's cached NumberFormat.

%f is a lot more expensive than it should be because we're not using the cached
NumberFormat (as we are for %d). Running the microbenchmark I added to the
bug (times in ms, on a Cortex A8):

old new
new Formatter %f 1732 811
String.format %d 635 651
String.format %f 1752 900
reuse Formatter %f 1521 188
Double.toString + 149 148
Double.toString append 33 33
StringBuilder.append 143 139

Bug: 1476
ava/util/Formatter.java
511ab05f7731dffa3480cbd0b79836b231f77ef6 19-Sep-2009 Lorenzo Colitti <lorenzo@google.com> Manual merge of eclair change I26548922 into master.
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/util/Inet6Util.java
ec67773c5d9bbdbff7e846ef28816a3870d4cac2 18-Sep-2009 Lorenzo Colitti <lorenzo@google.com> Use native code to convert IP addresses to strings.

- Add a byteArrayToIpString method to the INetworkSystem interface and implement
it in native code
- Fix the native code so it does better error reporting
- Change InetAddress's getHostAddress, getHostName and getCanonicalHostName
methods to use it and remove the IPv4-only Java implementations
- Remove Inet6Util.createIPAddrStringFromByteArray
- Fix InetAddress so getByAddress(null) throws UnknownHostException instead of
NullPointerException for compatibility with the RI.

Change-Id: I26548922e9eed63b295173456183c4ab3ce20718
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/util/Inet6Util.java
ac00580c6651b27366d6e6962971e936d417dae3 17-Sep-2009 Lorenzo Colitti <lorenzo@google.com> am a28e7d1a: am 1cf3dbce: Merge change 25160 into eclair

Merge commit 'a28e7d1a32d3883b5b279f5ddc8473e6bcbf6760'

* commit 'a28e7d1a32d3883b5b279f5ddc8473e6bcbf6760':
Make getHostByAddr and getHostByName return the proper object type.
cdc4941b17d255933bfde70d423a2ade6f26e850 17-Sep-2009 Jesse Wilson <jessewilson@google.com> am cc4c69bc: am 023a932a: Merge change 24788 into eclair

Merge commit 'cc4c69bc91a8813e654095acf13e80a4d478eb24'

* commit 'cc4c69bc91a8813e654095acf13e80a4d478eb24':
Fixing the delimiter for the HTTP "Accept" header to be well-formed.
b406800f8463936bc70f47e53746ef0e60ea5046 16-Sep-2009 Lorenzo Colitti <lorenzo@google.com> Make getHostByAddr and getHostByName return the proper object type.

Change-Id: I51c75205095b7fe093ccb4451bbf7cc6a287bc49
rg/apache/harmony/luni/platform/OSNetworkSystem.java
e39e41b1c09aa6e0f2db0ee68723bea28d7fd1d8 15-Sep-2009 Lorenzo Colitti <lorenzo@google.com> am 60195db6: am 9ccfb95e: Merge change 24723 into eclair

Merge commit '60195db609e4f5125e39348651d7a06ff807cc96'

* commit '60195db609e4f5125e39348651d7a06ff807cc96':
Remove code duplication in InetAddress.getByAddress.
ea021b608acfd0789d8751630575270dc4689630 14-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 24788 into eclair

* changes:
Fixing the delimiter for the HTTP "Accept" header to be well-formed.
adad03692b86958bbc1da598c260b5e322f4d8ce 12-Sep-2009 Jesse Wilson <jessewilson@google.com> Fixing the delimiter for the HTTP "Accept" header to be well-formed.

See bug 2107897.
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java
55b49708e6a5f5f5047513b67094257b32ff9e93 11-Sep-2009 Lorenzo Colitti <lorenzo@google.com> Remove code duplication in InetAddress.getByAddress.

Change-Id: Id2d72572fbe5b26ff4be9a2c959c41a48b859ea0
ava/net/InetAddress.java
8d8cd4cc76b8a93d0de6bb83c85750c8c28ac171 03-Sep-2009 Jesse Wilson <jessewilson@google.com> do not merge: Josh's optimized HashMap and Hashtable

This commit squashes two changes from master. The only
additional change is that I've added "implements Map<K, V>"
to the signature of HashMap, which is necessary until we
get Josh's Apicheck fix in the master branch.

commit 5483e8adebc09b7bc58eb568793868388c240116
Author: Joshua Bloch <jjb@google.com>
Date: Mon Aug 31 17:55:19 2009 -0700

Replaced existing Hashtable implementation with fast one.

commit 90dbc304086ba1f6f51ed0d0b3a7368cc0fd46cb
Author: Joshua Bloch <jjb@google.com>
Date: Thu Aug 20 17:34:39 2009 -0700

Replace existing HashMap and LinkedHashMap with faster versions.
Among other optimizations, the new versions do no division and
use a high-quality defensive hash function to minimize the odds
of poor key distribution among buckets. Third time's a charm.
ava/util/HashMap.java
ava/util/HashSet.java
ava/util/Hashtable.java
ava/util/LinkedHashMap.java
fe5caf7124432a5b5e0c9a8dfb8dea80b909f7f1 03-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23384

* changes:
Replaced existing Hashtable implementation with fast one.
a7ba9cd1eb59536b2c5092bf60397d003297e053 02-Sep-2009 Lorenzo Colitti <lorenzo@google.com> am 0f45017c: am 94e11fc4: InetAddress refactoring.

Merge commit '0f45017ce76906ed4c43b60a4538607e5171294f'

* commit '0f45017ce76906ed4c43b60a4538607e5171294f':
InetAddress refactoring.
c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6d 01-Sep-2009 Joshua Bloch <jjb@google.com> Replaced existing Hashtable implementation with fast one.
ava/util/HashMap.java
ava/util/Hashtable.java
ava/util/LinkedHashMap.java
051128862ae7c5c031b8ddb763848ed264a63746 26-Aug-2009 Lorenzo Colitti <lorenzo@google.com> InetAddress refactoring.

1. Refactor all protocol-specific methods from InetAddress into Inet[46]Address.
2. Move all protocol-specific constants from InetAddress into Inet[46]Address.

This change should have no effect on the stack's behaviour but makes it easy to
find parts of the code that still have dependencies on IPv4 so they can be
examined and fixed.

Change-Id: I70860ee04cf7c01bffaa35c8c64199f69d99826f
ava/net/DatagramSocket.java
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/InetSocketAddress.java
ava/net/MulticastSocket.java
ava/net/ServerSocket.java
ava/net/Socket.java
bcde70337cc97ec09b70138acd164aede3910729 27-Aug-2009 Lorenzo Colitti <lorenzo@google.com> am 3a9a1a10: Merge change 22845 into eclair

Merge commit '3a9a1a10d85e7c26293ac8ea95de70763b9c317f'

* commit '3a9a1a10d85e7c26293ac8ea95de70763b9c317f':
IPv6 fixes to java.net.InetAddress.
8bd617c940d848591e88f3847365b06d5e64a854 27-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22845 into eclair

* changes:
IPv6 fixes to java.net.InetAddress.
7d992a9cf08b3e702c959f3b9aa50840485a76cd 27-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22193

* changes:
Replace existing HashMap and LinkedHashMap with faster versions. Among other optimizations, the new versions do no division and use a high-quality defensive hash function to minimize the odds of poor key distribution among buckets. Third time's a charm.
19ab821c3b1da5812590140a21ad9d551a3a3ec5 21-Aug-2009 Joshua Bloch <jjb@google.com> Replace existing HashMap and LinkedHashMap with faster versions.
Among other optimizations, the new versions do no division and
use a high-quality defensive hash function to minimize the odds
of poor key distribution among buckets. Third time's a charm.
ava/util/HashMap.java
ava/util/HashSet.java
ava/util/LinkedHashMap.java
1b544a6111a1005e502559a6e5f269c8ecf4a53b 26-Aug-2009 Lorenzo Colitti <lorenzo@google.com> IPv6 fixes to java.net.InetAddress.

1. Make hashCode() do something that makes sense for IPv6 addresses.
2. Expand coverage of hashCode unit test.
3. Fix failing regression test for getAllByName().
4. Document that the getByName test is broken. I will fix it in a future change.
5. Expand test coverage of the isMulticastAddress test to include IPv6 and
non-multicast addresses.

All tests now pass.

Change-Id: I6f52c7c3213dd01bf773228b1ed5d44df813f877
ava/net/Inet6Address.java
142d526f8bf90fb9bb63c637beb5299f39791f55 27-Aug-2009 Jesse Wilson <jessewilson@google.com> Update sql to Harmony 802921.

Notable changes
- ConnectionEvent field changed for serialization
- Date toString classes no longer use SimpleDateFormat
- Timestamp doesn't call through an overridable method in its constructor
- Timestamp now checks the String passed to valueOf() using a regex
- Properties now specifies a buffer size to avoid a user-inescapable warning

Squashed commit of the following:

commit dd9926cddda4db0227adbc174070791e5a9afa72
Merge: 8be3b27 4bed1fc
Author: Jesse Wilson <jessewilson@google.com>
Date: Wed Aug 12 10:34:56 2009 -0700

Merge branch 'sql_802921' into sql_dalvik

Conflicts:
libcore/sql/.classpath
libcore/sql/META-INF/MANIFEST.MF
libcore/sql/build.xml
libcore/sql/src/main/java/java/sql/Array.java
libcore/sql/src/main/java/java/sql/BatchUpdateException.java
libcore/sql/src/main/java/java/sql/Blob.java
libcore/sql/src/main/java/java/sql/CallableStatement.java
libcore/sql/src/main/java/java/sql/Clob.java
libcore/sql/src/main/java/java/sql/Connection.java
libcore/sql/src/main/java/java/sql/DataTruncation.java
libcore/sql/src/main/java/java/sql/DatabaseMetaData.java
libcore/sql/src/main/java/java/sql/Date.java
libcore/sql/src/main/java/java/sql/Driver.java
libcore/sql/src/main/java/java/sql/DriverManager.java
libcore/sql/src/main/java/java/sql/DriverPropertyInfo.java
libcore/sql/src/main/java/java/sql/ParameterMetaData.java
libcore/sql/src/main/java/java/sql/PreparedStatement.java
libcore/sql/src/main/java/java/sql/Ref.java
libcore/sql/src/main/java/java/sql/ResultSet.java
libcore/sql/src/main/java/java/sql/ResultSetMetaData.java
libcore/sql/src/main/java/java/sql/SQLData.java
libcore/sql/src/main/java/java/sql/SQLException.java
libcore/sql/src/main/java/java/sql/SQLInput.java
libcore/sql/src/main/java/java/sql/SQLOutput.java
libcore/sql/src/main/java/java/sql/SQLPermission.java
libcore/sql/src/main/java/java/sql/SQLWarning.java
libcore/sql/src/main/java/java/sql/Savepoint.java
libcore/sql/src/main/java/java/sql/Statement.java
libcore/sql/src/main/java/java/sql/Struct.java
libcore/sql/src/main/java/java/sql/Time.java
libcore/sql/src/main/java/java/sql/Timestamp.java
libcore/sql/src/main/java/java/sql/Types.java
libcore/sql/src/main/java/javax/sql/ConnectionEvent.java
libcore/sql/src/main/java/javax/sql/ConnectionEventListener.java
libcore/sql/src/main/java/javax/sql/ConnectionPoolDataSource.java
libcore/sql/src/main/java/javax/sql/DataSource.java
libcore/sql/src/main/java/javax/sql/PooledConnection.java
libcore/sql/src/main/java/javax/sql/RowSet.java
libcore/sql/src/main/java/javax/sql/RowSetEvent.java
libcore/sql/src/main/java/javax/sql/RowSetInternal.java
libcore/sql/src/main/java/javax/sql/RowSetListener.java
libcore/sql/src/main/java/javax/sql/RowSetMetaData.java
libcore/sql/src/main/java/javax/sql/RowSetReader.java
libcore/sql/src/main/java/javax/sql/RowSetWriter.java
libcore/sql/src/main/java/javax/sql/rowset/BaseRowSet.java
libcore/sql/src/main/java/javax/sql/rowset/WebRowSet.java
libcore/sql/src/main/java/javax/sql/rowset/serial/SerialClob.java
libcore/sql/src/main/java/javax/sql/rowset/serial/SerialDatalink.java
libcore/sql/src/main/java/javax/sql/rowset/serial/SerialException.java
libcore/sql/src/main/java/javax/sql/rowset/serial/SerialJavaObject.java
libcore/sql/src/main/java/javax/sql/rowset/serial/SerialRef.java
libcore/sql/src/main/java/javax/sql/rowset/serial/SerialStruct.java
libcore/sql/src/main/java/javax/sql/rowset/spi/SyncFactory.java
libcore/sql/src/main/java/javax/sql/rowset/spi/SyncProvider.java
libcore/sql/src/main/java/javax/transaction/xa/XAException.java
libcore/sql/src/main/java/org/apache/harmony/sql/internal/nls/Messages.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/BatchUpdateExceptionTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/ConnectionTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DataTruncationTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DatabaseMetaDataTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DateTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverPropertyInfoTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/ParameterMetaDataTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/ResultSetMetaDataTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/ResultSetTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/SQLExceptionTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/SQLPermissionTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/SQLWarningTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/StatementTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TestHelper_ClassLoader.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TestHelper_DriverManager.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TimeTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TimestampTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TypesTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/ConnectionEventTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/BaseRowSetTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialClobTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialExceptionTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialJavaObjectTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialRefTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialStructTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/transaction/InvalidTransactionExceptionTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/transaction/TransactionRequiredExceptionTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/transaction/TransactionRolledbackExceptionTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/transaction/xa/XAExceptionTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/transaction/xa/XAResourceTest.java
libcore/sql/src/test/java/org/apache/harmony/sql/tests/javax/transaction/xa/XidTest.java

commit 8be3b27082122a5c5b650ad5aad6a70b45fd58d4
Author: Jesse Wilson <jessewilson@google.com>
Date: Wed Aug 12 09:39:01 2009 -0700

Dalvik SQL

commit 4bed1fc3972b50198299137dc152d46dd9d5d532
Author: Jesse Wilson <jessewilson@google.com>
Date: Wed Aug 12 09:38:11 2009 -0700

SQL 802921

commit 82f57ed5049955585aecfae659310b6bde3354d8
Author: Jesse Wilson <jessewilson@google.com>
Date: Wed Aug 12 09:36:42 2009 -0700

SQL 527399
ava/util/Properties.java
a389b4a499f40379b0b204d7ba1c2057663d95c0 11-Aug-2009 Jesse Wilson <jessewilson@google.com> Update Luni to Harmony r802921.

Notable changes:
- replaced StringBuffer with StringBuilder in several places
- fixed a problem with BufferedInputStream's newline characters (EBCDIC)
- cleanup Timer's finalizer helper object
- new cache for the canonical path of a file
- fixed concurrency issue with ArrayList
- floating point parsing now trims length for very small numbers
- encoding specified "UTF-8" when converting some byte[]s to strings (JarURLConnection, Util, OSFileSystem)
- Harmony now implements floor and ceil in Java. We continue to use native code.
ava/io/BufferedReader.java
ava/io/DataInputStream.java
ava/io/File.java
ava/io/PipedInputStream.java
ava/io/PushbackInputStream.java
ava/io/StreamTokenizer.java
ava/lang/AbstractStringBuilder.java
ava/lang/Math.java
ava/lang/String.java
ava/lang/reflect/Modifier.java
ava/net/ServerSocket.java
ava/net/SocketImpl.java
ava/net/SocketPermission.java
ava/net/URI.java
ava/net/URIEncoderDecoder.java
ava/net/URLClassLoader.java
ava/net/URLConnection.java
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ava/util/AbstractList.java
ava/util/ArrayList.java
ava/util/BitSet.java
ava/util/Calendar.java
ava/util/Date.java
ava/util/HashMap.java
ava/util/Hashtable.java
ava/util/IdentityHashMap.java
ava/util/Locale.java
ava/util/Properties.java
ava/util/TimeZone.java
ava/util/Timer.java
ava/util/Vector.java
rg/apache/harmony/luni/internal/io/FileCanonPathCache.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java
rg/apache/harmony/luni/platform/IMemorySystem.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/util/ExternalMessages.properties
rg/apache/harmony/luni/util/FloatingPointParser.java
rg/apache/harmony/luni/util/Util.java
1f2d2815dc31bf3c464eec6d1de7e428d7f1dcf6 29-Jul-2009 Lorenzo Colitti <lorenzo@google.com> Try to connect to all the IP addresses of a host instead of just the first.
ava/net/Socket.java
148ef8eb9166eb50ce2ab5839515277c00f6cdfc 30-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 8953

* changes:
Store all IP addresses for a hostname instead of just one.
ca8f5b66c546d8545e41f71b6fb852424c681881 29-Jul-2009 Lorenzo Colitti <lorenzo@google.com> Store all IP addresses for a hostname instead of just one.
ava/net/InetAddress.java
451ee2cdd4bce45cea6020409ea1f2ebd11eea71 30-Jul-2009 Urs Grob <ursg@google.com> am 29326482: Removing MD2

Merge commit '2932648271e72bad181b293e1fa5945265c7dbed'

* commit '2932648271e72bad181b293e1fa5945265c7dbed':
Removing MD2
87eb4de6347e1be029cde77dd43ad9b1af901472 22-Jul-2009 Urs Grob <ursg@google.com> Removing MD2
rg/apache/harmony/luni/util/OIDDatabase.java
f5597e626ecf7949d249dea08c1a2964d890ec11 25-Jul-2009 Jesse Wilson <jessewilson@google.com> Integrate luni module (but not tests) to Harmony r772995.

Notable changes
- Stripped "@since Android 1.0" from many files. Most files
are now 100% the same in Dalvik and Harmony.
- AbstractStringBuilder.reverse() supports surrogates
- AbstractStringBuilder shares less to waste less memory
- Bitset optimized
- BufferedInputStream changed to support unsynchronized close()
- BufferedOutputStream does flushInternal
- BufferedReader supports EBCDIC NEL
- Collections.synchronizedList().indexOf() does a copy for more concurrency
- Classes in nio module changed: DatagramChannelImpl, SocketChannelImpl
and ServerSocketChannelImpl (these depend on internal APIs changed in
this update)
- DataInputStream/DataOutputStream now use a small buffer to limit the
number of times the underlying stream is accessed
- Date now has a minutes offset, more efficient toString()
- ExposedByteArrayInputStream: new internal class
- DeleteOnExit moved to top-level class
- FileDescriptor.isValid() now non-native
- Float, Double lessThan optimized (fix for compare(-0.0F, 0.0F) still pending)
- FileURLConnection now guesses content types from streams
- HashMap iterator changes
- Hashtable iterator changes
- INetworkSystem
- removes bind2(), createMulticastSocket, sendStream(),
- renames createSocket to createStreamSocket
- JarURLConnection rewritten
- LinkedHashMap: new iterator
- Locale, Currency, TimeZone: now use ICU in Harmony, plain Java in Dalvik
- ObjectInputStream: Accessor objects in Harmony, direct native in Dalvik
- ProxyClassFile - many changes
- String - optimized ascii for toLowerCase, toUpperCase, compare
- Timer - rewritten
- TreeMap - rewritten
- URLClassLoader - new
- URLConnection - new guessContentTypeFromStream(), uses org.apache.harmony.awt.www.content
to lookup content type handlers
ava/io/BufferedInputStream.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/io/ByteArrayInputStream.java
ava/io/ByteArrayOutputStream.java
ava/io/CharArrayReader.java
ava/io/CharArrayWriter.java
ava/io/CharConversionException.java
ava/io/Closeable.java
ava/io/DataInput.java
ava/io/DataInputStream.java
ava/io/DataOutput.java
ava/io/DataOutputStream.java
ava/io/EOFException.java
ava/io/EmulatedFields.java
ava/io/Externalizable.java
ava/io/File.java
ava/io/FileDescriptor.java
ava/io/FileFilter.java
ava/io/FileInputStream.java
ava/io/FileNotFoundException.java
ava/io/FileOutputStream.java
ava/io/FilePermission.java
ava/io/FilePermissionCollection.java
ava/io/FileReader.java
ava/io/FileWriter.java
ava/io/FilenameFilter.java
ava/io/FilterInputStream.java
ava/io/FilterOutputStream.java
ava/io/FilterReader.java
ava/io/FilterWriter.java
ava/io/Flushable.java
ava/io/IOException.java
ava/io/InputStream.java
ava/io/InputStreamReader.java
ava/io/InterruptedIOException.java
ava/io/InvalidClassException.java
ava/io/InvalidObjectException.java
ava/io/LineNumberInputStream.java
ava/io/LineNumberReader.java
ava/io/NotActiveException.java
ava/io/NotSerializableException.java
ava/io/ObjectInput.java
ava/io/ObjectInputStream.java
ava/io/ObjectInputValidation.java
ava/io/ObjectOutput.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/ObjectStreamConstants.java
ava/io/ObjectStreamException.java
ava/io/ObjectStreamField.java
ava/io/OptionalDataException.java
ava/io/OutputStream.java
ava/io/OutputStreamWriter.java
ava/io/PipedInputStream.java
ava/io/PipedOutputStream.java
ava/io/PipedReader.java
ava/io/PipedWriter.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/RandomAccessFile.java
ava/io/Reader.java
ava/io/SequenceInputStream.java
ava/io/Serializable.java
ava/io/StreamCorruptedException.java
ava/io/StreamTokenizer.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/io/StringWriter.java
ava/io/SyncFailedException.java
ava/io/UTFDataFormatException.java
ava/io/UnsupportedEncodingException.java
ava/io/WriteAbortedException.java
ava/io/Writer.java
ava/lang/AbstractMethodError.java
ava/lang/AbstractStringBuilder.java
ava/lang/Appendable.java
ava/lang/ArithmeticException.java
ava/lang/ArrayIndexOutOfBoundsException.java
ava/lang/ArrayStoreException.java
ava/lang/AssertionError.java
ava/lang/Boolean.java
ava/lang/Byte.java
ava/lang/CharSequence.java
ava/lang/Character.java
ava/lang/ClassCastException.java
ava/lang/ClassCircularityError.java
ava/lang/ClassFormatError.java
ava/lang/ClassNotFoundException.java
ava/lang/CloneNotSupportedException.java
ava/lang/Comparable.java
ava/lang/Deprecated.java
ava/lang/Double.java
ava/lang/Enum.java
ava/lang/EnumConstantNotPresentException.java
ava/lang/Error.java
ava/lang/Exception.java
ava/lang/ExceptionInInitializerError.java
ava/lang/Float.java
ava/lang/IllegalAccessError.java
ava/lang/IllegalAccessException.java
ava/lang/IllegalArgumentException.java
ava/lang/IllegalMonitorStateException.java
ava/lang/IllegalStateException.java
ava/lang/IllegalThreadStateException.java
ava/lang/IncompatibleClassChangeError.java
ava/lang/IndexOutOfBoundsException.java
ava/lang/InheritableThreadLocal.java
ava/lang/InstantiationError.java
ava/lang/InstantiationException.java
ava/lang/Integer.java
ava/lang/InternalError.java
ava/lang/InterruptedException.java
ava/lang/Iterable.java
ava/lang/LinkageError.java
ava/lang/Long.java
ava/lang/Math.java
ava/lang/NegativeArraySizeException.java
ava/lang/NoClassDefFoundError.java
ava/lang/NoSuchFieldError.java
ava/lang/NoSuchFieldException.java
ava/lang/NoSuchMethodError.java
ava/lang/NoSuchMethodException.java
ava/lang/NullPointerException.java
ava/lang/Number.java
ava/lang/NumberFormatException.java
ava/lang/OutOfMemoryError.java
ava/lang/Override.java
ava/lang/Process.java
ava/lang/ProcessBuilder.java
ava/lang/Readable.java
ava/lang/Runnable.java
ava/lang/RuntimeException.java
ava/lang/RuntimePermission.java
ava/lang/SecurityException.java
ava/lang/SecurityManager.java
ava/lang/Short.java
ava/lang/StackOverflowError.java
ava/lang/StrictMath.java
ava/lang/String.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
ava/lang/StringIndexOutOfBoundsException.java
ava/lang/SuppressWarnings.java
ava/lang/ThreadDeath.java
ava/lang/ThreadLocal.java
ava/lang/TypeNotPresentException.java
ava/lang/UnknownError.java
ava/lang/UnsatisfiedLinkError.java
ava/lang/UnsupportedClassVersionError.java
ava/lang/UnsupportedOperationException.java
ava/lang/VerifyError.java
ava/lang/VirtualMachineError.java
ava/lang/Void.java
ava/lang/ref/ReferenceQueue.java
ava/lang/reflect/AnnotatedElement.java
ava/lang/reflect/GenericArrayType.java
ava/lang/reflect/GenericDeclaration.java
ava/lang/reflect/GenericSignatureFormatError.java
ava/lang/reflect/InvocationHandler.java
ava/lang/reflect/InvocationTargetException.java
ava/lang/reflect/MalformedParameterizedTypeException.java
ava/lang/reflect/Member.java
ava/lang/reflect/Modifier.java
ava/lang/reflect/ParameterizedType.java
ava/lang/reflect/Proxy.java
ava/lang/reflect/ReflectPermission.java
ava/lang/reflect/Type.java
ava/lang/reflect/TypeVariable.java
ava/lang/reflect/UndeclaredThrowableException.java
ava/lang/reflect/WildcardType.java
ava/net/Authenticator.java
ava/net/BindException.java
ava/net/CacheRequest.java
ava/net/CacheResponse.java
ava/net/ConnectException.java
ava/net/ContentHandler.java
ava/net/ContentHandlerFactory.java
ava/net/CookieHandler.java
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ava/net/DatagramSocketImpl.java
ava/net/DatagramSocketImplFactory.java
ava/net/FileNameMap.java
ava/net/HttpRetryException.java
ava/net/HttpURLConnection.java
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/InetSocketAddress.java
ava/net/JarURLConnection.java
ava/net/MalformedURLException.java
ava/net/MulticastSocket.java
ava/net/NegCacheElement.java
ava/net/NegativeCache.java
ava/net/NetPermission.java
ava/net/NetworkInterface.java
ava/net/NoRouteToHostException.java
ava/net/PasswordAuthentication.java
ava/net/PortUnreachableException.java
ava/net/ProtocolException.java
ava/net/Proxy.java
ava/net/ProxySelector.java
ava/net/ProxySelectorImpl.java
ava/net/ResponseCache.java
ava/net/SecureCacheResponse.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketAddress.java
ava/net/SocketException.java
ava/net/SocketImpl.java
ava/net/SocketImplFactory.java
ava/net/SocketOptions.java
ava/net/SocketPermission.java
ava/net/SocketPermissionCollection.java
ava/net/SocketTimeoutException.java
ava/net/URI.java
ava/net/URIEncoderDecoder.java
ava/net/URISyntaxException.java
ava/net/URL.java
ava/net/URLClassLoader.java
ava/net/URLConnection.java
ava/net/URLDecoder.java
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ava/net/URLStreamHandlerFactory.java
ava/net/UnknownHostException.java
ava/net/UnknownServiceException.java
ava/util/AbstractCollection.java
ava/util/AbstractList.java
ava/util/AbstractMap.java
ava/util/AbstractQueue.java
ava/util/AbstractSequentialList.java
ava/util/AbstractSet.java
ava/util/ArrayList.java
ava/util/Arrays.java
ava/util/BitSet.java
ava/util/Calendar.java
ava/util/Collection.java
ava/util/Collections.java
ava/util/Comparator.java
ava/util/Currency.java
ava/util/Date.java
ava/util/Dictionary.java
ava/util/DuplicateFormatFlagsException.java
ava/util/EmptyStackException.java
ava/util/EnumMap.java
ava/util/EnumSet.java
ava/util/Enumeration.java
ava/util/EventListener.java
ava/util/EventListenerProxy.java
ava/util/EventObject.java
ava/util/FormatFlagsConversionMismatchException.java
ava/util/Formattable.java
ava/util/FormattableFlags.java
ava/util/Formatter.java
ava/util/FormatterClosedException.java
ava/util/GregorianCalendar.java
ava/util/HashMap.java
ava/util/HashSet.java
ava/util/Hashtable.java
ava/util/HugeEnumSet.java
ava/util/IdentityHashMap.java
ava/util/IllegalFormatCodePointException.java
ava/util/IllegalFormatConversionException.java
ava/util/IllegalFormatException.java
ava/util/IllegalFormatFlagsException.java
ava/util/IllegalFormatPrecisionException.java
ava/util/IllegalFormatWidthException.java
ava/util/InputMismatchException.java
ava/util/InvalidPropertiesFormatException.java
ava/util/Iterator.java
ava/util/LinkedHashMap.java
ava/util/LinkedHashSet.java
ava/util/LinkedList.java
ava/util/List.java
ava/util/ListIterator.java
ava/util/ListResourceBundle.java
ava/util/Locale.java
ava/util/Map.java
ava/util/MapEntry.java
ava/util/MissingFormatArgumentException.java
ava/util/MissingFormatWidthException.java
ava/util/MissingResourceException.java
ava/util/Observable.java
ava/util/Observer.java
ava/util/PriorityQueue.java
ava/util/Properties.java
ava/util/PropertyPermission.java
ava/util/PropertyPermissionCollection.java
ava/util/PropertyResourceBundle.java
ava/util/Queue.java
ava/util/Random.java
ava/util/RandomAccess.java
ava/util/ResourceBundle.java
ava/util/Scanner.java
ava/util/Set.java
ava/util/SimpleTimeZone.java
ava/util/SortedMap.java
ava/util/SortedSet.java
ava/util/Stack.java
ava/util/StringTokenizer.java
ava/util/TimeZone.java
ava/util/Timer.java
ava/util/TimerTask.java
ava/util/TooManyListenersException.java
ava/util/TreeMap.java
ava/util/TreeSet.java
ava/util/UUID.java
ava/util/UnknownFormatConversionException.java
ava/util/UnknownFormatFlagsException.java
ava/util/Vector.java
ava/util/WeakHashMap.java
rg/apache/harmony/luni/internal/net/www/MimeTable.java
rg/apache/harmony/luni/internal/net/www/protocol/file/FileURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/file/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConfiguration.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnectionManager.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java
rg/apache/harmony/luni/internal/nls/messages.properties
rg/apache/harmony/luni/internal/reflect/ProxyCharArrayCache.java
rg/apache/harmony/luni/internal/reflect/ProxyClassFile.java
rg/apache/harmony/luni/internal/reflect/ProxyConstantPool.java
rg/apache/harmony/luni/internal/reflect/ProxyConstants.java
rg/apache/harmony/luni/internal/reflect/ProxyMethod.java
rg/apache/harmony/luni/internal/reflect/ProxyNameAndTypeCache.java
rg/apache/harmony/luni/internal/reflect/ProxyObjectCache.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainMulticastSocketImpl.java
rg/apache/harmony/luni/net/PlainServerSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl2.java
rg/apache/harmony/luni/net/SocketImplProvider.java
rg/apache/harmony/luni/platform/AbstractMemorySpy.java
rg/apache/harmony/luni/platform/AdapterManager.java
rg/apache/harmony/luni/platform/IAdaptable.java
rg/apache/harmony/luni/platform/IAdapterFactory.java
rg/apache/harmony/luni/platform/IAdapterManager.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/ISystemComponent.java
rg/apache/harmony/luni/platform/OSComponent.java
rg/apache/harmony/luni/platform/OSComponentFactory.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/platform/Platform.java
rg/apache/harmony/luni/platform/RuntimeMemorySpy.java
rg/apache/harmony/luni/util/DeleteOnExit.java
rg/apache/harmony/luni/util/ExposedByteArrayInputStream.java
rg/apache/harmony/luni/util/ExternalMessages.properties
rg/apache/harmony/luni/util/FloatingPointParser.java
rg/apache/harmony/luni/util/HexStringParser.java
rg/apache/harmony/luni/util/HistoricalNamesUtil.java
rg/apache/harmony/luni/util/Inet6Util.java
rg/apache/harmony/luni/util/InputStreamExposer.java
rg/apache/harmony/luni/util/Sorter.java
rg/apache/harmony/luni/util/TwoKeyHashMap.java
rg/apache/harmony/luni/util/Util.java
d70537861937f700bb541eb65a659ff19d65232a 17-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 7487

* changes:
Fixed a tiny bug in TimSort that slightly affects performance on small arrays Martin Buchholz discovered this bug by running all tests with assertions enabled. That's the only way he could have discovered it, as it doesn't affect correctness:) The assertion that failed was the one at the head of countRunAndMakeAscending. The cause was that I called the method with (a, start, length) instead of (a, start, end).
30e58c2ae16137fc26a9ae916a92ddb0e9a6cc6b 16-Jul-2009 Joshua Bloch <jjb@google.com> Fixed a tiny bug in TimSort that slightly affects performance on small arrays
Martin Buchholz discovered this bug by running all tests with assertions
enabled. That's the only way he could have discovered it, as it doesn't
affect correctness:) The assertion that failed was the one at the head of
countRunAndMakeAscending. The cause was that I called the method with
(a, start, length) instead of (a, start, end).
ava/util/ComparableTimSort.java
ava/util/TimSort.java
1910f6f54c3768f19bba8e1c5a045164d5d171ac 16-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 6fbc4eb4: Merge change 7410 into donut

Merge commit '6fbc4eb48bf368199f31a25fae60f8f7a378cc52'

* commit '6fbc4eb48bf368199f31a25fae60f8f7a378cc52':
Fix bug: Arrays.deepToSting renders "[null]" as "null"; "[[]]" as "[]"; etc.
283b3a99b7c7135db1d8a217629a76cf17ff0b7e 15-Jul-2009 Joshua Bloch <jjb@google.com> Fix bug: Arrays.deepToSting renders "[null]" as "null"; "[[]]" as "[]"; etc.
ava/util/Arrays.java
21a8f1ff4c7728776f1af48c5057cfd6871bc917 12-Jun-2009 Jesse Wilson <jessewilson@google.com> Test and fix for the ArrayList.addAll(), bug 2954.
ava/util/ArrayList.java
0558324598b2d69e0d0b3eecf7f73d41da5b3e18 12-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 4006

* changes:
Test and fix for the ArrayList.addAll(), bug 2954.
7e6b45e8a5674356e46765effc33ed00dc0b0f07 12-Jun-2009 Jesse Wilson <jessewilson@google.com> Test and fix for the ArrayList.addAll(), bug 2954.
ava/util/ArrayList.java
8c9fdedea866c9c225d5a877230772ce85ab2c42 11-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 2279

* changes:
Updating archive to Harmony r772995.
7c618fe1f388514bb9080057fd95c7926a3a06fc 10-Jun-2009 Dan Bornstein <danfuzz@android.com> Fix internal issue #1898791 ("PlatformAddressFactory PlatformAddress cache
causes memory to not be freed in a timely manner.").

The change makes the two PlatformAddressFactory.alloc() methods always
allocate separate PlatformAddress objects instead of looking for them
in the cache. This means that, should they have auto-free turned on,
there won't be a reference in the cache that prevents the freeing from
happening. And since we're talking about freshly-allocated memory anyway,
it would be surprising that either a matching address would be found in
cache *or* that a subsequent call to on() would ever happen with the
same address. So, it's a win on several fronts.
rg/apache/harmony/luni/platform/PlatformAddressFactory.java
57995e8186b54515d5a03bf2ab104c3dc247f1b6 22-May-2009 Jesse Wilson <jessewilson@google.com> Updating archive to Harmony r772995.

Squashed commit of the following:
Adding @TestTargetNew tags

Initial merge of branch 'archive_772995' into archive_dalvik.

Fixed some problems, including InflaterInputStream.available()
and JarFile.skip() bugs.

Conflicts:
libcore/archive/.classpath
libcore/archive/META-INF/MANIFEST.MF
libcore/archive/build.xml
libcore/archive/make/hyproperties.xml
libcore/archive/src/main/java/java/util/jar/Attributes.java
libcore/archive/src/main/java/java/util/jar/JarEntry.java
libcore/archive/src/main/java/java/util/jar/JarException.java
libcore/archive/src/main/java/java/util/jar/JarFile.java
libcore/archive/src/main/java/java/util/jar/JarInputStream.java
libcore/archive/src/main/java/java/util/jar/JarVerifier.java
libcore/archive/src/main/java/java/util/jar/Manifest.java
libcore/archive/src/main/java/java/util/jar/Pack200.java
libcore/archive/src/main/java/java/util/zip/Adler32.java
libcore/archive/src/main/java/java/util/zip/CRC32.java
libcore/archive/src/main/java/java/util/zip/Checksum.java
libcore/archive/src/main/java/java/util/zip/DataFormatException.java
libcore/archive/src/main/java/java/util/zip/Deflater.java
libcore/archive/src/main/java/java/util/zip/DeflaterOutputStream.java
libcore/archive/src/main/java/java/util/zip/GZIPInputStream.java
libcore/archive/src/main/java/java/util/zip/GZIPOutputStream.java
libcore/archive/src/main/java/java/util/zip/Inflater.java
libcore/archive/src/main/java/java/util/zip/InflaterInputStream.java
libcore/archive/src/main/java/java/util/zip/ZipEntry.java
libcore/archive/src/main/java/java/util/zip/ZipException.java
libcore/archive/src/main/java/java/util/zip/ZipFile.java
libcore/archive/src/main/java/java/util/zip/ZipInputStream.java
libcore/archive/src/main/java/java/util/zip/ZipOutputStream.java
libcore/archive/src/main/java/org/apache/harmony/archive/internal/nls/Messages.java
libcore/archive/src/main/native/archive/shared/archiveglob.c
libcore/archive/src/main/native/archive/shared/jarfile.c
libcore/archive/src/main/native/archive/shared/zip.c
libcore/archive/src/main/native/archive/shared/zip.h
libcore/archive/src/main/native/archive/unix/makefile
libcore/archive/src/main/native/archive/windows/makefile
libcore/archive/src/main/native/java_util_zip_Adler32.c
libcore/archive/src/main/native/java_util_zip_CRC32.c
libcore/archive/src/main/native/java_util_zip_Deflater.c
libcore/archive/src/main/native/java_util_zip_Inflater.c
libcore/archive/src/main/native/zip/shared/hyzip.nls
libcore/archive/src/main/native/zip/unix/makefile
libcore/archive/src/main/native/zipsup.h
libcore/archive/src/main/native/zlib/unix/makefile
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/AttributesNameTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/AttributesTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarEntryTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarFileTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarInputStreamTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarOutputStreamTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/ManifestTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/GZIPInputStreamTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/GZIPOutputStreamTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/InflaterTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/ZipFileTest.java

commit 946f165f5b592f4453fd8f2c19766921544d38dd
Author: Jesse Wilson <jessewilson@google.com>
Date: Tue May 12 15:12:55 2009 -0700

Strip @Since Android 1.0 from Archive

commit 3498f216d7e826bfc9c4cc7c0da35830ca239367
Author: Jesse Wilson <jessewilson@google.com>
Date: Tue May 12 15:09:05 2009 -0700

Dalvik archive

commit 62e9db90bc6aa6b5d1c897cccdd616d812672677
Author: Jesse Wilson <jessewilson@google.com>
Date: Tue May 12 15:07:51 2009 -0700

Archive 772995

commit d1bf618681d6badf1b50edaf204a083d3912213d
Author: Jesse Wilson <jessewilson@google.com>
Date: Tue May 12 15:06:36 2009 -0700

Archive 527399
rg/apache/harmony/luni/util/InputStreamExposer.java
rg/apache/harmony/luni/util/ThreadLocalCache.java
4a18dac1dae17aefb889a458497f3b9a5a6a64ef 28-Feb-2009 t.mehrvarz <othy74@gmail.com> Code to reuse PlatformAddress objects. Minimizing garbage creation on the framework level and reducing the number of runtime GC-hiccups for OpenGL apps and animations.
2nd version: complete rewrite using 8 bit hash, up to 5 probes, cycle through probes cache replacement. (Thank you MichaelDt for your help.)
- 1st amend: applied requested modifications
- 2nd amend: comment openers, curly bracket
rg/apache/harmony/luni/platform/PlatformAddressFactory.java
e30fa7ec925e53d4a954131f798875ed859bd8d2 11-May-2009 Dan Bornstein <nobody@android.com> am 8cee535: am 974cdcd: AI 148692: Merge change #148679 into Cupcake, si

Merge commit '8cee535966608f63ab11fe127c9045838974e08f'

* commit '8cee535966608f63ab11fe127c9045838974e08f':
AI 148692: Merge change #148679 into Cupcake, since we probably want to
43f11e509433970a5f33a6e5edd9b90089fa7d88 11-May-2009 Dan Bornstein <nobody@android.com> AI 148692: Merge change #148679 into Cupcake, since we probably want to
take it for rel if there's an opportunity. Original
description:
Fix InputStreamReader to not drop input on buffer boundaries.
This fix takes the salient code from Harmony tip-of-tree,
though it's not a wholesale replacement of the file. In
particular, I left in the old encoding name handling as well
as one remaining "FIXME" that I don't think would have been
addressed.
BUG=1836908

Automated import of CL 148692
ava/io/InputStreamReader.java
b7e757e28b814b742baf1910b7faf8391be67ae1 19-Mar-2009 Jean-Baptiste Queru <jbq@google.com> Merge commit 'remotes/korg/cupcake' into cupcake_to_master
ab28398a565e5ce8a56cdfd50ac6226e5317cf66 11-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137873
ava/util/ComparableTimSort.java
ava/util/TimSort.java
e99e2306d96e652d43ad201226fe8dea8921a4f6 28-Feb-2009 t.mehrvarz <othy74@gmail.com> Code to reuse PlatformAddress objects. Minimizing garbage creation on the framework level and reducing the number of runtime GC-hiccups for OpenGL apps and animations.
2nd version: complete rewrite using 8 bit hash, up to 5 probes, cycle through probes cache replacement. (Thank you MichaelDt for your help.)
- 1st amend: applied requested modifications
- 2nd amend: comment openers, curly bracket
rg/apache/harmony/luni/platform/PlatformAddressFactory.java
adc854b798c1cfe3bfd4c27d68d5cee38ca617da 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ava/io/BufferedInputStream.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/io/ByteArrayInputStream.java
ava/io/ByteArrayOutputStream.java
ava/io/CharArrayReader.java
ava/io/CharArrayWriter.java
ava/io/CharConversionException.java
ava/io/Closeable.java
ava/io/DataInput.java
ava/io/DataInputStream.java
ava/io/DataOutput.java
ava/io/DataOutputStream.java
ava/io/EOFException.java
ava/io/EmulatedFields.java
ava/io/EmulatedFieldsForDumping.java
ava/io/EmulatedFieldsForLoading.java
ava/io/Externalizable.java
ava/io/File.java
ava/io/FileDescriptor.java
ava/io/FileFilter.java
ava/io/FileInputStream.java
ava/io/FileNotFoundException.java
ava/io/FileOutputStream.java
ava/io/FilePermission.java
ava/io/FilePermissionCollection.java
ava/io/FileReader.java
ava/io/FileWriter.java
ava/io/FilenameFilter.java
ava/io/FilterInputStream.java
ava/io/FilterOutputStream.java
ava/io/FilterReader.java
ava/io/FilterWriter.java
ava/io/Flushable.java
ava/io/IOException.java
ava/io/InputStream.java
ava/io/InputStreamReader.java
ava/io/InterruptedIOException.java
ava/io/InvalidClassException.java
ava/io/InvalidObjectException.java
ava/io/LineNumberInputStream.java
ava/io/LineNumberReader.java
ava/io/NotActiveException.java
ava/io/NotSerializableException.java
ava/io/ObjectInput.java
ava/io/ObjectInputStream.java
ava/io/ObjectInputValidation.java
ava/io/ObjectOutput.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/ObjectStreamConstants.java
ava/io/ObjectStreamException.java
ava/io/ObjectStreamField.java
ava/io/OptionalDataException.java
ava/io/OutputStream.java
ava/io/OutputStreamWriter.java
ava/io/PipedInputStream.java
ava/io/PipedOutputStream.java
ava/io/PipedReader.java
ava/io/PipedWriter.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/RandomAccessFile.java
ava/io/Reader.java
ava/io/SequenceInputStream.java
ava/io/Serializable.java
ava/io/SerializablePermission.java
ava/io/StreamCorruptedException.java
ava/io/StreamTokenizer.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/io/StringWriter.java
ava/io/SyncFailedException.java
ava/io/UTFDataFormatException.java
ava/io/UnsupportedEncodingException.java
ava/io/WriteAbortedException.java
ava/io/Writer.java
ava/io/package.html
ava/lang/AbstractMethodError.java
ava/lang/AbstractStringBuilder.java
ava/lang/Appendable.java
ava/lang/ArithmeticException.java
ava/lang/ArrayIndexOutOfBoundsException.java
ava/lang/ArrayStoreException.java
ava/lang/AssertionError.java
ava/lang/Boolean.java
ava/lang/Byte.java
ava/lang/CharSequence.java
ava/lang/Character.java
ava/lang/ClassCastException.java
ava/lang/ClassCircularityError.java
ava/lang/ClassFormatError.java
ava/lang/ClassNotFoundException.java
ava/lang/CloneNotSupportedException.java
ava/lang/Cloneable.java
ava/lang/Comparable.java
ava/lang/Deprecated.java
ava/lang/Double.java
ava/lang/EmptyEnumeration.java
ava/lang/Enum.java
ava/lang/EnumConstantNotPresentException.java
ava/lang/Error.java
ava/lang/Exception.java
ava/lang/ExceptionInInitializerError.java
ava/lang/Float.java
ava/lang/IllegalAccessError.java
ava/lang/IllegalAccessException.java
ava/lang/IllegalArgumentException.java
ava/lang/IllegalMonitorStateException.java
ava/lang/IllegalStateException.java
ava/lang/IllegalThreadStateException.java
ava/lang/IncompatibleClassChangeError.java
ava/lang/IndexOutOfBoundsException.java
ava/lang/InheritableThreadLocal.java
ava/lang/InstantiationError.java
ava/lang/InstantiationException.java
ava/lang/Integer.java
ava/lang/InternalError.java
ava/lang/InterruptedException.java
ava/lang/Iterable.java
ava/lang/LinkageError.java
ava/lang/Long.java
ava/lang/Math.java
ava/lang/NegativeArraySizeException.java
ava/lang/NoClassDefFoundError.java
ava/lang/NoSuchFieldError.java
ava/lang/NoSuchFieldException.java
ava/lang/NoSuchMethodError.java
ava/lang/NoSuchMethodException.java
ava/lang/NullPointerException.java
ava/lang/Number.java
ava/lang/NumberFormatException.java
ava/lang/OutOfMemoryError.java
ava/lang/Override.java
ava/lang/Process.java
ava/lang/ProcessBuilder.java
ava/lang/Readable.java
ava/lang/Runnable.java
ava/lang/RuntimeException.java
ava/lang/RuntimePermission.java
ava/lang/SecurityException.java
ava/lang/SecurityManager.java
ava/lang/Short.java
ava/lang/StackOverflowError.java
ava/lang/StrictMath.java
ava/lang/String.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
ava/lang/StringIndexOutOfBoundsException.java
ava/lang/SuppressWarnings.java
ava/lang/ThreadDeath.java
ava/lang/ThreadLocal.java
ava/lang/TypeNotPresentException.java
ava/lang/UnknownError.java
ava/lang/UnsatisfiedLinkError.java
ava/lang/UnsupportedClassVersionError.java
ava/lang/UnsupportedOperationException.java
ava/lang/VMClassLoader.java
ava/lang/VMThread.java
ava/lang/VerifyError.java
ava/lang/VirtualMachineError.java
ava/lang/Void.java
ava/lang/package.html
ava/lang/ref/ReferenceQueue.java
ava/lang/ref/package.html
ava/lang/reflect/AnnotatedElement.java
ava/lang/reflect/GenericArrayType.java
ava/lang/reflect/GenericDeclaration.java
ava/lang/reflect/GenericSignatureFormatError.java
ava/lang/reflect/InvocationHandler.java
ava/lang/reflect/InvocationTargetException.java
ava/lang/reflect/MalformedParameterizedTypeException.java
ava/lang/reflect/Member.java
ava/lang/reflect/Modifier.java
ava/lang/reflect/ParameterizedType.java
ava/lang/reflect/Proxy.java
ava/lang/reflect/ReflectPermission.java
ava/lang/reflect/Type.java
ava/lang/reflect/TypeVariable.java
ava/lang/reflect/UndeclaredThrowableException.java
ava/lang/reflect/WildcardType.java
ava/lang/reflect/package.html
ava/net/Authenticator.java
ava/net/BindException.java
ava/net/CacheRequest.java
ava/net/CacheResponse.java
ava/net/ConnectException.java
ava/net/ContentHandler.java
ava/net/ContentHandlerFactory.java
ava/net/CookieHandler.java
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ava/net/DatagramSocketImpl.java
ava/net/DatagramSocketImplFactory.java
ava/net/FileNameMap.java
ava/net/HttpRetryException.java
ava/net/HttpURLConnection.java
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/InetSocketAddress.java
ava/net/JarURLConnection.java
ava/net/MalformedURLException.java
ava/net/MulticastSocket.java
ava/net/NegCacheElement.java
ava/net/NegativeCache.java
ava/net/NetPermission.java
ava/net/NetworkInterface.java
ava/net/NoRouteToHostException.java
ava/net/PasswordAuthentication.java
ava/net/PortUnreachableException.java
ava/net/ProtocolException.java
ava/net/Proxy.java
ava/net/ProxySelector.java
ava/net/ProxySelectorImpl.java
ava/net/ResponseCache.java
ava/net/SecureCacheResponse.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketAddress.java
ava/net/SocketException.java
ava/net/SocketImpl.java
ava/net/SocketImplFactory.java
ava/net/SocketOptions.java
ava/net/SocketPermission.java
ava/net/SocketPermissionCollection.java
ava/net/SocketTimeoutException.java
ava/net/URI.java
ava/net/URIEncoderDecoder.java
ava/net/URISyntaxException.java
ava/net/URL.java
ava/net/URLClassLoader.java
ava/net/URLConnection.java
ava/net/URLDecoder.java
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ava/net/URLStreamHandlerFactory.java
ava/net/UnknownHostException.java
ava/net/UnknownServiceException.java
ava/net/package.html
ava/util/AbstractCollection.java
ava/util/AbstractList.java
ava/util/AbstractMap.java
ava/util/AbstractQueue.java
ava/util/AbstractSequentialList.java
ava/util/AbstractSet.java
ava/util/ArrayList.java
ava/util/Arrays.java
ava/util/BitSet.java
ava/util/Calendar.java
ava/util/Collection.java
ava/util/Collections.java
ava/util/ComparableTimSort.java
ava/util/Comparator.java
ava/util/ConcurrentModificationException.java
ava/util/Currency.java
ava/util/Date.java
ava/util/Dictionary.java
ava/util/DuplicateFormatFlagsException.java
ava/util/EmptyStackException.java
ava/util/EnumMap.java
ava/util/EnumSet.java
ava/util/Enumeration.java
ava/util/EventListener.java
ava/util/EventListenerProxy.java
ava/util/EventObject.java
ava/util/FormatFlagsConversionMismatchException.java
ava/util/Formattable.java
ava/util/FormattableFlags.java
ava/util/Formatter.java
ava/util/FormatterClosedException.java
ava/util/GregorianCalendar.java
ava/util/HashMap.java
ava/util/HashSet.java
ava/util/Hashtable.java
ava/util/HugeEnumSet.java
ava/util/IdentityHashMap.java
ava/util/IllegalFormatCodePointException.java
ava/util/IllegalFormatConversionException.java
ava/util/IllegalFormatException.java
ava/util/IllegalFormatFlagsException.java
ava/util/IllegalFormatPrecisionException.java
ava/util/IllegalFormatWidthException.java
ava/util/InputMismatchException.java
ava/util/InvalidPropertiesFormatException.java
ava/util/Iterator.java
ava/util/LinkedHashMap.java
ava/util/LinkedHashSet.java
ava/util/LinkedList.java
ava/util/List.java
ava/util/ListIterator.java
ava/util/ListResourceBundle.java
ava/util/Locale.java
ava/util/Map.java
ava/util/MapEntry.java
ava/util/MiniEnumSet.java
ava/util/MissingFormatArgumentException.java
ava/util/MissingFormatWidthException.java
ava/util/MissingResourceException.java
ava/util/NoSuchElementException.java
ava/util/Observable.java
ava/util/Observer.java
ava/util/PriorityQueue.java
ava/util/Properties.java
ava/util/PropertyPermission.java
ava/util/PropertyPermissionCollection.java
ava/util/PropertyResourceBundle.java
ava/util/Queue.java
ava/util/Random.java
ava/util/RandomAccess.java
ava/util/ResourceBundle.java
ava/util/Scanner.java
ava/util/Set.java
ava/util/SimpleTimeZone.java
ava/util/SortedMap.java
ava/util/SortedSet.java
ava/util/SpecialAccess.java
ava/util/Stack.java
ava/util/StringTokenizer.java
ava/util/TimSort.java
ava/util/TimeZone.java
ava/util/Timer.java
ava/util/TimerTask.java
ava/util/TooManyListenersException.java
ava/util/TreeMap.java
ava/util/TreeSet.java
ava/util/UUID.java
ava/util/UnknownFormatConversionException.java
ava/util/UnknownFormatFlagsException.java
ava/util/Vector.java
ava/util/WeakHashMap.java
ava/util/package.html
rg/apache/harmony/luni/internal/net/www/MimeTable.java
rg/apache/harmony/luni/internal/net/www/protocol/file/FileURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/file/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConfiguration.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnectionManager.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/https/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java
rg/apache/harmony/luni/internal/net/www/types.properties
rg/apache/harmony/luni/internal/nls/Messages.java
rg/apache/harmony/luni/internal/nls/messages.properties
rg/apache/harmony/luni/internal/reflect/ProxyCharArrayCache.java
rg/apache/harmony/luni/internal/reflect/ProxyClassFile.java
rg/apache/harmony/luni/internal/reflect/ProxyConstantPool.java
rg/apache/harmony/luni/internal/reflect/ProxyConstants.java
rg/apache/harmony/luni/internal/reflect/ProxyMethod.java
rg/apache/harmony/luni/internal/reflect/ProxyNameAndTypeCache.java
rg/apache/harmony/luni/internal/reflect/ProxyObjectCache.java
rg/apache/harmony/luni/internal/util/TimezoneGetter.java
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
rg/apache/harmony/luni/lang/reflect/GenericSignatureParser.java
rg/apache/harmony/luni/lang/reflect/ImplForArray.java
rg/apache/harmony/luni/lang/reflect/ImplForType.java
rg/apache/harmony/luni/lang/reflect/ImplForVariable.java
rg/apache/harmony/luni/lang/reflect/ImplForWildcard.java
rg/apache/harmony/luni/lang/reflect/ListOfTypes.java
rg/apache/harmony/luni/lang/reflect/ListOfVariables.java
rg/apache/harmony/luni/lang/reflect/Types.java
rg/apache/harmony/luni/net/GenericIPMreq.java
rg/apache/harmony/luni/net/NetUtil.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainMulticastSocketImpl.java
rg/apache/harmony/luni/net/PlainServerSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl2.java
rg/apache/harmony/luni/net/SocketImplProvider.java
rg/apache/harmony/luni/net/SocketInputStream.java
rg/apache/harmony/luni/net/SocketOutputStream.java
rg/apache/harmony/luni/net/Socks4Message.java
rg/apache/harmony/luni/platform/AbstractMemorySpy.java
rg/apache/harmony/luni/platform/AdapterManager.java
rg/apache/harmony/luni/platform/Endianness.java
rg/apache/harmony/luni/platform/FileDescriptorHandler.java
rg/apache/harmony/luni/platform/IAdaptable.java
rg/apache/harmony/luni/platform/IAdapterFactory.java
rg/apache/harmony/luni/platform/IAdapterManager.java
rg/apache/harmony/luni/platform/ICommonDataTypes.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/IMemorySpy.java
rg/apache/harmony/luni/platform/IMemorySystem.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/ISystemComponent.java
rg/apache/harmony/luni/platform/MappedPlatformAddress.java
rg/apache/harmony/luni/platform/OSComponent.java
rg/apache/harmony/luni/platform/OSComponentFactory.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/platform/Platform.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/platform/PlatformAddressFactory.java
rg/apache/harmony/luni/platform/RuntimeMemorySpy.java
rg/apache/harmony/luni/util/Base64.java
rg/apache/harmony/luni/util/BinarySearch.java
rg/apache/harmony/luni/util/ErrorCodeException.java
rg/apache/harmony/luni/util/ExternalMessages.properties
rg/apache/harmony/luni/util/FloatingPointParser.java
rg/apache/harmony/luni/util/HexStringParser.java
rg/apache/harmony/luni/util/Inet6Util.java
rg/apache/harmony/luni/util/InvalidJarIndexException.java
rg/apache/harmony/luni/util/Msg.java
rg/apache/harmony/luni/util/MsgHelp.java
rg/apache/harmony/luni/util/NotImplementedException.java
rg/apache/harmony/luni/util/NumberConverter.java
rg/apache/harmony/luni/util/OIDDatabase.java
rg/apache/harmony/luni/util/PasswordProtectedInputStream.java
rg/apache/harmony/luni/util/PositionedInputStream.java
rg/apache/harmony/luni/util/PriviAction.java
rg/apache/harmony/luni/util/SHAOutputStream.java
rg/apache/harmony/luni/util/Sorter.java
rg/apache/harmony/luni/util/TwoKeyHashMap.java
rg/apache/harmony/luni/util/URLUtil.java
rg/apache/harmony/luni/util/Util.java
rg/apache/harmony/misc/HashCode.java
rg/apache/harmony/misc/SystemUtils.java
rg/apache/harmony/misc/internal/nls/Messages.java
rg/apache/harmony/misc/internal/nls/messages.properties
1c0fed63c71ddb230f3b304aac12caffbedf2f21 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ava/io/BufferedInputStream.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/io/ByteArrayInputStream.java
ava/io/ByteArrayOutputStream.java
ava/io/CharArrayReader.java
ava/io/CharArrayWriter.java
ava/io/CharConversionException.java
ava/io/Closeable.java
ava/io/DataInput.java
ava/io/DataInputStream.java
ava/io/DataOutput.java
ava/io/DataOutputStream.java
ava/io/EOFException.java
ava/io/EmulatedFields.java
ava/io/EmulatedFieldsForDumping.java
ava/io/EmulatedFieldsForLoading.java
ava/io/Externalizable.java
ava/io/File.java
ava/io/FileDescriptor.java
ava/io/FileFilter.java
ava/io/FileInputStream.java
ava/io/FileNotFoundException.java
ava/io/FileOutputStream.java
ava/io/FilePermission.java
ava/io/FilePermissionCollection.java
ava/io/FileReader.java
ava/io/FileWriter.java
ava/io/FilenameFilter.java
ava/io/FilterInputStream.java
ava/io/FilterOutputStream.java
ava/io/FilterReader.java
ava/io/FilterWriter.java
ava/io/Flushable.java
ava/io/IOException.java
ava/io/InputStream.java
ava/io/InputStreamReader.java
ava/io/InterruptedIOException.java
ava/io/InvalidClassException.java
ava/io/InvalidObjectException.java
ava/io/LineNumberInputStream.java
ava/io/LineNumberReader.java
ava/io/NotActiveException.java
ava/io/NotSerializableException.java
ava/io/ObjectInput.java
ava/io/ObjectInputStream.java
ava/io/ObjectInputValidation.java
ava/io/ObjectOutput.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/ObjectStreamConstants.java
ava/io/ObjectStreamException.java
ava/io/ObjectStreamField.java
ava/io/OptionalDataException.java
ava/io/OutputStream.java
ava/io/OutputStreamWriter.java
ava/io/PipedInputStream.java
ava/io/PipedOutputStream.java
ava/io/PipedReader.java
ava/io/PipedWriter.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/RandomAccessFile.java
ava/io/Reader.java
ava/io/SequenceInputStream.java
ava/io/Serializable.java
ava/io/SerializablePermission.java
ava/io/StreamCorruptedException.java
ava/io/StreamTokenizer.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/io/StringWriter.java
ava/io/SyncFailedException.java
ava/io/UTFDataFormatException.java
ava/io/UnsupportedEncodingException.java
ava/io/WriteAbortedException.java
ava/io/Writer.java
ava/io/package.html
ava/lang/AbstractMethodError.java
ava/lang/AbstractStringBuilder.java
ava/lang/Appendable.java
ava/lang/ArithmeticException.java
ava/lang/ArrayIndexOutOfBoundsException.java
ava/lang/ArrayStoreException.java
ava/lang/AssertionError.java
ava/lang/Boolean.java
ava/lang/Byte.java
ava/lang/CharSequence.java
ava/lang/Character.java
ava/lang/ClassCastException.java
ava/lang/ClassCircularityError.java
ava/lang/ClassFormatError.java
ava/lang/ClassNotFoundException.java
ava/lang/CloneNotSupportedException.java
ava/lang/Cloneable.java
ava/lang/Comparable.java
ava/lang/Deprecated.java
ava/lang/Double.java
ava/lang/EmptyEnumeration.java
ava/lang/Enum.java
ava/lang/EnumConstantNotPresentException.java
ava/lang/Error.java
ava/lang/Exception.java
ava/lang/ExceptionInInitializerError.java
ava/lang/Float.java
ava/lang/IllegalAccessError.java
ava/lang/IllegalAccessException.java
ava/lang/IllegalArgumentException.java
ava/lang/IllegalMonitorStateException.java
ava/lang/IllegalStateException.java
ava/lang/IllegalThreadStateException.java
ava/lang/IncompatibleClassChangeError.java
ava/lang/IndexOutOfBoundsException.java
ava/lang/InheritableThreadLocal.java
ava/lang/InstantiationError.java
ava/lang/InstantiationException.java
ava/lang/Integer.java
ava/lang/InternalError.java
ava/lang/InterruptedException.java
ava/lang/Iterable.java
ava/lang/LinkageError.java
ava/lang/Long.java
ava/lang/Math.java
ava/lang/NegativeArraySizeException.java
ava/lang/NoClassDefFoundError.java
ava/lang/NoSuchFieldError.java
ava/lang/NoSuchFieldException.java
ava/lang/NoSuchMethodError.java
ava/lang/NoSuchMethodException.java
ava/lang/NullPointerException.java
ava/lang/Number.java
ava/lang/NumberFormatException.java
ava/lang/OutOfMemoryError.java
ava/lang/Override.java
ava/lang/Process.java
ava/lang/ProcessBuilder.java
ava/lang/Readable.java
ava/lang/Runnable.java
ava/lang/RuntimeException.java
ava/lang/RuntimePermission.java
ava/lang/SecurityException.java
ava/lang/SecurityManager.java
ava/lang/Short.java
ava/lang/StackOverflowError.java
ava/lang/StrictMath.java
ava/lang/String.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
ava/lang/StringIndexOutOfBoundsException.java
ava/lang/SuppressWarnings.java
ava/lang/ThreadDeath.java
ava/lang/ThreadLocal.java
ava/lang/TypeNotPresentException.java
ava/lang/UnknownError.java
ava/lang/UnsatisfiedLinkError.java
ava/lang/UnsupportedClassVersionError.java
ava/lang/UnsupportedOperationException.java
ava/lang/VMClassLoader.java
ava/lang/VMThread.java
ava/lang/VerifyError.java
ava/lang/VirtualMachineError.java
ava/lang/Void.java
ava/lang/package.html
ava/lang/ref/ReferenceQueue.java
ava/lang/ref/package.html
ava/lang/reflect/AnnotatedElement.java
ava/lang/reflect/GenericArrayType.java
ava/lang/reflect/GenericDeclaration.java
ava/lang/reflect/GenericSignatureFormatError.java
ava/lang/reflect/InvocationHandler.java
ava/lang/reflect/InvocationTargetException.java
ava/lang/reflect/MalformedParameterizedTypeException.java
ava/lang/reflect/Member.java
ava/lang/reflect/Modifier.java
ava/lang/reflect/ParameterizedType.java
ava/lang/reflect/Proxy.java
ava/lang/reflect/ReflectPermission.java
ava/lang/reflect/Type.java
ava/lang/reflect/TypeVariable.java
ava/lang/reflect/UndeclaredThrowableException.java
ava/lang/reflect/WildcardType.java
ava/lang/reflect/package.html
ava/net/Authenticator.java
ava/net/BindException.java
ava/net/CacheRequest.java
ava/net/CacheResponse.java
ava/net/ConnectException.java
ava/net/ContentHandler.java
ava/net/ContentHandlerFactory.java
ava/net/CookieHandler.java
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ava/net/DatagramSocketImpl.java
ava/net/DatagramSocketImplFactory.java
ava/net/FileNameMap.java
ava/net/HttpRetryException.java
ava/net/HttpURLConnection.java
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/InetSocketAddress.java
ava/net/JarURLConnection.java
ava/net/MalformedURLException.java
ava/net/MulticastSocket.java
ava/net/NegCacheElement.java
ava/net/NegativeCache.java
ava/net/NetPermission.java
ava/net/NetworkInterface.java
ava/net/NoRouteToHostException.java
ava/net/PasswordAuthentication.java
ava/net/PortUnreachableException.java
ava/net/ProtocolException.java
ava/net/Proxy.java
ava/net/ProxySelector.java
ava/net/ProxySelectorImpl.java
ava/net/ResponseCache.java
ava/net/SecureCacheResponse.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketAddress.java
ava/net/SocketException.java
ava/net/SocketImpl.java
ava/net/SocketImplFactory.java
ava/net/SocketOptions.java
ava/net/SocketPermission.java
ava/net/SocketPermissionCollection.java
ava/net/SocketTimeoutException.java
ava/net/URI.java
ava/net/URIEncoderDecoder.java
ava/net/URISyntaxException.java
ava/net/URL.java
ava/net/URLClassLoader.java
ava/net/URLConnection.java
ava/net/URLDecoder.java
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ava/net/URLStreamHandlerFactory.java
ava/net/UnknownHostException.java
ava/net/UnknownServiceException.java
ava/net/package.html
ava/util/AbstractCollection.java
ava/util/AbstractList.java
ava/util/AbstractMap.java
ava/util/AbstractQueue.java
ava/util/AbstractSequentialList.java
ava/util/AbstractSet.java
ava/util/ArrayList.java
ava/util/Arrays.java
ava/util/BitSet.java
ava/util/Calendar.java
ava/util/Collection.java
ava/util/Collections.java
ava/util/ComparableTimSort.java
ava/util/Comparator.java
ava/util/ConcurrentModificationException.java
ava/util/Currency.java
ava/util/Date.java
ava/util/Dictionary.java
ava/util/DuplicateFormatFlagsException.java
ava/util/EmptyStackException.java
ava/util/EnumMap.java
ava/util/EnumSet.java
ava/util/Enumeration.java
ava/util/EventListener.java
ava/util/EventListenerProxy.java
ava/util/EventObject.java
ava/util/FormatFlagsConversionMismatchException.java
ava/util/Formattable.java
ava/util/FormattableFlags.java
ava/util/Formatter.java
ava/util/FormatterClosedException.java
ava/util/GregorianCalendar.java
ava/util/HashMap.java
ava/util/HashSet.java
ava/util/Hashtable.java
ava/util/HugeEnumSet.java
ava/util/IdentityHashMap.java
ava/util/IllegalFormatCodePointException.java
ava/util/IllegalFormatConversionException.java
ava/util/IllegalFormatException.java
ava/util/IllegalFormatFlagsException.java
ava/util/IllegalFormatPrecisionException.java
ava/util/IllegalFormatWidthException.java
ava/util/InputMismatchException.java
ava/util/InvalidPropertiesFormatException.java
ava/util/Iterator.java
ava/util/LinkedHashMap.java
ava/util/LinkedHashSet.java
ava/util/LinkedList.java
ava/util/List.java
ava/util/ListIterator.java
ava/util/ListResourceBundle.java
ava/util/Locale.java
ava/util/Map.java
ava/util/MapEntry.java
ava/util/MiniEnumSet.java
ava/util/MissingFormatArgumentException.java
ava/util/MissingFormatWidthException.java
ava/util/MissingResourceException.java
ava/util/NoSuchElementException.java
ava/util/Observable.java
ava/util/Observer.java
ava/util/PriorityQueue.java
ava/util/Properties.java
ava/util/PropertyPermission.java
ava/util/PropertyPermissionCollection.java
ava/util/PropertyResourceBundle.java
ava/util/Queue.java
ava/util/Random.java
ava/util/RandomAccess.java
ava/util/ResourceBundle.java
ava/util/Scanner.java
ava/util/Set.java
ava/util/SimpleTimeZone.java
ava/util/SortedMap.java
ava/util/SortedSet.java
ava/util/SpecialAccess.java
ava/util/Stack.java
ava/util/StringTokenizer.java
ava/util/TimSort.java
ava/util/TimeZone.java
ava/util/Timer.java
ava/util/TimerTask.java
ava/util/TooManyListenersException.java
ava/util/TreeMap.java
ava/util/TreeSet.java
ava/util/UUID.java
ava/util/UnknownFormatConversionException.java
ava/util/UnknownFormatFlagsException.java
ava/util/Vector.java
ava/util/WeakHashMap.java
ava/util/package.html
rg/apache/harmony/luni/internal/net/www/MimeTable.java
rg/apache/harmony/luni/internal/net/www/protocol/file/FileURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/file/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConfiguration.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnectionManager.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/https/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java
rg/apache/harmony/luni/internal/net/www/types.properties
rg/apache/harmony/luni/internal/nls/Messages.java
rg/apache/harmony/luni/internal/nls/messages.properties
rg/apache/harmony/luni/internal/reflect/ProxyCharArrayCache.java
rg/apache/harmony/luni/internal/reflect/ProxyClassFile.java
rg/apache/harmony/luni/internal/reflect/ProxyConstantPool.java
rg/apache/harmony/luni/internal/reflect/ProxyConstants.java
rg/apache/harmony/luni/internal/reflect/ProxyMethod.java
rg/apache/harmony/luni/internal/reflect/ProxyNameAndTypeCache.java
rg/apache/harmony/luni/internal/reflect/ProxyObjectCache.java
rg/apache/harmony/luni/internal/util/TimezoneGetter.java
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
rg/apache/harmony/luni/lang/reflect/GenericSignatureParser.java
rg/apache/harmony/luni/lang/reflect/ImplForArray.java
rg/apache/harmony/luni/lang/reflect/ImplForType.java
rg/apache/harmony/luni/lang/reflect/ImplForVariable.java
rg/apache/harmony/luni/lang/reflect/ImplForWildcard.java
rg/apache/harmony/luni/lang/reflect/ListOfTypes.java
rg/apache/harmony/luni/lang/reflect/ListOfVariables.java
rg/apache/harmony/luni/lang/reflect/Types.java
rg/apache/harmony/luni/net/GenericIPMreq.java
rg/apache/harmony/luni/net/NetUtil.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainMulticastSocketImpl.java
rg/apache/harmony/luni/net/PlainServerSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl2.java
rg/apache/harmony/luni/net/SocketImplProvider.java
rg/apache/harmony/luni/net/SocketInputStream.java
rg/apache/harmony/luni/net/SocketOutputStream.java
rg/apache/harmony/luni/net/Socks4Message.java
rg/apache/harmony/luni/platform/AbstractMemorySpy.java
rg/apache/harmony/luni/platform/AdapterManager.java
rg/apache/harmony/luni/platform/Endianness.java
rg/apache/harmony/luni/platform/FileDescriptorHandler.java
rg/apache/harmony/luni/platform/IAdaptable.java
rg/apache/harmony/luni/platform/IAdapterFactory.java
rg/apache/harmony/luni/platform/IAdapterManager.java
rg/apache/harmony/luni/platform/ICommonDataTypes.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/IMemorySpy.java
rg/apache/harmony/luni/platform/IMemorySystem.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/ISystemComponent.java
rg/apache/harmony/luni/platform/MappedPlatformAddress.java
rg/apache/harmony/luni/platform/OSComponent.java
rg/apache/harmony/luni/platform/OSComponentFactory.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/platform/Platform.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/platform/PlatformAddressFactory.java
rg/apache/harmony/luni/platform/RuntimeMemorySpy.java
rg/apache/harmony/luni/util/Base64.java
rg/apache/harmony/luni/util/BinarySearch.java
rg/apache/harmony/luni/util/ErrorCodeException.java
rg/apache/harmony/luni/util/ExternalMessages.properties
rg/apache/harmony/luni/util/FloatingPointParser.java
rg/apache/harmony/luni/util/HexStringParser.java
rg/apache/harmony/luni/util/Inet6Util.java
rg/apache/harmony/luni/util/InvalidJarIndexException.java
rg/apache/harmony/luni/util/Msg.java
rg/apache/harmony/luni/util/MsgHelp.java
rg/apache/harmony/luni/util/NotImplementedException.java
rg/apache/harmony/luni/util/NumberConverter.java
rg/apache/harmony/luni/util/OIDDatabase.java
rg/apache/harmony/luni/util/PasswordProtectedInputStream.java
rg/apache/harmony/luni/util/PositionedInputStream.java
rg/apache/harmony/luni/util/PriviAction.java
rg/apache/harmony/luni/util/SHAOutputStream.java
rg/apache/harmony/luni/util/Sorter.java
rg/apache/harmony/luni/util/TwoKeyHashMap.java
rg/apache/harmony/luni/util/URLUtil.java
rg/apache/harmony/luni/util/Util.java
rg/apache/harmony/misc/HashCode.java
rg/apache/harmony/misc/SystemUtils.java
rg/apache/harmony/misc/internal/nls/Messages.java
rg/apache/harmony/misc/internal/nls/messages.properties
2fb02ef3025449e24e756a7f645ea6eab7a1fd4f 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
ava/io/BufferedInputStream.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/util/ArrayList.java
d11a65b017fde8c4c997f41ee59e87e90d68b3f5 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
ava/io/BufferedInputStream.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/util/ArrayList.java
ac4f307115a738b0206030fe0d127f7c7f035b03 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
ava/net/InetAddress.java
b7926325a1c1a370c84c81db80372f59af240a53 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
ava/lang/VMThread.java
ava/lang/reflect/AnnotatedElement.java
ava/lang/reflect/GenericArrayType.java
ava/lang/reflect/GenericDeclaration.java
ava/lang/reflect/GenericSignatureFormatError.java
ava/lang/reflect/MalformedParameterizedTypeException.java
ava/lang/reflect/ParameterizedType.java
ava/lang/reflect/Type.java
ava/lang/reflect/TypeVariable.java
ava/lang/reflect/WildcardType.java
ava/net/InetAddress.java
ava/net/SocketPermission.java
ava/net/URLConnection.java
ava/util/Arrays.java
ava/util/ComparableTimSort.java
ava/util/TimSort.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java
rg/apache/harmony/luni/util/Inet6Util.java
687f18b91f4a0a728a027579110953ee729adcb8 22-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127436
ava/net/InetAddress.java
ava/net/NegCacheElement.java
ava/net/NegativeCache.java
ava/net/Socket.java
4351da844f9132d2d801d1a10ccc195091e31a8a 20-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127101
ava/util/HashMap.java
ava/util/LinkedHashMap.java
d94c06c605baa7814b787bab7c993775b486ffba 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
rg/apache/harmony/luni/lang/reflect/GenericSignatureParser.java
rg/apache/harmony/luni/lang/reflect/ImplForType.java
a0881d052ee72e3f7e773374e9b1aa75fbd6be4c 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
ava/io/BufferedOutputStream.java
ava/io/BufferedWriter.java
ava/io/CharArrayReader.java
ava/io/File.java
ava/io/FileInputStream.java
ava/io/FileOutputStream.java
ava/io/FilterOutputStream.java
ava/io/FilterWriter.java
ava/io/InputStream.java
ava/io/LineNumberInputStream.java
ava/io/ObjectInputStream.java
ava/io/OutputStreamWriter.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/RandomAccessFile.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/io/StringWriter.java
ava/io/Writer.java
ava/net/InetAddress.java
ava/net/ServerSocket.java
ava/util/Currency.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java
rg/apache/harmony/luni/lang/reflect/ImplForType.java
dd828f42a5c83b4270d4fbf6fce2da1878f1e84a 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
ava/io/BufferedInputStream.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/io/ByteArrayInputStream.java
ava/io/ByteArrayOutputStream.java
ava/io/CharArrayReader.java
ava/io/CharArrayWriter.java
ava/io/CharConversionException.java
ava/io/Closeable.java
ava/io/DataInput.java
ava/io/DataInputStream.java
ava/io/DataOutput.java
ava/io/DataOutputStream.java
ava/io/EOFException.java
ava/io/Externalizable.java
ava/io/File.java
ava/io/FileDescriptor.java
ava/io/FileFilter.java
ava/io/FileInputStream.java
ava/io/FileNotFoundException.java
ava/io/FileOutputStream.java
ava/io/FilePermission.java
ava/io/FilePermissionCollection.java
ava/io/FileReader.java
ava/io/FileWriter.java
ava/io/FilenameFilter.java
ava/io/FilterInputStream.java
ava/io/FilterOutputStream.java
ava/io/FilterReader.java
ava/io/FilterWriter.java
ava/io/Flushable.java
ava/io/IOException.java
ava/io/InputStream.java
ava/io/InputStreamReader.java
ava/io/InterruptedIOException.java
ava/io/InvalidClassException.java
ava/io/InvalidObjectException.java
ava/io/LineNumberInputStream.java
ava/io/LineNumberReader.java
ava/io/NotActiveException.java
ava/io/NotSerializableException.java
ava/io/ObjectInput.java
ava/io/ObjectInputStream.java
ava/io/ObjectInputValidation.java
ava/io/ObjectOutput.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/ObjectStreamConstants.java
ava/io/ObjectStreamException.java
ava/io/ObjectStreamField.java
ava/io/OptionalDataException.java
ava/io/OutputStream.java
ava/io/OutputStreamWriter.java
ava/io/PipedInputStream.java
ava/io/PipedOutputStream.java
ava/io/PipedReader.java
ava/io/PipedWriter.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/RandomAccessFile.java
ava/io/Reader.java
ava/io/SequenceInputStream.java
ava/io/Serializable.java
ava/io/SerializablePermission.java
ava/io/StreamCorruptedException.java
ava/io/StreamTokenizer.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/io/StringWriter.java
ava/io/SyncFailedException.java
ava/io/UTFDataFormatException.java
ava/io/UnsupportedEncodingException.java
ava/io/WriteAbortedException.java
ava/io/Writer.java
ava/io/package.html
ava/lang/AbstractMethodError.java
ava/lang/AbstractStringBuilder.java
ava/lang/Appendable.java
ava/lang/ArithmeticException.java
ava/lang/ArrayIndexOutOfBoundsException.java
ava/lang/ArrayStoreException.java
ava/lang/AssertionError.java
ava/lang/Boolean.java
ava/lang/Byte.java
ava/lang/CharSequence.java
ava/lang/Character.java
ava/lang/ClassCastException.java
ava/lang/ClassCircularityError.java
ava/lang/ClassFormatError.java
ava/lang/ClassNotFoundException.java
ava/lang/CloneNotSupportedException.java
ava/lang/Cloneable.java
ava/lang/Comparable.java
ava/lang/Deprecated.java
ava/lang/Double.java
ava/lang/Enum.java
ava/lang/EnumConstantNotPresentException.java
ava/lang/Error.java
ava/lang/Exception.java
ava/lang/ExceptionInInitializerError.java
ava/lang/Float.java
ava/lang/IllegalAccessError.java
ava/lang/IllegalAccessException.java
ava/lang/IllegalArgumentException.java
ava/lang/IllegalMonitorStateException.java
ava/lang/IllegalStateException.java
ava/lang/IllegalThreadStateException.java
ava/lang/IncompatibleClassChangeError.java
ava/lang/IndexOutOfBoundsException.java
ava/lang/InheritableThreadLocal.java
ava/lang/InstantiationError.java
ava/lang/InstantiationException.java
ava/lang/Integer.java
ava/lang/InternalError.java
ava/lang/InterruptedException.java
ava/lang/Iterable.java
ava/lang/LinkageError.java
ava/lang/Long.java
ava/lang/Math.java
ava/lang/NegativeArraySizeException.java
ava/lang/NoClassDefFoundError.java
ava/lang/NoSuchFieldError.java
ava/lang/NoSuchFieldException.java
ava/lang/NoSuchMethodError.java
ava/lang/NoSuchMethodException.java
ava/lang/NullPointerException.java
ava/lang/Number.java
ava/lang/NumberFormatException.java
ava/lang/OutOfMemoryError.java
ava/lang/Override.java
ava/lang/Process.java
ava/lang/ProcessBuilder.java
ava/lang/Readable.java
ava/lang/Runnable.java
ava/lang/RuntimeException.java
ava/lang/RuntimePermission.java
ava/lang/SecurityException.java
ava/lang/SecurityManager.java
ava/lang/Short.java
ava/lang/StackOverflowError.java
ava/lang/StrictMath.java
ava/lang/String.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
ava/lang/StringIndexOutOfBoundsException.java
ava/lang/SuppressWarnings.java
ava/lang/ThreadDeath.java
ava/lang/ThreadLocal.java
ava/lang/TypeNotPresentException.java
ava/lang/UnknownError.java
ava/lang/UnsatisfiedLinkError.java
ava/lang/UnsupportedClassVersionError.java
ava/lang/UnsupportedOperationException.java
ava/lang/VMThread.java
ava/lang/VerifyError.java
ava/lang/VirtualMachineError.java
ava/lang/Void.java
ava/lang/package.html
ava/lang/ref/ReferenceQueue.java
ava/lang/reflect/AnnotatedElement.java
ava/lang/reflect/GenericArrayType.java
ava/lang/reflect/GenericDeclaration.java
ava/lang/reflect/GenericSignatureFormatError.java
ava/lang/reflect/InvocationHandler.java
ava/lang/reflect/InvocationTargetException.java
ava/lang/reflect/MalformedParameterizedTypeException.java
ava/lang/reflect/Member.java
ava/lang/reflect/Modifier.java
ava/lang/reflect/ParameterizedType.java
ava/lang/reflect/Proxy.java
ava/lang/reflect/ReflectPermission.java
ava/lang/reflect/Type.java
ava/lang/reflect/TypeVariable.java
ava/lang/reflect/UndeclaredThrowableException.java
ava/lang/reflect/WildcardType.java
ava/lang/reflect/package.html
ava/net/Authenticator.java
ava/net/BindException.java
ava/net/CacheRequest.java
ava/net/CacheResponse.java
ava/net/ConnectException.java
ava/net/ContentHandler.java
ava/net/ContentHandlerFactory.java
ava/net/CookieHandler.java
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ava/net/DatagramSocketImpl.java
ava/net/DatagramSocketImplFactory.java
ava/net/FileNameMap.java
ava/net/HttpRetryException.java
ava/net/HttpURLConnection.java
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/InetSocketAddress.java
ava/net/JarURLConnection.java
ava/net/MalformedURLException.java
ava/net/MulticastSocket.java
ava/net/NegCacheElement.java
ava/net/NegativeCache.java
ava/net/NetPermission.java
ava/net/NetworkInterface.java
ava/net/NoRouteToHostException.java
ava/net/PasswordAuthentication.java
ava/net/PortUnreachableException.java
ava/net/ProtocolException.java
ava/net/Proxy.java
ava/net/ProxySelector.java
ava/net/ProxySelectorImpl.java
ava/net/ResponseCache.java
ava/net/SecureCacheResponse.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketAddress.java
ava/net/SocketException.java
ava/net/SocketImpl.java
ava/net/SocketImplFactory.java
ava/net/SocketOptions.java
ava/net/SocketPermission.java
ava/net/SocketPermissionCollection.java
ava/net/SocketTimeoutException.java
ava/net/URI.java
ava/net/URIEncoderDecoder.java
ava/net/URISyntaxException.java
ava/net/URL.java
ava/net/URLClassLoader.java
ava/net/URLConnection.java
ava/net/URLDecoder.java
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ava/net/URLStreamHandlerFactory.java
ava/net/UnknownHostException.java
ava/net/UnknownServiceException.java
ava/net/package.html
ava/util/AbstractCollection.java
ava/util/AbstractList.java
ava/util/AbstractMap.java
ava/util/AbstractQueue.java
ava/util/AbstractSequentialList.java
ava/util/AbstractSet.java
ava/util/ArrayList.java
ava/util/Arrays.java
ava/util/BitSet.java
ava/util/Calendar.java
ava/util/Collection.java
ava/util/Collections.java
ava/util/Comparator.java
ava/util/ConcurrentModificationException.java
ava/util/Currency.java
ava/util/Date.java
ava/util/Dictionary.java
ava/util/DuplicateFormatFlagsException.java
ava/util/EmptyStackException.java
ava/util/EnumMap.java
ava/util/EnumSet.java
ava/util/Enumeration.java
ava/util/EventListener.java
ava/util/EventListenerProxy.java
ava/util/EventObject.java
ava/util/FormatFlagsConversionMismatchException.java
ava/util/Formattable.java
ava/util/FormattableFlags.java
ava/util/Formatter.java
ava/util/FormatterClosedException.java
ava/util/GregorianCalendar.java
ava/util/HashMap.java
ava/util/HashSet.java
ava/util/Hashtable.java
ava/util/IdentityHashMap.java
ava/util/IllegalFormatCodePointException.java
ava/util/IllegalFormatConversionException.java
ava/util/IllegalFormatException.java
ava/util/IllegalFormatFlagsException.java
ava/util/IllegalFormatPrecisionException.java
ava/util/IllegalFormatWidthException.java
ava/util/InputMismatchException.java
ava/util/InvalidPropertiesFormatException.java
ava/util/Iterator.java
ava/util/LinkedHashMap.java
ava/util/LinkedHashSet.java
ava/util/LinkedList.java
ava/util/List.java
ava/util/ListIterator.java
ava/util/ListResourceBundle.java
ava/util/Locale.java
ava/util/Map.java
ava/util/MissingFormatArgumentException.java
ava/util/MissingFormatWidthException.java
ava/util/MissingResourceException.java
ava/util/NoSuchElementException.java
ava/util/Observable.java
ava/util/Observer.java
ava/util/PriorityQueue.java
ava/util/Properties.java
ava/util/PropertyPermission.java
ava/util/PropertyPermissionCollection.java
ava/util/PropertyResourceBundle.java
ava/util/Queue.java
ava/util/Random.java
ava/util/RandomAccess.java
ava/util/ResourceBundle.java
ava/util/Scanner.java
ava/util/Set.java
ava/util/SimpleTimeZone.java
ava/util/SortedMap.java
ava/util/SortedSet.java
ava/util/SpecialAccess.java
ava/util/Stack.java
ava/util/StringTokenizer.java
ava/util/TimeZone.java
ava/util/Timer.java
ava/util/TimerTask.java
ava/util/TooManyListenersException.java
ava/util/TreeMap.java
ava/util/TreeSet.java
ava/util/UUID.java
ava/util/UnknownFormatConversionException.java
ava/util/UnknownFormatFlagsException.java
ava/util/Vector.java
ava/util/WeakHashMap.java
ava/util/ZoneInfo.java
ava/util/ZoneInfoDB.java
ava/util/package.html
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConfiguration.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnectionManager.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java
rg/apache/harmony/luni/internal/nls/Messages.java
rg/apache/harmony/luni/internal/nls/messages.properties
rg/apache/harmony/luni/internal/util/ZoneInfo.java
rg/apache/harmony/luni/internal/util/ZoneInfoDB.java
rg/apache/harmony/luni/lang/reflect/GenericSignatureParser.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/platform/AbstractMemorySpy.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/IMemorySystem.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/MappedPlatformAddress.java
rg/apache/harmony/luni/platform/OSComponent.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/platform/Platform.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/platform/PlatformAddressFactory.java
rg/apache/harmony/luni/util/DeleteOnExit.java
rg/apache/harmony/luni/util/ExternalMessages.properties
rg/apache/harmony/luni/util/Inet6Util.java
rg/apache/harmony/luni/util/Msg.java
rg/apache/harmony/luni/util/MsgHelp.java
rg/apache/harmony/misc/internal/nls/Messages.java
fdb2704414a9ed92394ada0d1395e4db86889465 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
ava/io/BufferedInputStream.java
ava/io/BufferedOutputStream.java
ava/io/BufferedReader.java
ava/io/BufferedWriter.java
ava/io/ByteArrayInputStream.java
ava/io/ByteArrayOutputStream.java
ava/io/CharArrayReader.java
ava/io/CharArrayWriter.java
ava/io/CharConversionException.java
ava/io/Closeable.java
ava/io/DataInput.java
ava/io/DataInputStream.java
ava/io/DataOutput.java
ava/io/DataOutputStream.java
ava/io/EOFException.java
ava/io/EmulatedFields.java
ava/io/EmulatedFieldsForDumping.java
ava/io/EmulatedFieldsForLoading.java
ava/io/Externalizable.java
ava/io/File.java
ava/io/FileDescriptor.java
ava/io/FileFilter.java
ava/io/FileInputStream.java
ava/io/FileNotFoundException.java
ava/io/FileOutputStream.java
ava/io/FilePermission.java
ava/io/FilePermissionCollection.java
ava/io/FileReader.java
ava/io/FileWriter.java
ava/io/FilenameFilter.java
ava/io/FilterInputStream.java
ava/io/FilterOutputStream.java
ava/io/FilterReader.java
ava/io/FilterWriter.java
ava/io/Flushable.java
ava/io/IOException.java
ava/io/InputStream.java
ava/io/InputStreamReader.java
ava/io/InterruptedIOException.java
ava/io/InvalidClassException.java
ava/io/InvalidObjectException.java
ava/io/LineNumberInputStream.java
ava/io/LineNumberReader.java
ava/io/NotActiveException.java
ava/io/NotSerializableException.java
ava/io/ObjectInput.java
ava/io/ObjectInputStream.java
ava/io/ObjectInputValidation.java
ava/io/ObjectOutput.java
ava/io/ObjectOutputStream.java
ava/io/ObjectStreamClass.java
ava/io/ObjectStreamConstants.java
ava/io/ObjectStreamException.java
ava/io/ObjectStreamField.java
ava/io/OptionalDataException.java
ava/io/OutputStream.java
ava/io/OutputStreamWriter.java
ava/io/PipedInputStream.java
ava/io/PipedOutputStream.java
ava/io/PipedReader.java
ava/io/PipedWriter.java
ava/io/PrintStream.java
ava/io/PrintWriter.java
ava/io/PushbackInputStream.java
ava/io/PushbackReader.java
ava/io/RandomAccessFile.java
ava/io/Reader.java
ava/io/SequenceInputStream.java
ava/io/Serializable.java
ava/io/SerializablePermission.java
ava/io/StreamCorruptedException.java
ava/io/StreamTokenizer.java
ava/io/StringBufferInputStream.java
ava/io/StringReader.java
ava/io/StringWriter.java
ava/io/SyncFailedException.java
ava/io/UTFDataFormatException.java
ava/io/UnsupportedEncodingException.java
ava/io/WriteAbortedException.java
ava/io/Writer.java
ava/io/package.html
ava/lang/AbstractMethodError.java
ava/lang/AbstractStringBuilder.java
ava/lang/Appendable.java
ava/lang/ArithmeticException.java
ava/lang/ArrayIndexOutOfBoundsException.java
ava/lang/ArrayStoreException.java
ava/lang/AssertionError.java
ava/lang/Boolean.java
ava/lang/Byte.java
ava/lang/CharSequence.java
ava/lang/Character.java
ava/lang/ClassCastException.java
ava/lang/ClassCircularityError.java
ava/lang/ClassFormatError.java
ava/lang/ClassNotFoundException.java
ava/lang/CloneNotSupportedException.java
ava/lang/Cloneable.java
ava/lang/Comparable.java
ava/lang/Deprecated.java
ava/lang/Double.java
ava/lang/EmptyEnumeration.java
ava/lang/Enum.java
ava/lang/EnumConstantNotPresentException.java
ava/lang/Error.java
ava/lang/Exception.java
ava/lang/ExceptionInInitializerError.java
ava/lang/Float.java
ava/lang/IllegalAccessError.java
ava/lang/IllegalAccessException.java
ava/lang/IllegalArgumentException.java
ava/lang/IllegalMonitorStateException.java
ava/lang/IllegalStateException.java
ava/lang/IllegalThreadStateException.java
ava/lang/IncompatibleClassChangeError.java
ava/lang/IndexOutOfBoundsException.java
ava/lang/InheritableThreadLocal.java
ava/lang/InstantiationError.java
ava/lang/InstantiationException.java
ava/lang/Integer.java
ava/lang/InternalError.java
ava/lang/InterruptedException.java
ava/lang/Iterable.java
ava/lang/LinkageError.java
ava/lang/Long.java
ava/lang/Math.java
ava/lang/NegativeArraySizeException.java
ava/lang/NoClassDefFoundError.java
ava/lang/NoSuchFieldError.java
ava/lang/NoSuchFieldException.java
ava/lang/NoSuchMethodError.java
ava/lang/NoSuchMethodException.java
ava/lang/NullPointerException.java
ava/lang/Number.java
ava/lang/NumberFormatException.java
ava/lang/OutOfMemoryError.java
ava/lang/Override.java
ava/lang/Process.java
ava/lang/ProcessBuilder.java
ava/lang/Readable.java
ava/lang/Runnable.java
ava/lang/RuntimeException.java
ava/lang/RuntimePermission.java
ava/lang/SecurityException.java
ava/lang/SecurityManager.java
ava/lang/Short.java
ava/lang/StackOverflowError.java
ava/lang/StrictMath.java
ava/lang/String.java
ava/lang/StringBuffer.java
ava/lang/StringBuilder.java
ava/lang/StringIndexOutOfBoundsException.java
ava/lang/SuppressWarnings.java
ava/lang/ThreadDeath.java
ava/lang/ThreadLocal.java
ava/lang/TypeNotPresentException.java
ava/lang/UnknownError.java
ava/lang/UnsatisfiedLinkError.java
ava/lang/UnsupportedClassVersionError.java
ava/lang/UnsupportedOperationException.java
ava/lang/VMClassLoader.java
ava/lang/VMThread.java
ava/lang/VerifyError.java
ava/lang/VirtualMachineError.java
ava/lang/Void.java
ava/lang/package.html
ava/lang/ref/ReferenceQueue.java
ava/lang/ref/package.html
ava/lang/reflect/AnnotatedElement.java
ava/lang/reflect/GenericArrayType.java
ava/lang/reflect/GenericDeclaration.java
ava/lang/reflect/GenericSignatureFormatError.java
ava/lang/reflect/InvocationHandler.java
ava/lang/reflect/InvocationTargetException.java
ava/lang/reflect/MalformedParameterizedTypeException.java
ava/lang/reflect/Member.java
ava/lang/reflect/Modifier.java
ava/lang/reflect/ParameterizedType.java
ava/lang/reflect/Proxy.java
ava/lang/reflect/ReflectPermission.java
ava/lang/reflect/Type.java
ava/lang/reflect/TypeVariable.java
ava/lang/reflect/UndeclaredThrowableException.java
ava/lang/reflect/WildcardType.java
ava/lang/reflect/package.html
ava/net/Authenticator.java
ava/net/BindException.java
ava/net/CacheRequest.java
ava/net/CacheResponse.java
ava/net/ConnectException.java
ava/net/ContentHandler.java
ava/net/ContentHandlerFactory.java
ava/net/CookieHandler.java
ava/net/DatagramPacket.java
ava/net/DatagramSocket.java
ava/net/DatagramSocketImpl.java
ava/net/DatagramSocketImplFactory.java
ava/net/FileNameMap.java
ava/net/HttpRetryException.java
ava/net/HttpURLConnection.java
ava/net/Inet4Address.java
ava/net/Inet6Address.java
ava/net/InetAddress.java
ava/net/InetSocketAddress.java
ava/net/JarURLConnection.java
ava/net/MalformedURLException.java
ava/net/MulticastSocket.java
ava/net/NegCacheElement.java
ava/net/NegativeCache.java
ava/net/NetPermission.java
ava/net/NetworkInterface.java
ava/net/NoRouteToHostException.java
ava/net/PasswordAuthentication.java
ava/net/PortUnreachableException.java
ava/net/ProtocolException.java
ava/net/Proxy.java
ava/net/ProxySelector.java
ava/net/ProxySelectorImpl.java
ava/net/ResponseCache.java
ava/net/SecureCacheResponse.java
ava/net/ServerSocket.java
ava/net/Socket.java
ava/net/SocketAddress.java
ava/net/SocketException.java
ava/net/SocketImpl.java
ava/net/SocketImplFactory.java
ava/net/SocketOptions.java
ava/net/SocketPermission.java
ava/net/SocketPermissionCollection.java
ava/net/SocketTimeoutException.java
ava/net/URI.java
ava/net/URIEncoderDecoder.java
ava/net/URISyntaxException.java
ava/net/URL.java
ava/net/URLClassLoader.java
ava/net/URLConnection.java
ava/net/URLDecoder.java
ava/net/URLEncoder.java
ava/net/URLStreamHandler.java
ava/net/URLStreamHandlerFactory.java
ava/net/UnknownHostException.java
ava/net/UnknownServiceException.java
ava/net/package.html
ava/util/AbstractCollection.java
ava/util/AbstractList.java
ava/util/AbstractMap.java
ava/util/AbstractQueue.java
ava/util/AbstractSequentialList.java
ava/util/AbstractSet.java
ava/util/ArrayList.java
ava/util/Arrays.java
ava/util/BitSet.java
ava/util/Calendar.java
ava/util/Collection.java
ava/util/Collections.java
ava/util/Comparator.java
ava/util/ConcurrentModificationException.java
ava/util/Currency.java
ava/util/Date.java
ava/util/Dictionary.java
ava/util/DuplicateFormatFlagsException.java
ava/util/EmptyStackException.java
ava/util/EnumMap.java
ava/util/EnumSet.java
ava/util/Enumeration.java
ava/util/EventListener.java
ava/util/EventListenerProxy.java
ava/util/EventObject.java
ava/util/FormatFlagsConversionMismatchException.java
ava/util/Formattable.java
ava/util/FormattableFlags.java
ava/util/Formatter.java
ava/util/FormatterClosedException.java
ava/util/GregorianCalendar.java
ava/util/HashMap.java
ava/util/HashSet.java
ava/util/Hashtable.java
ava/util/HugeEnumSet.java
ava/util/IdentityHashMap.java
ava/util/IllegalFormatCodePointException.java
ava/util/IllegalFormatConversionException.java
ava/util/IllegalFormatException.java
ava/util/IllegalFormatFlagsException.java
ava/util/IllegalFormatPrecisionException.java
ava/util/IllegalFormatWidthException.java
ava/util/InputMismatchException.java
ava/util/InvalidPropertiesFormatException.java
ava/util/Iterator.java
ava/util/LinkedHashMap.java
ava/util/LinkedHashSet.java
ava/util/LinkedList.java
ava/util/List.java
ava/util/ListIterator.java
ava/util/ListResourceBundle.java
ava/util/Locale.java
ava/util/Map.java
ava/util/MapEntry.java
ava/util/MiniEnumSet.java
ava/util/MissingFormatArgumentException.java
ava/util/MissingFormatWidthException.java
ava/util/MissingResourceException.java
ava/util/NoSuchElementException.java
ava/util/Observable.java
ava/util/Observer.java
ava/util/PriorityQueue.java
ava/util/Properties.java
ava/util/PropertyPermission.java
ava/util/PropertyPermissionCollection.java
ava/util/PropertyResourceBundle.java
ava/util/Queue.java
ava/util/Random.java
ava/util/RandomAccess.java
ava/util/ResourceBundle.java
ava/util/Scanner.java
ava/util/Set.java
ava/util/SimpleTimeZone.java
ava/util/SortedMap.java
ava/util/SortedSet.java
ava/util/SpecialAccess.java
ava/util/Stack.java
ava/util/StringTokenizer.java
ava/util/TimeZone.java
ava/util/Timer.java
ava/util/TimerTask.java
ava/util/TooManyListenersException.java
ava/util/TreeMap.java
ava/util/TreeSet.java
ava/util/UUID.java
ava/util/UnknownFormatConversionException.java
ava/util/UnknownFormatFlagsException.java
ava/util/Vector.java
ava/util/WeakHashMap.java
ava/util/ZoneInfo.java
ava/util/ZoneInfoDB.java
ava/util/package.html
rg/apache/harmony/luni/internal/net/www/MimeTable.java
rg/apache/harmony/luni/internal/net/www/protocol/file/FileURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/file/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/FtpURLInputStream.java
rg/apache/harmony/luni/internal/net/www/protocol/ftp/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/http/Header.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConfiguration.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpConnectionManager.java
rg/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/https/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/https/HttpsURLConnection.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/Handler.java
rg/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java
rg/apache/harmony/luni/internal/net/www/types.properties
rg/apache/harmony/luni/internal/nls/Messages.java
rg/apache/harmony/luni/internal/nls/messages.properties
rg/apache/harmony/luni/internal/reflect/ProxyCharArrayCache.java
rg/apache/harmony/luni/internal/reflect/ProxyClassFile.java
rg/apache/harmony/luni/internal/reflect/ProxyConstantPool.java
rg/apache/harmony/luni/internal/reflect/ProxyConstants.java
rg/apache/harmony/luni/internal/reflect/ProxyMethod.java
rg/apache/harmony/luni/internal/reflect/ProxyNameAndTypeCache.java
rg/apache/harmony/luni/internal/reflect/ProxyObjectCache.java
rg/apache/harmony/luni/internal/util/TimezoneGetter.java
rg/apache/harmony/luni/lang/reflect/GenericSignatureParser.java
rg/apache/harmony/luni/lang/reflect/ImplForArray.java
rg/apache/harmony/luni/lang/reflect/ImplForType.java
rg/apache/harmony/luni/lang/reflect/ImplForVariable.java
rg/apache/harmony/luni/lang/reflect/ImplForWildcard.java
rg/apache/harmony/luni/lang/reflect/ListOfTypes.java
rg/apache/harmony/luni/lang/reflect/ListOfVariables.java
rg/apache/harmony/luni/lang/reflect/Types.java
rg/apache/harmony/luni/net/GenericIPMreq.java
rg/apache/harmony/luni/net/NetUtil.java
rg/apache/harmony/luni/net/PlainDatagramSocketImpl.java
rg/apache/harmony/luni/net/PlainMulticastSocketImpl.java
rg/apache/harmony/luni/net/PlainServerSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl.java
rg/apache/harmony/luni/net/PlainSocketImpl2.java
rg/apache/harmony/luni/net/SocketImplProvider.java
rg/apache/harmony/luni/net/SocketInputStream.java
rg/apache/harmony/luni/net/SocketOutputStream.java
rg/apache/harmony/luni/net/Socks4Message.java
rg/apache/harmony/luni/platform/AbstractMemorySpy.java
rg/apache/harmony/luni/platform/AdapterManager.java
rg/apache/harmony/luni/platform/Endianness.java
rg/apache/harmony/luni/platform/FileDescriptorHandler.java
rg/apache/harmony/luni/platform/IAdaptable.java
rg/apache/harmony/luni/platform/IAdapterFactory.java
rg/apache/harmony/luni/platform/IAdapterManager.java
rg/apache/harmony/luni/platform/ICommonDataTypes.java
rg/apache/harmony/luni/platform/IFileSystem.java
rg/apache/harmony/luni/platform/IMemorySpy.java
rg/apache/harmony/luni/platform/IMemorySystem.java
rg/apache/harmony/luni/platform/INetworkSystem.java
rg/apache/harmony/luni/platform/ISystemComponent.java
rg/apache/harmony/luni/platform/MappedPlatformAddress.java
rg/apache/harmony/luni/platform/OSComponent.java
rg/apache/harmony/luni/platform/OSComponentFactory.java
rg/apache/harmony/luni/platform/OSFileSystem.java
rg/apache/harmony/luni/platform/OSMemory.java
rg/apache/harmony/luni/platform/OSNetworkSystem.java
rg/apache/harmony/luni/platform/Platform.java
rg/apache/harmony/luni/platform/PlatformAddress.java
rg/apache/harmony/luni/platform/PlatformAddressFactory.java
rg/apache/harmony/luni/platform/RuntimeMemorySpy.java
rg/apache/harmony/luni/util/Base64.java
rg/apache/harmony/luni/util/BinarySearch.java
rg/apache/harmony/luni/util/DeleteOnExit.java
rg/apache/harmony/luni/util/ErrorCodeException.java
rg/apache/harmony/luni/util/ExternalMessages.properties
rg/apache/harmony/luni/util/FloatingPointParser.java
rg/apache/harmony/luni/util/HexStringParser.java
rg/apache/harmony/luni/util/Inet6Util.java
rg/apache/harmony/luni/util/InvalidJarIndexException.java
rg/apache/harmony/luni/util/Msg.java
rg/apache/harmony/luni/util/MsgHelp.java
rg/apache/harmony/luni/util/NotImplementedException.java
rg/apache/harmony/luni/util/NumberConverter.java
rg/apache/harmony/luni/util/OIDDatabase.java
rg/apache/harmony/luni/util/PasswordProtectedInputStream.java
rg/apache/harmony/luni/util/PositionedInputStream.java
rg/apache/harmony/luni/util/PriviAction.java
rg/apache/harmony/luni/util/SHAOutputStream.java
rg/apache/harmony/luni/util/Sorter.java
rg/apache/harmony/luni/util/TwoKeyHashMap.java
rg/apache/harmony/luni/util/URLUtil.java
rg/apache/harmony/luni/util/Util.java
rg/apache/harmony/misc/HashCode.java
rg/apache/harmony/misc/SystemUtils.java
rg/apache/harmony/misc/internal/nls/Messages.java
rg/apache/harmony/misc/internal/nls/messages.properties