• Home
  • History
  • Annotate
  • only in /libcore/ojluni/src/main/java/java/lang/
History log of /libcore/ojluni/src/main/java/java/lang/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
28bef292b8b6d2c2841d33cc8aec7dde6a9e84a0 06-Apr-2018 Tobias Thierer <tobiast@google.com> Fix up additional broken documentation links.

Because these links were missing the openjdk-redirect.html part, they
were going to broken http:/../ style URLs in generated documentation
that is currently live at eg.:

https://developer.android.com/reference/java/util/LinkedHashMap.html
(This class is a member of the Java Collections Framework.)

Bug: 77688043
Test: "make docs" and checked that the link in LinkedHashMap.html
now goes to:
../../..//openjdk-redirect.html?v=8&path=/technotes/guides/collections/index.html
and that that link works when manually applied relative to the
location where LinkedHashMap.html is currently published.

(cherry picked from commit 485a043306d328035182e2ca925a7401bd7eb56b)

Change-Id: If67ea16271c0a9f1336f15cbf8f7abdb968dd3b5
Merged-In: If67ea16271c0a9f1336f15cbf8f7abdb968dd3b5
tring.java
afb393dc680fb1c2b16a390a8a488aaaac1eac7c 20-Mar-2018 Hans Boehm <hboehm@google.com> Improve reachabilityFence

This avoids retaining the argument Object unnecessarily, at the cost
of making it even more ridiculously expensive. That's OK, since the
accompanying art CL ensures that it will not be called in a normal
production setting.

This unbreaks 036-finalizer with the added reachabilityFence.

Bug: 72698200

Test: art/test/run-test --host --prebuild --interpreter --verify-soft-fail --64 --build-with-javac-dx 036-finalizer

Change-Id: Ibfd8542fb9893f8ce05173ac6aa3cb4940cd4330
Merged-In: Ibfd8542fb9893f8ce05173ac6aa3cb4940cd4330
(cherry picked from AOSP commit 0f60d7c408e3fce7f8cdeb30e781dc59808fb722)
ef/Reference.java
66f101d94bc921d0078fee0ccff30a54202c9f1e 27-Feb-2018 Nicolas Geoffray <ngeoffray@google.com> Make System.arraycopy optimizations private.

So that we don't accidentally link against them.
The ART compiler will statically infer which specialized version
to use and call it.

bug: 73136314
bug: 74103559
Test: test.py

(cherry picked from commit 224ca17a4ba006fbb04554107788d1332fc9a0fb)

Change-Id: Ie9b985e11db39c0ff4bbb74fb427d1c034e57bc2
ystem.java
51e2e77cb38173a1598a7f014d5a0232da4818a8 28-Jan-2018 Orion Hodson <oth@google.com> Support for VarHandle invokers

Enables VarHandles to invoked by a MethodHandle.

Bug: b/65872996
Test: art/test/run-test --host 713

Change-Id: Ic52de41b796eb8fbeb218afcaddee7ba51b4951f
nvoke/MethodHandle.java
nvoke/MethodHandles.java
nvoke/VarHandle.java
a636fa97391c782e1249891c7c5a513bc2a384e1 15-Feb-2018 Vladimir Marko <vmarko@google.com> Add Class.getPrimitiveClass().

And revert workarounds for initialization of
java.lang.<boxed-primitive-type>.TYPE
to use the Class.getPrimitiveClass() just like upstream;
source files for Boolean, Double, Float, Short and Void
are now identical to OpenJDK8u121-b13.

Companion art/ change:
https://android-review.googlesource.com/619306

Test: m test-art-host-gtest
Test: tstrunner.py --host --optimizing
Test: Pixel 2 XL boots.
Bug: 73346078
Change-Id: I4490b80ecfec80b1369da15bf393ff95b8d30a3a
oolean.java
yte.java
haracter.java
lass.java
ouble.java
loat.java
nteger.java
ong.java
hort.java
oid.java
eb7be6982d412c8b4132394fa7886b03c87cf7e4 14-Feb-2018 Treehugger Robot <treehugger-gerrit@google.com> Merge "Fix ClassLoader.getSystemClassLoader() javadoc"
e09f203cc6322441d0b1d3c75fe1e191d1ed0386 13-Feb-2018 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix incorrect reference in java.lang.Character

Test: make docs
Bug: 68154037
Change-Id: Iefb64fc2c09cfe76fb9136fc2a12bca578ed7883
haracter.java
87b4460cf8792831d9067ba1f5a2ae2fb2a3e0f6 13-Feb-2018 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix ClassLoader.getSystemClassLoader() javadoc

It mentions a system property "java.system.class.loader" but that has no effect in Android.

Bug: 63270252
Test: make docs
Change-Id: I461e0327af631328c0462aebcc9aa1c1ce36de67
lassLoader.java
e31b37859051d3902e06e4ba384995df7188917f 02-Dec-2017 Hans Boehm <hboehm@google.com> Add reachabilityFence, ReachabilitySensitive

Add the @ReachabilitySensitive annotation itself, and use it
in libcore itself, where needed.

Import OpenJDK9+181's reachabilityFence, so that it can be used in
preference to the annotation where it makes sense. Java 9's
stopgap reachabilityFence implementation doesn't work for us,
so replace it with a different stopgap.

The libcore changes correct many situations in which finalizers
could previously run prematurely according to the JLS. Or they
would correct them if we had a real implementation for
@ReachabilitySensitive.

The ZipFile constructor could close the file before notifying the
CloseGuard that it was open.

Aside from the ZipFile change, there should be no functional
change, yet.

Note that the ExemptionMechanism.java fix is the same as upstream.

Conspicuously missing:

- Any code, e.g. in ART or D8, that actually looks for the annotation.
- Uses in frameworks code, where it's probably most critical.

Bug: 63934467
Bug: 70906684
Bug: 28342794
Test: Build & boot AOSP
Change-Id: I652f0625b39b2ba9ac901d4f63e6aa6cf3b74af5
ef/Reference.java
1fe05c11397a555d9e492608545c31bff87367a0 23-Jan-2018 Orion Hodson <oth@google.com> Update supported VarHandle accessor modes

Addresses misinterpretation on 32-bit platform.

Bug: 65872996
Test: art/test/run-test --host 710
Change-Id: I31a5f4bc5995bf1235b12dd66df91c1347ef93c0
nvoke/VarHandle.java
d021f1d8475cfdee7ba434d34412c32f40e81693 19-Jan-2018 Vladimir Marko <vmarko@google.com> Change Math method from @FastNative to @CriticalNative.

MathBenchmarks.java#timePow results on taimen's little cores
fixed at frequency 1401600 with forced JIT compilation:
- before:
- X32: 356.33
- X64: 357.31
- after:
- X32: 315.39
- X64: 315.37
Similar improvements are seen for timeIEEEremainder and
timeLog1p.

Test: Rely on TreeHugger.
Bug: 70727450
Change-Id: I692070cb7413bdc1aeb620ee1c505397ee0999e8
ath.java
a643a7a360975fb17a9b3bcfd712d3e23ea0cd7d 08-Jan-2018 Narayan Kamath <narayan@google.com> Merge "Daemons: Fix logging of finalizer timeouts."
59614472b1f367c9f374ec5f44ff44dfd7409e39 05-Jan-2018 Narayan Kamath <narayan@google.com> Daemons: Fix logging of finalizer timeouts.

The default uncaught exception handler doesn't log anything, we
must explicitly call the prehandler if we want to see logs.

This was broken by commit addbf9015a65ed.

Bug: 71508234
Test: Manual
Test: test-art-host

Change-Id: I4653ebc6c6eb001c31b8b0717969ff2465ef6359
hread.java
8dff75baaf60cbf15adf37385090f555f930043a 29-Dec-2017 Andreas Gampe <agampe@google.com> Libcore: Clean up library loading

Remove Runtime.doLoad, remove library path parameter to nativeLoad.
Move the setting to be retrieved by ART, to hide the complexity
and make similar library loading easier for future changes.

This also removes an old and somewhat stale comment for the need of
passing the LD_LIBRARY_PATH, and a no longer necessary synchronization
block.

Bug: 70901841
Test: m test-art-host
Test: device boots
Change-Id: Iaccaeb56422877abac9f7fe6f5a17364c8adf4ca
untime.java
206c2589ccd015b32660add2eff65ebd416ac836 30-Nov-2017 Neil Fuller <nfuller@google.com> OpenJDK 8u121 verify: java.lang.reflect

Removed @hide from the classes now that they are tested.
Updated Type docs from 8u121.

Bug: 35910877
Test: Build
(cherry picked from commit bd38a72dfa4b8197acca0f71ef57b986da30bee7)
Merged-In: I4d1df652001481d700b90c30766e0935fe8abf1f
Change-Id: I4d1df652001481d700b90c30766e0935fe8abf1f
eflect/MalformedParametersException.java
eflect/Type.java
c99342bb4ce22d842e806d9ebf2f9fcc761c05fb 11-Dec-2017 Tobias Thierer <tobiast@google.com> Fix malformed Android change markers.

These were not consistent with the style guide,
as enforced by the libcore-compare-upstreams tool.

Also improved the wording of a (previously malformed)
comment in InMemoryCookieStore.removeAll().

Test: Checked that the libcore-compare-upstreams
tool no longer complains about malformed
change markers after this CL.

Bug: 35910877
Change-Id: Ib83f819684ff309ea8e48d6767a84565739dff94
eflect/AccessibleObject.java
245b3d60e3fc303ffdaa5661bfc4cd1ff0306075 30-Nov-2017 Neil Fuller <nfuller@google.com> OpenJDK 8u121 verify: More java.lang.reflect

Adding improved change markers for various reflection classes.
Contains 2 8u121 updates associated with "@since 1.8" javadoc
in Constructor and Method and removal of "@since 1.8" on the
same method in Executable.

Bug: 35910877
Test: Build
Change-Id: Idca6e729b04dec7d238b48856ae9a6f0515df9b0
eflect/Constructor.java
eflect/Executable.java
eflect/Field.java
eflect/Method.java
eflect/Modifier.java
eflect/Parameter.java
eflect/TypeVariable.java
efd8764db0b3b576f37262eb1071b6e527d3b07d 30-Nov-2017 Neil Fuller <nfuller@google.com> OpenJDK 8u121 verify: java.lang.reflect.Proxy

Updated change markers with more information.
Removed an unused field.
Commented upstream code in a few places rather
than deleting it.
Moved related Proxy generation code together to limit
the extent of the patch.

Bug: 35910877
Test: Build
Change-Id: I63f6bb61d9f2059ea3a14be2e41d18c7feec3e24
eflect/Proxy.java
b1d1bee096bcd15585b332be913a6698a74a7476 01-Dec-2017 Neil Fuller <nfuller@google.com> Merge "Remove unnecessary Proxy methods"
703dfdefa43d5d37ea7cb1fe56b2d2b2c409ce2b 30-Nov-2017 Neil Fuller <nfuller@google.com> Remove unnecessary Proxy methods

The reserved1() and reserved2() static methods
are not used and appear to be unnecessary.

Bug: 35910877
Test: make test-art-host
Change-Id: I2d47d33ac0fe641a0d47077987c521cd57dc18ef
eflect/Proxy.java
f48ef9b61ba119b11f26d3f27d93d673ff995c1e 30-Nov-2017 Neil Fuller <nfuller@google.com> Merge "OpenJDK 8u121 verify: java.lang.Iterable"
c879cde94685a8927d9763ed922b3cb00f8ad8db 29-Nov-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "OpenJDK 8u121 verify: j.l.reflect.AccessibleObject"
eaa61aa6d5babbeb24c70b4afa3dfa3eb8fed264 29-Nov-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "OpenJDK 8u121 verify: java.lang.Math"
ea52d0344712d14877f859f2358810261fc5626a 29-Nov-2017 Neil Fuller <nfuller@google.com> Merge "OpenJDK 8u121 verify: j.l.reflect.Array"
6e303512326afb51df6c0e8e015c970be0e03130 29-Nov-2017 Neil Fuller <nfuller@google.com> OpenJDK 8u121 verify: java.lang.Iterable

Added a change marker.

Bug: 35910877
Test: Build
Change-Id: If4e5906f459b79956296a2429341cd69e46567ea
terable.java
b4392ebb40e4fd1662a29a51d00b1127c105c76a 29-Nov-2017 Neil Fuller <nfuller@google.com> Merge "OpenJDK 8u121 verification for java.lang classes"
1dd50493a2a5e7191be94c45f915448dc9d2130d 29-Nov-2017 Neil Fuller <nfuller@google.com> OpenJDK 8u121 verify: j.l.reflect.AccessibleObject

Improved commenting, no functional changes.

Bug: 35910877
Test: build
Change-Id: I854a986ab0457fec21ed19f9e5f11429db054224
eflect/AccessibleObject.java
5a6bb5540b3f30d8f0b2c2ea062fc465317db88e 29-Nov-2017 Neil Fuller <nfuller@google.com> OpenJDK 8u121 verify: java.lang.Math

Add change markers.

Bug: 35910877
Test: Build
Change-Id: I7988c3daaae9a647c673d336eda99b84918d07e0
ath.java
5af1ced939215abab514f8406ff2d45448d23ae5 29-Nov-2017 Neil Fuller <nfuller@google.com> OpenJDK 8u121 verify: j.l.reflect.AnnotatedElement

Improved change markers. No functional changes.

Bug: 35910877
Test: build
Change-Id: Ifa1f070f383fe2936748c3719a7bae0b4de9a026
eflect/AnnotatedElement.java
bcf83591e4bcfc9f6417bbdd049d5ed0f20a7378 29-Nov-2017 Neil Fuller <nfuller@google.com> OpenJDK 8u121 verify: j.l.reflect.Array

Improved change markers, reordered methods to more closely
match upstream code, reverted parameter name change and line
breaks to more closely match upstream code, no functional
changes.

Bug: 35910877
Test: build
Change-Id: I38bb6ed0d95fbf67fb08137f8b1b09528acb128a
eflect/Array.java
066ca9cf98d61189a0acc1ad7f3f16ce508aad84 29-Nov-2017 Neil Fuller <nfuller@google.com> OpenJDK 8u121 verification for java.lang classes

Documentation updates for some java.lang classes:

NoClassDefFoundError: Added change markers
Package: Added change markers
ProcessBuilder: Imported javadoc changes from upstream

Bug: 35910877
Test: build
Change-Id: I9abd8aae67a58b583e012495549bcaf0b2975bf8
oClassDefFoundError.java
ackage.java
rocessBuilder.java
35d845b3f31d5b642833750a194051af4439e9af 25-Oct-2017 Orion Hodson <oth@google.com> VarHandle simplifications

Simplifications for the runtime to avoid pointer chasing:

- Store the coordinate types in the VarHandle as a separate fields
rather than a list.
- Store a boolean indicating a change in byte ordering is required
rather than a ByteOrder field.

And a consistency tweak with s/ByteArrayVarHandle/ByteArrayViewVarHandle/g.

Bug: 65872996
Test: art/test.py --host -g -j32
Change-Id: I11922b0c702d1d4b46c618db70ded22e2ac248d0
nvoke/MethodHandles.java
nvoke/VarHandle.java
943d2491523718cbaf8543c3f72460afac2a4f04 17-Oct-2017 Pete Gillin <peteg@google.com> Merge "Add/update android-changed markers for j.l.Boolean and Void."
87e39b83e4093869cf73de2ed2876335f41ef3f7 16-Oct-2017 Pete Gillin <peteg@google.com> Add/update android-changed markers for j.l.Boolean and Void.

This change covers the two boxed primitives not covered in
http://r.android.com/510136, in much the same way.

(The previous state of Void was odd: the commented-out code was not
from upstream but from a previous android change. Now, the
commented-out code is from OpenJDK 8u121-b13.)

Test: make checkbuild
Change-Id: I9ce18632e2dd479f61036084f555fde72ad20378
oolean.java
oid.java
6cf88bbc10dad701789a72c9b37b2081bd274076 16-Oct-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Remove unused method String.fastIndexOf"
1416da0a874ede51b404a877cdfd0da4ffc75d0a 16-Oct-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Add some Android-changed markers to boxed primitive types."
fecaee368398834c41251111ea95714142a9bd01 05-Oct-2017 Orion Hodson <oth@google.com> Implement simple methods on java.lang.invoke.VarHandle.

Implements the plain instance methods in VarHandle.

Adds classes for VarHandles accessing array elements, byte arrays,
byte buffers, and fields, and allows them to be instantiated via
MethodHandles and MethodHandles.Lookup.

Bug: 65872996
Test: art/test/run-test --host 710
Change-Id: Ic028a2e896c2c64846c394ce33363a8542ffd2a7
nvoke/MethodHandles.java
nvoke/VarHandle.java
46f9425237f413bd1a46e9b64e423748bcc69c6e 13-Oct-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Fix for MethodHandles.Lookup.unreflect{G,S}etter"
aac8234b40ade7f8e4c27e571e4ee2ba32051fbe 11-Oct-2017 Pete Gillin <peteg@google.com> Add some Android-changed markers to boxed primitive types.

This change adds or clarifies some markers of changes relative to
OpenJDK 8u121-b13.

N.B. There are still unmarked changes in Character.java.

Test: make checkbuild
Change-Id: I9cd8f2e8e9ee042cd6ac2dff2b4531651f5ced64
yte.java
haracter.java
ouble.java
loat.java
nteger.java
ong.java
hort.java
898084bb473dca7d15ee9136fcebe1782e9dcc10 12-Oct-2017 Orion Hodson <oth@google.com> Fix for MethodHandles.Lookup.unreflect{G,S}etter

Fixes logic of permission checks for field unreflection methods.

Bug: 30550796
Bug: 67730310
Test: art/test.py --host -t 959
Change-Id: Ia38f8fc9e941037b3176a8380182cec70dcc755f
nvoke/MethodHandles.java
4f50e0e262ca9911130c89a71930a483558fa3fd 11-Oct-2017 Pete Gillin <peteg@google.com> Fix incorrect Android-changed markers in String.java.

This change notes that the String(char[], boolean) constructor is
removed and the String(int, int, char[]) constructor is added. The
markers in http://r.android.com/501921 missed the change in signature.

Test: make checkbuild
Change-Id: Iae3c4c9c153fc0c6fc36c4e637c5a3705ea8b996
tring.java
9c1db59e4aee0323b9b08e831782c3d3d047de8e 09-Oct-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Remove unused method String.fastIndexOf

Test: make test-art-host-gtest
Bug: 67411061
Change-Id: Ie1a4d0d28a25a22911d12e968a0a1d690b5b2aa9
tring.java
68bb0c2a19032813185244961f55517f3d8ae468 05-Oct-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Add Android-changed markers to String.java."
cb54fdfcdb082e5585fdc988f1e3a2f0f2595ca6 03-Oct-2017 Pete Gillin <peteg@google.com> Add Android-changed markers to String.java.

This change adds markers for all changes relative to OpenJDK 8u121-b13
(although the more mechanical changes are covered by a catch-all
rather than line-by-line). It also reverts a couple of trivial
differences compared to upstream which were seemingly missed (e.g. a
period in some javadoc) and removes some unused imports.

Test: make checkbuild
Change-Id: Ia8b9e5b1534fe1bc0c38abce2b5badaffde3c67f
tring.java
1c07c32ba63ba7d3a3b4c62d0face76b774173c6 05-Oct-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Remove unused package-private class java.lang.StringCoding."
4ac6b7bd50edd486863f4c8d635b582f7d2a9bdb 04-Oct-2017 Pete Gillin <peteg@google.com> Add change markers to StringIndexOutOfBoundsException.

This marks the changes relative to OpenJDK 8u121-b13. It also reduces
the visibility of the extra methods, since they're only used in
java.lang.

Test: make checkbuild
Change-Id: Ia49e72d59f5d29b11d0f705079a8d2eb623c9336
tringIndexOutOfBoundsException.java
3213395686ac73b18fcb4d0d65a7e55786c4a722 04-Oct-2017 Pete Gillin <peteg@google.com> Remove unused package-private class java.lang.StringCoding.

This was inherited from upstream but is unused in android due to
changes in java.lang.String et al.

Test: make checkbuild
Change-Id: Id6f9db95139d39c1c7dbc818ef757ed2f67028b2
tringCoding.java
2e49cec4481eb85b1483faad48a8ba771a51ef44 03-Oct-2017 Pete Gillin <peteg@google.com> Merge "Apply cosmetic changes to String.java from OpenJDK 8u121-b13"
6d013f1f91d4634ee4adb414fe1e635775f5e7d2 02-Oct-2017 Pete Gillin <peteg@google.com> Apply cosmetic changes to String.java from OpenJDK 8u121-b13

Upstream updated a year in a copyright and removed some unhelpful
'@throw NullPointerException' javadocs, and those changes were omitted
here. This change applies those changes. It also removes a few
spurious whitespace diffs that crept in along the way.

Test: make checkbuild
Change-Id: Id8520daaa2dd67d02818fe2bb52994f7e859fbdf
tring.java
50bbf29b24e0fe4d9d37ecce250c6436fd2442d0 27-Sep-2017 Orion Hodson <oth@google.com> Introduce java.lang.invoke.VarHandle APIs.

These are present in preparation for OpenJDK 9 to allow VM support for
VarHandle accessors and fences to be developed. For this initial
import the VarHandle APIs are hidden and unimplemented.

The implementation path will follow the approach taken with the
MethodHandle API: public API compatability and alternative
implementation strategy based on VM functionality.

The files in this CL under ojluni/ define the APIs and are based on
the corresponding files in upstream OpenJDK 9+181.

Bug: 65872996
Test: m -j32
Change-Id: I678ab2239507b349a9701a4a6f5bbc92bf18b40d
nvoke/MethodHandles.java
nvoke/VarHandle.java
1301f00ab0cfe36d2f3163f1461cb22b96622aa8 08-Sep-2017 Igor Murashkin <iam@google.com> Revert "Class: Make status 64-bit field"

This reverts commit fcdbd71836d670a2a3e9581011a6791805d63fa0.

Reason for revert: <INSERT REASONING HERE>

Change-Id: Ie934bc05de0d31863eecb8450fdd27a4445b9a9b
lass.java
fcdbd71836d670a2a3e9581011a6791805d63fa0 07-Sep-2017 Igor Murashkin <iam@google.com> Class: Make status 64-bit field

Bug: 64692057
Test: art/test.py -j32 --host
Change-Id: If104832c66973e6ffe8baf81ad1b32237ee78a80
lass.java
7c5a89dd4ce9685a8785d5bde7c25d61959fe447 18-Aug-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Expand SecurityManager javadoc with info about its support.

Test: make docs
Bug: 36673225
Change-Id: Ia6aa68857e4ba63ec59455934d0554ba528aa169
ecurityManager.java
163670fc9b2ad3116bf145aec489001258f256ce 07-Jul-2017 Pete Gillin <peteg@google.com> Fix a typo in a comment in String.java.

(This wasn't doing any harm, but we might as well fix it.)

Test: vogar `cparg core-tests` libcore/luni/src/test/java/libcore/java/lang/StringTest.java libcore/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/StringTest.java
Change-Id: I8bb2a35438604ae054751c1ec75602251fa7dec5
tring.java
e73fb5ccf8258577107e5b34e8a7b0ecba9e9343 13-Jun-2017 Tobias Thierer <tobiast@google.com> Minimize diff vs. upstream for a few files.

This CL comprises the following changes:

- FileDescriptor: Fix a typo that was made when integrating an upstream
change.
- Throwable: Integrate a minor upstream change that had been forgotten.
There are undocumented/unverified changes in this file, which need
to be verified in a follow-up CL.
- MethodHandleStatistics: Use block comments to include removed upstream
code. The commented-out code helps identify the upstream revision
(OpenJDK 8u121-b13) that this file is based on/up-to-date with.
Also improved the Android-changed documentation.

Test: Treehugger build succeeds.
Bug: 35910877

Change-Id: Ifd88499af46952a2767f4ccf9745b166f62cfa0f
hrowable.java
nvoke/MethodHandleStatics.java
b145421cbbb618808d2c3e8026204d90eaccc410 06-Jun-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Update java.lang.ref.Reference to u121-b13.

Test: make
Bug: 36461944
Change-Id: Ic0f908b413d9bfc9e662149381aacdfeb1785081
ef/Reference.java
20fd9c0841981c93afbce4b9888d5d2589ae9cc1 31-May-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Remove java.lang.JavaLangAccess

First port of openJdk to libcore took sun.misc.JavaLangAccess
and put it into java.lang to help with Class.getEnumConstantsShared
visibility. This change removes java.lang.JavaLangAccess,
makes Class.getEnumConstantsShared public&hidden and
changes java.util to call getEnumConstantsShared
directly.

Test: make
Bug: 36429512
Change-Id: I547fcebee3a5839d5af05753c9d18e08f54bd335
lass.java
avaLangAccess.java
82fdb5400730b9e32b912297d39385a0ef5193b7 12-May-2017 Adam Vartanian <flooey@google.com> Make Android-changed markers for SecurityManager-related classes consistent.

Bug: 38256375
Test: make
Change-Id: Ibdd8a56d324edcc0b6646eaffc825c68c27b17f9
untimePermission.java
ecurityManager.java
eflect/ReflectPermission.java
d437e89785f07564d7ebe8fc9884afef7d47444a 19-Apr-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "misc: Tweak Android change documentation, revert redundant changes."
bd6009f50431c79c5ae64ae977f1d335c383c6f6 19-Apr-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Thread: Improve exception message for bad priorities."
c3155270c33344c61e2e8dc055410fc9fc215a24 13-Apr-2017 Tobias Thierer <tobiast@google.com> misc: Tweak Android change documentation, revert redundant changes.

Tweaked existing or added missing Android change documentation
for misc ojluni .java files.

Also got rid of a couple of small needless differences
(e.g. indentation) vs. upstream OpenJDK8u121-b13.

The selection of files touched by this CL is fairly arbitrary.
Future CLs will likely apply similar changes to other files.

AbstractStringBuilder: Revert minor indentation difference vs. upstream
ArrayIndexOutOfBoundsException: Tweak docs for @hide constructors
Byte: Tweak change docs
Console: Minor tweaks to minimize diff, minor improvements to change docs
DeleteOnExitHook: add missing Android-changed documentation
InterruptedIOException: Added change comment body.
HijrahChronology: Revert minor indentation difference vs. upstream
SocketTimeoutException: Added change comment body.
Serializable:: add missing Android-added documentation.
SerializablePermission: Improve toplevel documentation, added Android-changed comment

Bug: 35910877
Test: Treehugger build succeeds
Change-Id: Ia7d1236fb694fc706ae1bba7ba31b320b00a2795
bstractStringBuilder.java
rrayIndexOutOfBoundsException.java
yte.java
decb673fdbd066ae760a77da00684d3e5b0f07f0 18-Apr-2017 Tobias Thierer <tobiast@google.com> Merge changes Ib35bb121,I9903fc50

* changes:
Ensure all ojluni Android-changed comments occur in line comments.
Further canonicalized Android-changed comments
087345a1b9523ee891289afebeb61368f6466f84 13-Apr-2017 Narayan Kamath <narayan@google.com> Thread: Improve exception message for bad priorities.

Bug: 37156607

Test: Manual inspection of exception messages. Automated tests that
verify a specific message are not desirable.

Change-Id: I94cc35f4c52ae9f9201d0a11bcebebca7b57873c
hread.java
9eca269fb2932fb9fd99b6e898600e7a21ade0e0 12-Apr-2017 Tobias Thierer <tobiast@google.com> Ensure all ojluni Android-changed comments occur in line comments.

This brings the comments closer to the style guide and allows
automated extraction of the comment body.

After this CL, every occurence of "Android-" in a ojluni .java file
is in a line that contains a match for the regexp pattern:

"// (BEGIN |END |)Android-(?:changed|added|removed|note)(?:(?:: )?(.*))$"

Most of the previous violations of this rule were block comments that
should have been line comments (per the style guide), but there were
also some other occurence such as a reference to some other
"(Android-removed)" parts in prose, which was changed to
"(Android removed)".

There was a mix of:
Android-removed: this debugging mechanism is not used in Android.
Android-removed: this debugging mechanism is not used in Android
Android-removed: this debugging mechanism is not supported in Android.

comments that were all normalized to:

// Android-removed: this debugging mechanism is not used in Android.

Test: Treehugger build succeeds
Test: Script (unsubmitted) does not find any occurences of "Android-"
in ojluni .java files that do not match the above regex Pattern.
Bug: 35841464

Change-Id: Ib35bb1215d1fc29e82ba0a12f32c86423c737173
nvoke/CallSite.java
de283414f204358be778468d6081097a4b721cdc 12-Apr-2017 Tobias Thierer <tobiast@google.com> Further canonicalized Android-changed comments

Fixed up two typos and rephrased one occurence of "Android-only",
since the intention of the style guide is for the substring "Android-"
to only occur in documentation for Android changes

After this CL, the only occurences of the substring "Android-"
in ojluni .java files are in lines that contain a match for the
regex pattern

"Android-(?:changed|added|removed|note)(?:(?:: )?(.*))$"

Test: Treehugger build succeeds
Test: Verified via (unsubmitted) tool that the above statement
about lines that contain "Android-" holds.
Bug: 35841464

Change-Id: I9903fc50ab2af2b4b16cd317e42aa4dc3b28641a
ystem.java
1367e7d218247a9708365389ac7076af75b9ab51 11-Apr-2017 Orion Hodson <oth@google.com> Implement MethodHandles.explicitCastArguments()

- provides conversions and checks for explicitCastArguments
- updates a couple of conversion checks to use Class.cast()

Bug: 33192564
Test: vogar --jack-arg "-D jack.java.source.version=1.7" --jack-arg "-D jack.android.min-api-level=o-b1" --mode=host libcore/luni/src/test/java/libcore/java/lang/invoke/MethodHandleCombinersTest.java
Change-Id: I36ab383145db97de46b2ca7fa6064f998d8009fe
nvoke/MethodHandles.java
nvoke/MethodType.java
nvoke/Transformers.java
4eca636f785d6f8aa0d74d3569d775ee6cca3edf 28-Mar-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "java.lang.reflect javadoc chages from openJdk8u121"
f571f73c6a0db9be378aed471f782bcde5d32f5a 28-Mar-2017 Neil Fuller <nfuller@google.com> Merge "Centralize knowledge of time zone file paths"
de477753065bacbbd28104119236692b37d4836c 28-Mar-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> java.lang.reflect javadoc chages from openJdk8u121

Test: make -j 32
Bug: 36461944
Change-Id: I92d111c05aa43ed5c6032ca13bd55f4f73c1bb35
eflect/Array.java
eflect/Constructor.java
eflect/Method.java
eflect/ReflectPermission.java
bab90fe9bc8cd53373d0881b3f0b97f24bc61b21 24-Mar-2017 Neil Fuller <nfuller@google.com> Centralize knowledge of time zone file paths

Centralize the knowledge of time zone file paths. The
knowledge is in a couple of places and there is some
file name duplication. A new file will be
added if time_zones_by_country.xml is made
updateable outside of an OTA.

Test: make / boot (to confirm the new System class dependency is ok)
Test: run cts -m CtsLibcoreTestCases -t libcore.java.lang.SystemTest
Test: run cts -m CtsLibcoreTestCases -t libcore.util.TimeZoneDataFilesTest
Test: run cts -m CtsLibcoreTestCases -t libcore.util.ZoneInfoDBTest
Bug: 25338903
Change-Id: Iaf9afc148faee8db7839513270a621a8149fd5fa
ystem.java
e764e1cf4b0399eac04d453735f0c9ffcdd2351f 21-Mar-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Update remaining java.lang.* classes to openJdk8u121

- Javadoc changes
- Missing ctor in exception type

Test: make -j 32
Bug: 36461944
Change-Id: I68667df09d8ca0be1866e0cb06b3677b1db7e3b8
lassLoader.java
verride.java
nnotation/ElementType.java
nvoke/CallSite.java
nvoke/ConstantCallSite.java
nvoke/MutableCallSite.java
eflect/GenericSignatureFormatError.java
eflect/Member.java
eflect/TypeVariable.java
62ef120281c2ac8ed3c3c6fd8abc78ddd49fae12 20-Mar-2017 Narayan Kamath <narayan@google.com> Remove com.android.dex.* from the boot classpath.

All boot classpath dependencies on this code have been removed.
The only remaining user is dx.

Test: CtsLibcoreTestCases

Change-Id: If7350bdd9ebe072e8ee3c3499f1d9f912799dd48
lass.java
eflect/Field.java
e77a467884a8b323a1ac6a229f06f9a032b141b5 09-Mar-2017 Narayan Kamath <narayan@google.com> Class: Get rid of most of java.lang.DexCache.

There was a fair amount of unnecessary code duplication between ART
and libcore. Most Class / reflect APIs had move to native anyway, so
this change moves the rest of them over and lets us delete a lot of
untested and somewhat bit-rotten code.

Test: test-art-host, cts -m CtsLibcoreTestCases

Change-Id: I5eab1fe95466991f23e88a920fea3924a0d3e459
lass.java
eflect/Constructor.java
eflect/Executable.java
eflect/Field.java
eflect/Method.java
6006828deaa0d3c8515c144751d4c53f79290ff2 09-Mar-2017 Narayan Kamath <narayan@google.com> Class: Add temporary debugging for issue 35970297

Test: make
Change-Id: Ib7dadda8420da7b8d84ff15ba34411f785b94894
lass.java
2c0c8889ff415431e3c2d6d5ac95748f8b284384 08-Mar-2017 Narayan Kamath <narayan@google.com> Dex: Delete unused / vestigial code.

Not covered by unit tests and not used anywhere.

Test: make test-art-host
Test: CtsLibcoreTestCases

Change-Id: I6131c958942c85ea96f471ef4abb978a25191b3d
lass.java
6975f84c2ed72e1e26d20190b6f318718c849008 01-Mar-2017 Tobias Thierer <tobiast@google.com> Make Android patch docs in ojluni more consistent with style guide

This CL consists of an automated and a manual part (originally
reviewed as separate CLs, then squashed together before submitting
in order to minimize the number of times each Android-changed line
is touch, since that makes future git archaeology on these simpler).

Automated part: Run the following command (performs regex replacements):

find ojluni -name \*\.java | xargs sed -i \
-e 's/Android[- ]changed/Android-changed/ig' \
-e 's/Android-changed :/Android-changed:/g' \
-e 's/Android-changed \(BEGIN\|END\)/\1 Android-changed/g' \
-e 's/Android-changed - /Android-changed: /g' \
-e 's/Android[- ]removed/Android-removed/ig' \
-e 's/Android-removed :/Android-removed:/g' \
-e 's/Android-removed \(BEGIN\|END\)/\1 Android-removed/g' \
-e 's/Android-removed - /Android-removed: /g' \
-e 's/Android[- ]added/Android-added/ig' \
-e 's/Android-added :/Android-added:/g' \
-e 's/Android-added \(BEGIN\|END\)/\1 Android-added/g' \
-e 's/Android-added - /Android-added: /g' \
-e 's/----- \(BEGIN\|END\) android\( -----\)\?/\1 Android-changed/g' \
-e 's/\/\* \(BEGIN\|END\) Android-changed \*\//\/\/ \1 Android-changed/g'

Manual part: Move BEGIN Android-* lines out of block comments

Some Android-{changed,removed,added} lines occurred inside block comments.
This CL targets places in ojluni that contained the String "* BEGIN Android-"

Changes made by this CL include:

- Move the "BEGIN Android-" line into a line comment (the style guide
mandates that "Android-" lines are always in line comments). In many
cases, that line comment is immediately followed by a block comment
holding commented-out upstream code.
- Add corresponding "// END Android-" line comments, where missing.
- Drop documented import changes altogether. These create noise for
little benefit:
(1.) Most import problems will be found at compile time
(2.) They generally correspond to documented changes elsewhere in
the file.
- In most cases, the phrasing of comments and the decision whether to
keep commented out upstream code was not changed by this CL.
- Some additional tweaks were made in line with the style guide.

No attempt was made to:

- Verify that commented-out upstream code actually matches the
current upstream.
- Make any fixes (eg. to comments) that would have required
git archaeology (looking up historic commits).

Bug: 35841464
Test: make droid cts update-api

Change-Id: Ibc60979cb6061cfb0e9c7096cc9dcab30ddfa733
yte.java
lass.java
lassLoader.java
ackage.java
tringCoding.java
ystem.java
hread.java
hreadGroup.java
hrowable.java
eflect/Array.java
eflect/Constructor.java
eflect/Method.java
eflect/Proxy.java
91541d7408d99ec186e07866132c3661e81c20f8 02-Mar-2017 Andreas Gampe <agampe@google.com> Libcore: Reduce System.in buffer size

System.in is practically never used on Android. Reduce the buffer
size from the default (8K) to 128 (in line with the output streams)
to reduce zygote heap usage.

Bug: 34956610
Test: m
Test: m test-art-host
Test: m build-art-host vogar core-tests jsr166-tests mockito-target && art/tools/run-libcore-tests.sh --mode=host
Change-Id: I9305f93ec8e37729762c54d9fc2ea79b30249a11
ystem.java
765b32c17e4692a91b96c623e0e6c1c833ed4e3a 28-Feb-2017 Vladimir Marko <vmarko@google.com> Merge "Fix java.lang.Void.TYPE (void.class) initialization."
1a946ed23b78c9fe27cfed4662fa91ed72119ca4 24-Feb-2017 Vladimir Marko <vmarko@google.com> Fix java.lang.Void.TYPE (void.class) initialization.

Do not rely on the DexCache resolved types now that entries
can be evicted.

Test: 157-void-class
Test: testrunner.py --host
Bug: 35652776
Bug: 30627598
Change-Id: I0d7dec04efc0b6e9876933186ad3caa79eb2f04d
oid.java
0af121102ca8b8aaf1dab12d3e6202c480d83f28 27-Feb-2017 Nicolas Geoffray <ngeoffray@google.com> Re-arrange identityHashCode for better performance.

Brings in ~8% improvement to Ritz::EvaluateComplexFormulas.

Test: run-libcore-tests test-art-host
bug: 30933338
Change-Id: Ibe51ece41096910a0206f6eb779e48ed65451c6e
bject.java
ystem.java
955bb11524eb9157059a7ff0d65f946b3e801353 23-Feb-2017 Vladimir Marko <vmarko@google.com> Revert^2 "Enable String compression."

Test: m test-art-host (interpreter, JIT, AOT)
Test: m test-art-target on Nexus 6P (interpreter, JIT, AOT)
Test: Nexus 6P boots
Test: m ahat-test
Bug: 31040547

This reverts commit 979bc3192ec23db4d06977d59fed28f41ae1c174.

Change-Id: I31840806dd71b6aedd0ec7c8e627a6fa06d95bdf
tring.java
a450da5cf46ba7f3faf30ffba532aa2fa90e6772 16-Feb-2017 Narayan Kamath <narayan@google.com> MethodHandles: unreflectSpecial should not allow static methods.

Special lookups are, by definition, restricted to instance methods
(either private methods or super calls).

Also check in a suite of tests that exposed this bug.

Test: vogar --mode=host MethodHandlesTest
Change-Id: I8128c8529602df8094e2c59e276f7b6e8a5a90bd
nvoke/MethodHandles.java
24399dc19e8dbaca137d0c74b3e5973148ba11b3 22-Feb-2017 Narayan Kamath <narayan@google.com> Merge "MethodHandles: Add tests for MethodHandles.reflectAs"
fa5b565a3f6c6d7cbd6106ee8d360304c3a939a3 17-Feb-2017 Igor Murashkin <iam@google.com> jni: Switch to @FastNative for all JNI functions.

Switches all (248) methods that previously used !bang JNI in art/libcore
to all use @FastNative.

As a nice benefit, this should be about 1.5x faster than before for those method calls.
This measures out to a 3% startup time improvement for system_server.

Test: make test-art-host
Bug: 34955272
Change-Id: I0881f401c7660c79f275235362777bfa58241deb
haracter.java
lass.java
ath.java
bject.java
untime.java
tring.java
ystem.java
hread.java
hrowable.java
ef/Reference.java
eflect/Array.java
eflect/Constructor.java
eflect/Executable.java
eflect/Field.java
eflect/Method.java
eflect/Parameter.java
eflect/Proxy.java
3e2bb7d3abf3d2016b71054b04cb481e79931d6b 21-Feb-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Remove String.setCharAt()."
4139a312cb9da6f0ece4b4da2a3ed980f18d4bff 16-Feb-2017 Narayan Kamath <narayan@google.com> MethodHandles: Add tests for MethodHandles.reflectAs

Also fix a corner case: reflectAs should throw a ClassCastException
if we're reflecting to the wrong type, regardless of the type of
LHS of the expression of which it's the RHS.

Test: vogar --mode=host MethodHandlesTest
Change-Id: I9d86e4e20fd9cac0eaa978cb10e000c5d2564d22
nvoke/MethodHandles.java
6cc1c7aa569c0c9debc012e4bf36af8d6286eabd 20-Feb-2017 Vladimir Marko <vmarko@google.com> Remove String.setCharAt().

Companion CL in platform/art:
https://android-review.googlesource.com/341863

Test: See the companion CL.
Bug: 31040547
Change-Id: I0d7db633787c933eeb2f5b444ef3cb546844be29
tring.java
266f0fddb3abc41677f747109d9b5bfde83938b0 21-Feb-2017 Nicolas Geoffray <ngeoffray@google.com> Merge "Emit the dex_pc if the line number is absent."
b2af2e6d63267a4ab475fd288e6a93e3a183b59b 16-Feb-2017 Vladimir Marko <vmarko@google.com> Merge "Revert "Enable String compression.""
979bc3192ec23db4d06977d59fed28f41ae1c174 16-Feb-2017 Vladimir Marko <vmarko@google.com> Revert "Enable String compression."

The internal API String.setCharAt() is broken
with string compression.

Bug: 31040547

This reverts commit 60d049e21528268e2dcfe36cf6902b1a07a60b93.

Change-Id: I20c05ce4e9af8fa311326f71a2a44d981d60e0ee
tring.java
d96e96c17c0a0e89c6bab7c3e116a5bd36bf5ed2 16-Feb-2017 Narayan Kamath <narayan@google.com> Merge "MethodHandles: throwMakeAccessException should be private."
d7d594236d66c4d595f7622a264fd51bf5f79694 16-Feb-2017 Narayan Kamath <narayan@google.com> MethodHandles: throwMakeAccessException should be private.

Test: make update-api docs
Change-Id: I07a64e696821e35fe955395990f523ed68d07234
nvoke/MethodHandles.java
fc3760e51372a0724b002769562b0e0dd941e040 16-Feb-2017 Vladimir Marko <vmarko@google.com> Merge "Enable String compression."
9c6d6f2620ea70fa35902d13e6a55b053371b566 15-Feb-2017 Nicolas Geoffray <ngeoffray@google.com> Emit the dex_pc if the line number is absent.

bug:30183883
Test: test-art-host run-jdwp-tests run-libcore-tests
Test: test/638-no-line-number/

Change-Id: Id61d59bd7c0a37dc7482109f9775a222b192f2a9
tackTraceElement.java
9a01ad9dd39d2c0794627c1e3ffe6be89e675478 19-Jan-2017 Orion Hodson <oth@google.com> Import CallSite classes and BootstrapMethodError class from ojdk8u60

Minor changes to CallSite.java, with other imported unmodified.

Bug: 33191717, 30550796
Change-Id: If4baa4e1ded74250bc76d24356f4357e1d71f602
ootstrapMethodError.java
nvoke/CallSite.java
nvoke/ConstantCallSite.java
nvoke/MethodHandles.java
nvoke/MutableCallSite.java
nvoke/VolatileCallSite.java
906e740fc43ed5c4c701986386dfa6659388dd44 10-Feb-2017 Orion Hodson <oth@google.com> Make java.lang.invoke.Transformers thread safe

Allocate StackFrameReader and StackFrameWriter instances in tranform()
rather than have them as class members. This avoids stack corruption
when invoking Transformers with multiple threads.

Test: vogar --jack-arg "-D jack.java.source.version=1.7" --jack-arg "-D jack.android.min-api-level=o-b1" --mode=host libcore/luni/src/test/java/libcore/java/lang/invoke/MethodHandleCombinersTest.java
Bug: 30550796
Change-Id: I0c318eb6113ce0ae2055d50343c63ca660aefd78
nvoke/Transformers.java
60d049e21528268e2dcfe36cf6902b1a07a60b93 02-Feb-2017 Vladimir Marko <vmarko@google.com> Enable String compression.

Test: m test-art-host (interpreter, JIT, AOT)
Test: m test-art-target on Nexus 6P (interpreter, JIT, AOT)
Test: Nexus 6P boots
Test: m ahat-test
Bug: 31040547
Change-Id: Iec5f11be6786e258c9028e41e7807cc180b5084f
tring.java
4ce832edf873cec6a42444b375af496a29f052d9 08-Feb-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "AbstrackStringBuilder capacity calculations fix."
5ccab91cbbddfa1c9e8d1ae63f44d923e0d7afa1 03-Feb-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> AbstrackStringBuilder capacity calculations fix.

Port from openJdk80u112:

changeset: 11450:21fd38547115
user: igerasim
date: Fri Mar 04 14:03:34 2016 +0300
summary: 8149330: Capacity of StringBuilder should not get close to Integer.MAX_VALUE unless necessary

Adding tests for this change is not possible due to memory constraints.

Test: CtsLibcoreTestCases
Bug: 31028374
Change-Id: If3a8699ba8afe5b3595f61593f8ed6cf51ad6bef
bstractStringBuilder.java
tringBuffer.java
d5802732dc3c457d39aff97f53724f3a29049679 06-Feb-2017 Narayan Kamath <narayan@google.com> Merge "MethodHandles: Expose hidden APIs that were recently implemented."
0956f88d74eddfdc20c2e51a00093b9ea60760dd 06-Feb-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Port java.lang.invoke.MethodHandles from openJdk80u112"
30824eef475aa2e398f889b497917fc728ffe5ec 06-Feb-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Javadoc changes from openjdk8u112"
bc19426f72ce4d06523733634fc01398054346cb 03-Feb-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Javadoc changes from openjdk8u112

Test: make -j 32 docs
Bug: 31028374
Change-Id: I5388664f6a3ed0fcff3cd0a695f698ed95eee3e7
haracter.java
nvoke/MethodHandleInfo.java
nvoke/Stable.java
d2aa1365d25911076cb174a04b1d5152f0ff80e3 03-Feb-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Port java.lang.invoke.MethodHandles from openJdk80u112

changeset: 11829:3eab3ce82c31
tag: jdk8u101-b12
parent: 11826:aeae865c933d
user: mhaupt
date: Wed Jun 08 16:47:05 2016 +0100
summary: 8158571: Additional method handle validation

changeset: 11815:5e7489ac05f0
tag: jdk8u101-b09
user: mhaupt
date: Fri May 20 09:40:12 2016 +0100
summary: 8155985: Persistent Parameter Processing

changeset: 11658:93cddf06cfe0
user: mhaupt
date: Fri Apr 29 15:30:43 2016 +0200
summary: 8155106: MHs.Lookup.findConstructor returns handles for array classes

Test: art host tests
Bug: 31028374
Change-Id: I20ccbcbcfc969f1c4e444fefa56a3121c379a916
nvoke/MethodHandles.java
c21ef14988d9f34bd1b477b70324c7562b75f7b4 01-Feb-2017 Neil Fuller <nfuller@google.com> Merge "Re-add tz code that was lost in java.lang.System"
32de49bc20b23d1219743cf407124433e9fd473a 01-Feb-2017 Neil Fuller <nfuller@google.com> Re-add tz code that was lost in java.lang.System

In the switch to OpenJDK some of the code associated with
time zone updates and lets ICU4J pick up the overridden
version was lost. commit 844baddb75b introduced some
ICU code, but appears to have added back old (pre-M) code
associated with with ICU.

Thanks to Samsung for pointing this out.

Bug: 34867424
Test: Manual testing
Change-Id: I18a09dd06f83ff0e89ec4b2a0b66508eb5cb21d2
ystem.java
f4ee5c6dccff8f7e037f95b26767e552ea93d41b 31-Jan-2017 Narayan Kamath <narayan@google.com> MethodHandles: Expose hidden APIs that were recently implemented.

Also addresses a handful of TODOs about changing @code to @link.

Test: make checkapi docs
Change-Id: I5472b2b1deeb2cd49b3abf9c113e46f6bd8f221f
nvoke/MethodHandle.java
nvoke/MethodHandleInfo.java
nvoke/MethodHandles.java
d6cb653555a60e070b5fbbdfb48de05b5dc748bc 09-Nov-2016 Narayan Kamath <narayan@google.com> MethodHandles: Implement additional combiners.

This change contains :
- MethodHandles.filterArguments
- MethodHandles.collectArguments
- MethodHandles.insertArguments
- MethodHandles.foldArguments

Test: make test-art-host

Change-Id: I3e38d8bb2122ddd2d91e0f3fa26a0659665fc1ab
nvoke/MethodHandles.java
nvoke/Transformers.java
298c0e8f24657f6dc3fe362fe62b12a187b6faf1 25-Jan-2017 Narayan Kamath <narayan@google.com> MethodHandles: Implement revealDirect / reflectAs.

The implementation approach is straightforward - we materialize
a Constructor, Field or Method (subclasses of Member) from the
handle's ArtField or ArtMethod pointer, and implement
MethodHandleInfo API in terms of that Member.

We need special casing for a few things :
- The "type" of the MethodHandleInfo is not the same of the type
of the handle it was derived from, so adjustments are necessary.
- revealDirect is only supposed to work with "direct" handles, but
our Constructor / VarArgs handling is implemented in terms of
transformers. We will need to treat those transformer classes as
direct for all practical purposes.

Test: make test-art-host

Change-Id: I58cd081b7db1f581cfb7e2eb10d0c52308fac5ed
nvoke/MethodHandleImpl.java
nvoke/MethodHandles.java
nvoke/Transformers.java
0e8de7372de378e00c429dbf9d55526d433a7a21 24-Jan-2017 Narayan Kamath <narayan@google.com> MethodHandle: Implement MethodHandle.asCollector.

Test: make test-art-host
Change-Id: I73377c9b46d498bd932f7d6e6459c160b8e85217
nvoke/MethodHandle.java
nvoke/Transformers.java
86dc78f165d24514cb094db95e8bad99618626e9 20-Jan-2017 Narayan Kamath <narayan@google.com> MethodHandle: Implement invokeWithArguments.

This is nothing but a spreader with no leading arguments.

Test: make test-art-host

Change-Id: Idee6e9c745c826619047d71355bbf3118d33f5ab
nvoke/MethodHandle.java
378d458718d98d264b58734c87568ee5de9a6781 17-Jan-2017 Narayan Kamath <narayan@google.com> MethodHandles: Implement spreader methods.

Implements MethodHandle.asSpreader and MethodHandles.spreadInvoker.
This is the reverse of var-args collection, and the Transformer
implementation is symmetric with VarargsCollector (modulo inconsitencies
in the API).

Test: make test-art-host

Change-Id: If4deaa52f14143115b573bb0616e2eb72e83f859
nvoke/MethodHandle.java
nvoke/MethodHandles.java
nvoke/Transformers.java
cce1c9e194b4082f00fd6aac2ef9beec75ff5500 17-Jan-2017 Narayan Kamath <narayan@google.com> MethodHandles: Unhide java.lang.invoke.*

A handful of methods are not implemented yet, and remain hidden.
Javadoc @links that reference these hidden methods have temporarily
been converted to @code.

The only notable Android specific change is the changing of link
targets from a method in the MethodHandles class to another method in
the same class to remove the explicit class reference (e.g.
{@link MethodHandles#lookup} -> {@link #lookup}). This is to work around
javadoc errors caused by these links

Test: make docs
Change-Id: Ie7a49b76de59ea957e117cb695a28cb1137dae4e
nvoke/MethodHandle.java
nvoke/MethodHandleInfo.java
nvoke/MethodHandles.java
384e985f4e4996de058d5b27b21b2a620ecc857e 17-Jan-2017 Narayan Kamath <narayan@google.com> Merge "MethodHandles: Implement invoker / exactInvoker."
0a72753297b45d08ca33cf7e87888f5fee87f69e 16-Jan-2017 Narayan Kamath <narayan@google.com> MethodHandles: Implement invoker / exactInvoker.

This change needs additional support in ART for setting the
callsite type in EmulatedStackFrame. This is required for
implementing exact invoke semantics in transformers.

Test: art/test/run-test --host 957
Change-Id: I3a848f10890efef16d183061243cce6649bbcc4d
nvoke/MethodHandles.java
nvoke/Transformers.java
0843d84a79f093642c85854b0564b055b11b3fd5 16-Jan-2017 Narayan Kamath <narayan@google.com> MethodHandles: support var-args methods in Lookup.bind.

Tests included in commit ec08c062c30a9ed1fa0e7ab346d4f8e3e0857642.

Test: art/test/run-test --host 956

Change-Id: I758589abdaff368152f25f697df338cd3b895599
nvoke/MethodHandles.java
54555bb0a3d6e6b5a4bf111db7e865742ceaf328 11-Jan-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "java.lang.reflect.Proxy update to odjk8u60"
a44c959e203a71d761d7e1ffb1c6bfd363004c98 17-Aug-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> java.lang.reflect.Proxy update to odjk8u60

Proxy class cache mechanism was rewritten using
new WeakCache class.

Change-Id: Ifad1f03fd7ee7098186120462c28a31ecc8c605d
Test: All *ProxyTest.java & flashed/booted device
Bug: 28666126
eflect/Proxy.java
eflect/WeakCache.java
76542847059b26fe060865c8e3b368db0265f394 05-Jan-2017 Aart Bik <ajcbik@google.com> Refined comment in FP abs() implementation.

Rationale:
As a "quality of implementation", rather than pure "spec compliance",
we require that Math.abs() clears the sign bit (but changes nothing else)
for all numbers, including NaN (signaling NaN may become quiet though).

Test: test-art-host
Bug: 30758343
Change-Id: I8d9ca9aa58a0ffbde6120370f7aecd02dc7395e0
ath.java
48b5f45068e3bdedb49ac84de058cae76f2ab641 04-Jan-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "MethodHandleInfo: Fix a couple of TODOs."
d37b49d9858996e95e2ee24257337851d545da7e 04-Jan-2017 Narayan Kamath <narayan@google.com> MethodHandleInfo: Fix a couple of TODOs.

These were pending the introduction of the MethodHandles.Lookup class,
which has since been introduced.

Test: make

Change-Id: Ib52868700866856624b930cfb790be27fb839419
nvoke/MethodHandleInfo.java
780172f889113a2e39c260e0d40fcaed5d335abe 04-Jan-2017 Narayan Kamath <narayan@google.com> MethodHandles: Remove a couple of obsolete TODOs.

var-args method handles have been implemented.

Test: make

Change-Id: I2861f9780f91e06890b607f52ae03664e3e8b2ed
nvoke/MethodHandles.java
932af329921acfcc7c83984793233e68387d67f6 19-Dec-2016 Aart Bik <ajcbik@google.com> Changed semantics of FP Math.abs() to impact bit sign (but nothing else).

Rationale:
As a "quality of implementation" rather than pure "spec compliance"
we require that Math.abs() clears the sign bit (but changes nothing
else) for all numbers, including NaN.

**NOTE**
This CL has a corresponding Art test.

Test: test-art-host
Bug: 30758343
Change-Id: I990c5ac72d2a3263b7b1d57dd6da4fabe7f8e274
ath.java
27a3e02d2dce24ad4f654f34959e33282e14dcbc 16-Dec-2016 Nicolas Geoffray <ngeoffray@google.com> Merge "Remove dex cache string from mirror::Class."
b6ae6ab47b47289f61dfa583832a1e3662dc99a5 14-Dec-2016 Mathieu Chartier <mathieuc@google.com> Fix accidental calling of wrong clear()

Use clearReferent instead of FinalizerReference.clear.

Test: test-art-host ART_TEST_INTERPRETER=true ART_TEST_READ_BARRIER=true

Change-Id: I57fc1f46c8c3c2b6d35741ab8549020894de7026
ef/Reference.java
a1e2e647ede8b8ba889566f1cc4b21d540ddd88c 14-Dec-2016 Nicolas Geoffray <ngeoffray@google.com> Remove dex cache string from mirror::Class.

The compiler does not need it anymore.

Test: test-art-host test-art-target
Change-Id: I2e830ece5f89ac37f64f6e4b02577a416ecc0669
lass.java
1b322dad1a0417190ca27bacf796252f95bf67ad 13-Dec-2016 Mathieu Chartier <mathieuc@google.com> Move java.lang.ref.Reference.clear() to native

Required for adding exclusion for Reference.clear and reference
processing.

See accompanying change:
https://android-review.googlesource.com/#/c/313664/

Bug: 33389022

Test: test-art-host

Change-Id: Iee83b76d84453e929172f1a83f284aa4910e126c
ef/Reference.java
704b13a41cc7efd49acf66064109756a248fe0dc 25-Nov-2016 Orion Hodson <oth@google.com> Revert "Revert "Method Handles: Add VarargsCollector.""

Fixes component type of reference arrays which caused test failures
in the interpreter when assignability checks were enabled.

This reverts commit df3b54d0cd43fbde26a0a8d984b7a0b2e2a92f2e.

Bug: 30550796
Test: ART_TEST_INTERPRETER_ACCESS_CHECKS=true m test-art-host-run-test-956-methodhandles

Change-Id: I78a819cde9e07a385825772869852ea737de657d
nvoke/MethodHandle.java
nvoke/MethodHandles.java
nvoke/Transformers.java
df3b54d0cd43fbde26a0a8d984b7a0b2e2a92f2e 25-Nov-2016 Orion Hodson <oth@google.com> Revert "Method Handles: Add VarargsCollector."

This reverts commit 14e84c863b3ca946293c99afc9dc112e52fca4ca.

Change-Id: I57858cc6df5aafe31baf0ad05c70ac1d440329a1
nvoke/MethodHandle.java
nvoke/MethodHandles.java
nvoke/Transformers.java
14e84c863b3ca946293c99afc9dc112e52fca4ca 14-Nov-2016 Orion Hodson <oth@google.com> Method Handles: Add VarargsCollector.

Enable support for methods with variable arity arguments.

Test: m test-art-host-run-test-956-methodhandles
Bug: 30550796

Change-Id: I22158c2180f308fff016cd3aebc4a1beac2a875a
nvoke/MethodHandle.java
nvoke/MethodHandles.java
nvoke/Transformers.java
9be063672cb29e5e019654791f73fb5ca4f19343 16-Nov-2016 Orion Hodson <oth@google.com> MethodHandles: Check return types when resolving handles.

Test: m test-art-host-run-test-956-methodhandles
Bug: 30550796
Change-Id: I418fade78f0d218cb2b9a6fbb30f7449abad74dd
nvoke/MethodHandles.java
2e8155624bcf610385ca048a0c219946e3a99d96 10-Nov-2016 Orion Hodson <oth@google.com> MethodHandles: Minor text nits.

Addresses some comments in review received after commit.

Test: m test-art-host-run-test-956-methodhandles
Bug: 30550796
Change-Id: I50c783f284f140155c0161c2e2da3e207c4f9943
nvoke/MethodHandles.java
28a703a13c2e4f209accd326ea1f3de5d19fb7a3 10-Nov-2016 Treehugger Robot <treehugger-gerrit@google.com> Merge "Change string compression encoding."
454be6f08e83c97ee14aff0fa2e87c30eedb712d 08-Nov-2016 Narayan Kamath <narayan@google.com> MethodHandles: Implement MethodHandles.permuteArguments.

Bug: 30550796
Test: make test-art-host
Change-Id: Ibb6406e219b8ddfef9fd4c2f5aecbcf27193f826
nvoke/MethodHandles.java
nvoke/Transformers.java
51ab4bf8f05d550d5676cfdd1b00b627f25432cc 07-Nov-2016 Narayan Kamath <narayan@google.com> MethodHandles: Implement MethodHandles.filterReturnValue.

Bug: 30550796
Test: make test-art-host

Change-Id: I446a90123f8ba672e4a5ab83b2ff74c657fa1a4e
nvoke/MethodHandles.java
nvoke/Transformers.java
6774aff0e542cbe31c02570916ff98c6337071df 08-Nov-2016 Narayan Kamath <narayan@google.com> MethodHandle: Reintroduce @link / @linkplain.

Addresses TODOs that were needed because MethodHandles wasn't
present in the code base.

Test: make docs
Bug: 30550796
Change-Id: I25c790b6d3e66a3f288b9989e062b292c86b3e6e
nvoke/MethodHandle.java
0ab46853af9f5c16c877e1677d8d27b8fdecc2cd 04-Nov-2016 Narayan Kamath <narayan@google.com> MethodHandles: Implement MethodHandle.bindTo.

Bug: 30550796
Test: make test-art-host
Change-Id: Id71d57e8786ebe2453da6a7c7df44bbd19a3a939
nvoke/MethodHandle.java
nvoke/MethodHandles.java
nvoke/Transformers.java
96ec51ff3ab815e1a5a17adf3fdb25611e732b45 13-Oct-2016 Vladimir Marko <vmarko@google.com> Change string compression encoding.

Encode the string compression flag as the least significant
bit of the "count" field, with 0 meaning compressed and 1
meaning uncompressed.

Test: Run ART test suite on host and Nexus 9 with Optimizing.
Test: Run ART test suite on host and Nexus 9 with interpreter.
Test: All of the above with string compression enabled.
Bug: 31040547
Change-Id: I99a146406b3a7900329c423c357d62eaf57e7dc4
tring.java
a80d6f85a6e5154300be8552f027916767704b75 06-Nov-2016 Orion Hodson <oth@google.com> MethodHandles: Constructor support

Test: m test-art-host-run-test-956-methodhandles
Bug: 30550796

Change-Id: I62b41fb818a76e5794856a3c7aee353800392aaa
nvoke/MethodHandles.java
nvoke/Transformers.java
168dfc7fcb7594933af3bd4a66651f1eb2f09f7f 03-Nov-2016 Narayan Kamath <narayan@google.com> MethodHandles: Implement array accessors / identities & constants.

These transforms need typed access to the arguments of the handle,
which has been implemented in EmulatedStackFrame (along with tests).

These implementations favour simplicity. If required, we can gain
more performance by writing them as critical JNI functions or via
additional ugliness.

Tests added in 7ba2827e6d34023c78206972a1c3c7915be6f828.

Bug: 30550796
Test: make test-art-host
Change-Id: I8c13ca19b907e84bd31e82925191b4fcb1099904
nvoke/MethodHandles.java
nvoke/Transformers.java
ff28f8512f99a9507f12b9eb600a374414735394 02-Nov-2016 Narayan Kamath <narayan@google.com> MethodHandles: Implement MethodHandle.asType.

MethodHandles that are derived from asType calls declare a "nominal"
type in addition to their "actual" type, the latter being the type of
the target method being invoked in the case of non-transforming method
handles.

The runtime will need to check the callsite type against the "nominal"
type in order to check for exactness in the sense of throwing a WMTE
when there's no exact match, but will have to use the "actual" type in
order to build stack frames or perform argument conversions.

One minor drawback this change introduces is that it forces all method
handle subclasses to be cloneable in order to be used with asType. This
shouldn't be an issue in practice, given that we control this class
hierarchy.

Test: make test-art-host
Bug : 30550796

Change-Id: I350a48a8cf70e2789c1c1d121f97c301d0640e54
nvoke/MethodHandle.java
nvoke/MethodHandleImpl.java
nvoke/Transformers.java
bf9c7c7014b537fbe69ccec5263e77881d5af461 02-Nov-2016 Narayan Kamath <narayan@google.com> MethodHandles: Implement Lookup.unreflect*

The implementation is straightforward and code for Lookup.find*
has been refactored to share common code.

Tests are in the accompanying art/ change.

Bug: 30550796
Test: make test-art-host
Change-Id: Ibefaf8ac05b70c8e0b5e52d9e004dd20d28270e5
nvoke/MethodHandles.java
6b7bc82ab3b5cf3c0b679f5234d37db5f0a13201 03-Nov-2016 Narayan Kamath <narayan@google.com> Merge "MethodHandles: simplify findVirtual."
ab82d0a41cb4d8f38cbc7c1023af6e9172ff0f01 02-Nov-2016 Treehugger Robot <treehugger-gerrit@google.com> Merge "Add dalvik.system.ClassExt class"
191e70e2ebae59054aa8737707bb9845b71b4820 02-Nov-2016 Narayan Kamath <narayan@google.com> MethodHandles: simplify findVirtual.

The code looks cleaner if we just return null from
Class.getInstanceMethod if a given method is not found, and then
throw the NSME from MethodHandles.findVirtual.

Addresses review comments on change cc44ded0807d59a7c6059.

Bug: 30550796
Test: make test-art-host
Change-Id: Id59258d3ff2a1a6a0f4b0cbc4fab4285b1703859
lass.java
nvoke/MethodHandles.java
5eeb4739159cda8b5756d9a38dc7b6c36b0cc03a 18-Oct-2016 Narayan Kamath <narayan@google.com> MethodHandles: Implement the first set of transforms.

Implements support for :

- MethodHandles.dropArguments.
- MethodHandles.catchException.
- MethodHandles.guardWithTest.

Even though this doesn't involve runtime changes, note that tests are
in art/ because the runtime still needs a flag to enable method handles.

This change also fixes a bug in MethodHandles.throwException; the method
must throw the argument instance passed to it.

Test: make test-art-host
Bug: 30550796

Change-Id: I0307ce098185119c0a7a6838aa53df463184e755
nvoke/MethodHandles.java
nvoke/Transformers.java
02e8f0793940b5fd42b038dd912006c6d98a843c 31-Oct-2016 Alex Light <allight@google.com> Add dalvik.system.ClassExt class

This class is allocated by the runtime lazily and is used to hold data
for java.lang.Class that is often not needed. This allows us to add
useful things to keep around in Class without regressing memory use.
Initially we are placing the saved verifyError into this class. This
type is expected to grow as time goes on.

Test: m test-art-host

Change-Id: I9556734102d7e7a35a81e8af8b133cba2e75d16c
lass.java
cc44ded0807d59a7c6059bdefdaeb89a1543228d 01-Nov-2016 Narayan Kamath <narayan@google.com> MethodHandles: Fix buggy findVirtual implementation.

MethodHandles.findVirtual doesn't map cleanly to any reflection API
so we'll have to reimplement in terms of a new helper in
java.lang.Class.

This change also fixes an issue where we wouldn't correctly deal with
virtual functions on java.lang.invoke.MethodHandle itself.

Test: make test-art-host + vogar ClassTest MethodHandlesTest
Bug: 30550796
Change-Id: I1948d48520a5960807696f926db80969aed6f58b
lass.java
nvoke/MethodHandles.java
6facd9d7eb3b76137a5e32949bf29f91d3b9f4f9 31-Oct-2016 Treehugger Robot <treehugger-gerrit@google.com> Merge "Throw IllegalThreadStateException when Thread.start is used in wrong way"
4d8dc721410a0bf120893ded7a9bf684a962de54 26-Oct-2016 Artem Udovichenko <artem.u@samsung.com> Throw IllegalThreadStateException when Thread.start is used in wrong way

Test: run libcore.java.lang.ThreadTest

Change-Id: Ie9bb8aaed5aec6bbe22d4d868ea0b0fa4853ff18
hread.java
4542b1f73a106b12187cd81c59ae68da792a75cf 19-Oct-2016 Orion Hodson <oth@google.com> Getter/Setter support for invoke-polymorphic of invokeExact().

Test: make test-art-host
Bug: 30550796

Change-Id: I21381c6b108226e050fc42d695326e2f52c4a2f7
nvoke/MethodHandle.java
nvoke/MethodHandles.java
eflect/Field.java
faf8883397aed1411590edd1bf5b6681430a10f5 18-Oct-2016 Narayan Kamath <narayan@google.com> MethodHandles: Add support for method handle transforms [part 1]

Defines a new invoke type (INVOKE_TRANSFORM) and support for invoking
the transformer method. Full details provided in the companion ART
change (commit 3f1e50841b70507a2619c031fa0b0b4791ffa386).

bug: 30550796
Test: make test-art-host

Change-Id: I643e8a818ec2e66f604477be9384aaf7a2671f9d
nvoke/MethodHandle.java
nvoke/MethodHandles.java
nvoke/MethodType.java
nvoke/Transformers.java
d433b1b9eca182a175163da3654f1cd916d7b9c0 25-Oct-2016 Andreas Gampe <agampe@google.com> Libcore: Remove unused timing code

Remove vestigial timing code.

Test: m
Change-Id: Ib559307f511e41ff6f2c42f35631406848d683e4
lassLoader.java
1cd091eb500d16364395af30d658aab5d6250d34 14-Oct-2016 Narayan Kamath <narayan@google.com> MethodHandles: Add support for invokeSpecial.

This is a combination of invoke-super and invoke-direct semantics,
depending on method being looked up and the caller context involved.

Test: test-art-host
Bug: 30550796

Change-Id: Id9e928ea54e1cf2dd5471b43c26fcac3ea7d570e
nvoke/MethodHandles.java
5392e4a8da20957f5619fc296e276c37e4fbc0ec 12-Oct-2016 Neil Fuller <nfuller@google.com> Improve performance of Enum.valueOf(Class, String)

Enum.valueOf() would loop through all enum values, returning
the final matching one. The common case is that there is one
match: we can loop backwards and return on the first match.

Bug: 32104997
Test: CtsLibcoreTestCases
Change-Id: I11051d28525dd49527e056ecce7f4cdd928cf24d
num.java
5bf2e16e7e789d8668c83851a1486e7bb1a286ff 04-Oct-2016 Narayan Kamath <narayan@google.com> MethodHandle: Change values of "kind" constants.

Easier to error-check on the ART side if the values are contiguous
and start with 0.

bug: 30550796
Test: make
Change-Id: Id622467be55a8059c37660017859297f6f4693ba
nvoke/MethodHandle.java
61360d36782776bcc82f311120ddd6f500a254aa 29-Sep-2016 Narayan Kamath <narayan@google.com> Merge "Add basic implementation of Lookup.find{Virtual,Static,Constructor}."
fc4fa476a9292ae6a512803390e0ce6af6e8e4a9 29-Sep-2016 Neil Fuller <nfuller@google.com> Merge "Fix AnnotatedElement.getDeclaredAnnotation() generic signature"
54168f0e8137b9d2addc6e7bf723aaf1ee3fd744 22-Sep-2016 Narayan Kamath <narayan@google.com> Add basic implementation of Lookup.find{Virtual,Static,Constructor}.

- Implemented using existing reflection APIs.
- Access checking is performed in Java and not by the runtime.

bug: 30550796
Test: make checkbuild
Test: art/tools/run-libcore-tests.sh --mode=host --variant=X64
Change-Id: I3f65d96851272592c7ba0898ea9e34889adca48b
nvoke/MethodHandle.java
nvoke/MethodHandles.java
eflect/Executable.java
94eb013328c3b3a1793043dfbedc249a17bb7281 28-Sep-2016 Neil Fuller <nfuller@google.com> Unhide constants related to type annotations

Type annotations are supported in the compiler, but not the
Android runtime. Unhiding these is therefore still
reasonable.

Bug: 30391692
Test: make droid
Change-Id: If4f1ca2dfddc0c621eafe436de10ffbc5ea20dca
nnotation/ElementType.java
1be11783452103de134b37202e188eb1aba04c03 26-Aug-2016 Neil Fuller <nfuller@google.com> Fix AnnotatedElement.getDeclaredAnnotation() generic signature

To match upstream OpenJDK 8.

Bug: 31108290
Test: make droid
Change-Id: Ib2701fba38083abe817e38f44c88078157a7828f
eflect/AnnotatedElement.java
1b7ce76ba2c2737c9dab5245e4da7823f456ec0b 09-Sep-2016 Neil Fuller <nfuller@google.com> Implement Executable.getParameters() to use compiled-in metadata

Implements the Executable.getParameters() code to take advantage of
.dex metadata that records parameter names and access flags / modifiers
(e.g. final, sythentic, mandated).

On Android, this metadata is stored in a new system annotation
dalvik.annotation.MethodParameters. See the MethodParameters class for
the specification. The metadata is optional and the intention is that
Jack or other compilers can include or exclude it based on developer
preference.

Contained here are various tests for valid and invalid metadata, along
with the supporting .smali files used to generate the .dex files
used by the tests. See the README.txt for more information on
generation.

See the associated art/ change for the native code used in Executable.

Bug: 30391692
Test: test-art-host and CtsLibcoreTestCases
Change-Id: Ied3d0f03bb6eb154b974a856b341bd14b5e45fc1
eflect/Executable.java
ec73afe366d9dbbe235b1881a6e84b0937fa0af1 22-Sep-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Update java.io.File to 8u60"
0b12bb19d46df4e9736f84438d43de10ca7d5ffe 22-Sep-2016 Treehugger Robot <treehugger-gerrit@google.com> Merge "Introduce java.lang.invoke.MethodHandles."
a3f5e89f1182a08bb666d904192a8eea12e72a4d 15-Aug-2016 Narayan Kamath <narayan@google.com> Introduce java.lang.invoke.MethodHandles.

- Most APIs are currently unimplemented and will be filled in by
subsequent changes.
- This change includes basic tests for the APIs that are currently
implemented.

bug: 30550796
Test: make build-art-host, docs
Test: vogar MethodHandlesTestVerifyAccessTest
Change-Id: Idec3ee8072dc3a5f94b6fb7ddb08cbc25ed96693
nvoke/MethodHandles.java
e1f193f0f7ccd8a3c0557ec93055140c68546aa9 08-Sep-2016 Neil Fuller <nfuller@google.com> Collapse ART's AbstractMethod class into Executable

After the OpenJDK 8 pull there is now a common base class
for Method and Constructor that can be used instead.

Methods that are abstract on Executable but on Android
were implemented in AbstractMethod are now consistently
renamed to "{method}Internal", declared final and
given package-protected access.

For consistency with all other private, natively
implemented methods, the method getDeclaredAnnotations()
has been renamed getDeclaredAnnotationsNative().

Bug: 28666126
Bug: 31052885
Test: make test-art-host and cts run of CtsLibcoreTestCases

Change-Id: I3ab8d4e1fd0c95f77d8d8af91241edaa8141e7a7
eflect/Constructor.java
eflect/Executable.java
eflect/Method.java
7d38257be058ccc23f31a39ecf6d73294acb3c1e 01-Sep-2016 Neil Fuller <nfuller@google.com> Tests for java.lang.reflect.Parameter and associated unhiding

There is currently no support for parameter metadata in ART and
so ParameterTest only deals with the behavior when it is missing.

When parameter metadata support has been added the test can be
extended.

Bug: 28666126
Test: Ran CtsLibcoreTestCases

Change-Id: Ia714643eac54262ff5e79e8902d3288c26fa85c4
eflect/Executable.java
eflect/Parameter.java
ed438115cf887c4541cb292244b8234c0aa19b1c 15-Aug-2016 Narayan Kamath <narayan@google.com> java.lang.invoke: Add a concrete subclass of MethodHandle.

For plain vanilla method handles that refer to an art field or a method
and do not specify any transformations.

bug: 30550796

Change-Id: Ia902fbd95cd3ef03f6f04d784bd50b7045c2f808
nvoke/MethodHandle.java
nvoke/MethodHandleImpl.java
c42ac75354070bf7e2956989cbda48a24544e5a3 15-Sep-2016 Treehugger Robot <treehugger-gerrit@google.com> Merge "MethodHandleStatics: Remove unused debugging code."
e2e5d92a28ce1a239e1422aa70e532f3092540c0 15-Sep-2016 Narayan Kamath <narayan@google.com> MethodHandleStatics: Remove unused debugging code.

bug: 30550796
Change-Id: Ife7a0aae28e609d2b179389b5b6736044a08373e
nvoke/MethodHandleStatics.java
c329f2536bfbc352252681bf34d6708fa627c1a4 08-Sep-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Update java.io.File to 8u60

- File fields path/prefixLength are final (and #readObject
is implemented using Unsafe).
- Temp file name generation uses longs. Restored TempDirectory
(removed in 3a4b7ebcde0ba6b7dce5c6118fa6a3da77b3d21d) inner
class, to minimize the diff from upstream.
- Javadoc and formating updates

Test: vogar run on all io tests I could find.
Bug: 31237296
Change-Id: Ia0ce0ba3db9cbdb4a5a411325ee1ce0d9c4a5d0a
ath.java
d077e674086aa3d123a737af4176f6e3781c86bf 24-Aug-2016 Neil Fuller <nfuller@google.com> Addition of Parameter / MalformedParametersException

Addition of the java.lang.reflect Parameter and
MalformedParametersException classes from OpenJDK 8u60.
New public methods have been added but are hidden and
will be unhidden when the associated tests are
submitted.

The Parameter support is currently "synthesized" only:
the Parameter object is not created with any modifier or
name information. Adding more will require further
changes and will be added as a separate activity.

Bug: 28666126
Test: Ran CTS CtsLibcoreTestCases and test-art-host
Change-Id: I66de1472db1fbda093360bad20d6d24a855070aa
eflect/Constructor.java
eflect/Executable.java
eflect/MalformedParametersException.java
eflect/Method.java
eflect/Parameter.java
604a1b3159c9117de76f1ad1b50f8f6dac879b98 01-Sep-2016 Mathieu Chartier <mathieuc@google.com> Merge "Add object size for alloc fast path field to java.lang.Class"
08dcf9f338211e96a3a6b9a1a0db33c58c1515ea 01-Sep-2016 Treehugger Robot <treehugger-gerrit@google.com> Merge "Remove (AbstractMethod|Constructor|Method).getSignature()"
bca5dec9eb8b980782200dd98a50bbb4acd4d822 01-Sep-2016 Neil Fuller <nfuller@google.com> Remove (AbstractMethod|Constructor|Method).getSignature()

The comments in the code suggest it is used, but it appears
it is not. Attempted to confirm with code searches and
ultimately by running CTS tests.

Constructor.getSignature() is a method that exists upstream
in OpenJDK 8 with different semantics: removing this clears
the way.

Test: Ran cts: CtsLibcoreTestCases
Bug: 28666126
Change-Id: I85a005d1e57a33dd971911c51fb7e91506b012f0
eflect/Constructor.java
eflect/Method.java
265a876206ebe30470777d444d7fc5087087913a 31-Aug-2016 Mathieu Chartier <mathieuc@google.com> Add object size for alloc fast path field to java.lang.Class

Required for companion ART change that speeds up allocation fast path
by removing some checks.

Bug: 9986565

Change-Id: I119a87b8cc6c980bff980a0c62f42610dab5e531
lass.java
deb66d5609852f4f47d5e94c7e4ebb8752a311da 23-Aug-2016 Neil Fuller <nfuller@google.com> Tests + unhiding new j.l.reflect methods

Bug: 28666126
Test: Ran the modified test cases in CTS
Change-Id: I9cec18cb1f4ab4c4bd3de8e374df4f4e363afb8a
lass.java
eflect/Modifier.java
7accc5fb09911a1dcc027f48089845f617f2912e 22-Aug-2016 Neil Fuller <nfuller@google.com> OpenJDK 8 u60 changes for some j.l.reflect classes

Mostly no-op changes to bring the source code closer in line with
upstream source for the touched files.

Some JavaDoc changes have been made to AnnotatedElement to remove
references to the Java bytecode spec not used on Android. An
additional Android note has been added to reflect the fact that
annotation ordering is not guaranteed.

The modifications to Class / Field affect the current.txt in
frameworks/base for no good reason: the use of a different generic
variable name results in changes because the tools think methods
have been added / removed when they haven't.

The only public API change from upstream included here is adding
"extends AnnotatedElement" to GenericDeclaration. All platform
subclasses already did implement this interface. App classes that
implement this interface may be affected but only if they do not
currently implement those methods and they are somehow called.

Public methods that have been added by this change have been hidden:
a follow-up change will unhide and add tests for these.

Bug: 28666126
Test: cts ran for libcore (libcore, harmony_java_lang, org) and
host art tests.
Change-Id: I1c6fb73960ac2539e42920978fc2aea4ea222cf4
lass.java
eflect/AccessibleObject.java
eflect/AnnotatedElement.java
eflect/Constructor.java
eflect/Field.java
eflect/GenericDeclaration.java
eflect/Modifier.java
20938c5ed2bc8f5de8047a47caddb146f730868f 18-Aug-2016 Neil Fuller <nfuller@google.com> Pulling in the OpenJDK 8 Executable class and related changes

This change restructures the existing code to accept Executable.
This change involves changes to java.lang /
java.lang.reflect Java code and ART internals.

The Parameter code associated with Executable has been excluded
and will be added as a follow up.

Many of the upstream JavaDoc changes to some of the pre-existing files
will also be handled as a follow-up to make this change smaller /
easier to review. This contains the parts that would be hard to split
out.

The only intentional public API change is the addition of
Executable/Method/Constructor getParameterCount() and
Type.getTypeName(). Tests have been added for these.

Some additional tests have been added to cover existing methods
and cases like toString().

The changes to Modifier result in a change to Method.toString()
which was previously not outputting "default" for default
interface methods. Associated test lines confirming this behavior
have now been uncommented.

Bug: 28666126
Test: cts ran for libcore (libcore, harmony_java_lang, org)
Change-Id: If94f2723b1ac28c08e52921c9860f54da04e168d
lass.java
eflect/AccessibleObject.java
eflect/AnnotatedElement.java
eflect/Constructor.java
eflect/Executable.java
eflect/Field.java
eflect/Method.java
eflect/Modifier.java
eflect/Type.java
60a96be9995ce406ff2366d960086fb3a3a91a63 24-Aug-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Revert Package.toString hack for API level > 24"
am: cb4874d2ad

Change-Id: I9b6374eefc6ecad8b59df44aa66f9d3a019b4581
cb4874d2ad4f3c070b2a3b3a0e1573c7cafcdd62 24-Aug-2016 Treehugger Robot <treehugger-gerrit@google.com> Merge "Revert Package.toString hack for API level > 24"
37e087d05e6dec5b577fc834c95b590cdc76c3cf 22-Aug-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Revert Package.toString hack for API level > 24

Package.toString output hack will be applyied
if app target API level is <= 24. If it's > 24,
the proper output (with spec and version string)
is generated.

Test: libcore.java.lang.PackageTest on vogar
Bug: 28131225
Change-Id: I10f3af7ae267f7b3381f143b0e6936e8bb0a4fc0
ackage.java
94bafed5251cdb5fe0df00b8bb6ab2c68ac8c155 24-Aug-2016 jessicahandojo <jessicahandojo@google.com> Merge "Update for mirror::String compression 16 to 8 bit"
am: 6da3d2252a

Change-Id: I3d50d5977c2c3aaf3d055914da3f6d3273ff704f
19545c4773467d7920c6b9744e4187b7b6775639 02-Aug-2016 jessicahandojo <jessicahandojo@google.com> Update for mirror::String compression 16 to 8 bit

Modifying Length() and access to field count to neglect
the first bit of count for mirror::String compression purpose
(All-ASCII String will be stored in 8-bit characters instead of 16-bit)

Memory improvement is 33% (from 6.03% to 4.03%, total String memory
from all apps per total memory of all apps) measured on Angler
with Hprof tools

Test: vogar --benchmark libcore/benchmarks/src/benchmark/regression
1. StringBenchmark.java
+ After changes faster by 2% - 4%
2. StringBuilderBenchmark.java
+ After changes slower by 4% - 6%

Bug: 31040547
Change-Id: Ia6b91b7563dd2ff4a6f460d6be2c114fe02808f0
tring.java
080b92bc8542097c6f4ba365cac5d76a809a1dd6 17-Aug-2016 Neil Fuller <nfuller@google.com> Merge "Tidy up the Class class"
am: c8e286ecfd

Change-Id: Ifb2168c11206a2625487419e754e32e41eb1b550
b38591b59843cd1fa3cfd63210a70d9463e5dc4d 16-Aug-2016 Neil Fuller <nfuller@google.com> Tidy up the Class class

Remove unused imports and javadoc warnings.

Remove unused methods and an AnnotationType field which
is not used on Android.

Test: make test-art-host / boot a device
Change-Id: I82806bdf85cb198b3cbf004bd79a70dc20353eea
lass.java
ff02ea9a4b57b1fc8a933eceb411532dbc966b1e 16-Aug-2016 Narayan Kamath <narayan@google.com> Merge "java.lang.invoke: Add MethodHandleInfo."
am: 83c507dde9

Change-Id: I39a82dfe3d0ca342601f3bb775dc27f3dbd15f9a
798bce8a6e61a5e02934589159850649d79e9caf 15-Aug-2016 Narayan Kamath <narayan@google.com> java.lang.invoke: Add MethodHandleInfo.

This interface is being introduced ahead of MethodHandles.Lookup
to break a circular dependency.

test: MethodHandleInfoTest / make docs
bug: 30550796

Change-Id: I0f2b5f3dfcbfb3f4b3cc8a2ee495f928b4f9d159
nvoke/MethodHandleInfo.java
48781c2b4c682a84659aea608cd22e7be8de0ea6 09-Aug-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Fix OldRuntime#test_traceMethodCalls"
am: 00ba1f693b

Change-Id: I9c32f86bc9e4ad80c5292fe12850c1559e5d774f
00ba1f693ba7aa8c819e61c6f53a90ddb4fe7145 09-Aug-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Fix OldRuntime#test_traceMethodCalls"
4ed2574e11ac31a61a7a8dbf1bdf6f26b4203a62 09-Aug-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix OldRuntime#test_traceMethodCalls

Runtime.getRuntime().traceMethodCalls(boolean) with "True"
argument is deprecated and unsupported (throws UnsupportedOperationException)
since Android Lollipop (API level 21).

Test: libcore.java.lang.OldRuntime.test_traceMethodCalls on both host and device
Bug: 3447964
Change-Id: I159b2e1a66fb28e1deeaf99683611fe2267b1803
untime.java
5ac2927bcdef5730354e770119e00fea0028f240 09-Aug-2016 Tobias Thierer <tobiast@google.com> Merge "Ensure apps cannot prevent uncaught exceptions being logged."
am: 63aac4686d

Change-Id: Ic738b7ee46acf61e8bbf0ee2ff93f4a45f70455e
63aac4686d6a8abd1f72b121e69bb7daeb79d8c0 09-Aug-2016 Tobias Thierer <tobiast@google.com> Merge "Ensure apps cannot prevent uncaught exceptions being logged."
d0cb154a7d0e2beda81dc83f9076a63c1bc04797 05-Aug-2016 Tobias Thierer <tobiast@google.com> Merge "Revert "Hide ProcessBuilder.Redirect and associated APIs.""
am: b2f0dffe85

Change-Id: Iafc78c3c9a1ba5d008fd0226edd81be616880dbc
b2f0dffe858688c1b1af85db5a25926045af7f03 05-Aug-2016 Tobias Thierer <tobiast@google.com> Merge "Revert "Hide ProcessBuilder.Redirect and associated APIs.""
93384127ddd2af9144cd0f88f5e6be9219bbefd2 05-Aug-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Port java.lang from openJdk8, part 4"
am: d4a38fdce5

Change-Id: I112f278f101c3d15ccd462aa2e4faf9190659cda
d4a38fdce5138d3b947a992a7fd2f53a45e30b14 05-Aug-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Port java.lang from openJdk8, part 4"
b62710c762bf399ee1a45821eb0740b2d9c92f62 21-Jul-2016 Tobias Thierer <tobiast@google.com> Ensure apps cannot prevent uncaught exceptions being logged.

Add a new @hide API to set an additional UncaughtExceptionHandler that
is called before dispatching to the regular handler. The framework
uses this to enforce logging.

Test: Ran ThreadTest.

Bug: 29624607
Change-Id: Ieb8d70662f7a37e9bfcdeb2818bf4863bb6c1890
hread.java
4e73fd2bc22e704fe71465782b83be0471ac5e82 05-Jul-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Port java.lang from openJdk8, part 4

- New java.lang.ThreadLocal.withInitial method.
- Javadoc cosmetic and generics changes.
- Restored removed SecurityManager checks in System.
- Out and err streams can now change encoding depending
on properties.
- Out and err are now a BufferedOutputStream (size 128).
- Thread#UncaughtExceptionHandler is now a
FunctionalInterface
- Double checked locking for System#console()


Bug: 28666126
Change-Id: I4a715a785578185920e2ee5a16dbe06511c55c23
tring.java
tringCoding.java
tringIndexOutOfBoundsException.java
uppressWarnings.java
ystem.java
hread.java
hreadGroup.java
hreadLocal.java
oid.java
e590cd534496d0f38971cb58c442b82251536fc3 02-Aug-2016 Yi Kong <yikong@google.com> Merge "Remove unnecessary +x flag"
am: c00b940e9e

Change-Id: Idd1a6e6d9fb302b7165e7f57066d40dc0d92c1c0
fde01e06d8aacfc18c2d4bf1930e271ae5c812d1 02-Aug-2016 Yi Kong <yikong@google.com> Remove unnecessary +x flag

Source code files and serialized resource files should not have x flag set.

This is a follow up to commit 49965c1d, where native codes and some Java
source files are left out.

Bug: 29977629
Test: Build, CTS tests
Change-Id: I475491284cf5784ed499daa434c2845cdadea3a0
untime.java
3a0b2ae0ea75684e11e3fda2f41d637cfeb62d10 02-Aug-2016 Narayan Kamath <narayan@google.com> Merge "java.lang.invoke: Add MethodHandle."
am: 2333b6f662

Change-Id: Ia982652d76a65f04db5ca8eb12615c5ae5ed8ef7
8b532c93d91102f2f3edf9a6b69e2ce9d2a3a8e6 27-Jul-2016 Narayan Kamath <narayan@google.com> java.lang.invoke: Add MethodHandle.

- Addresses TODOs in MethodType that depended on the inclusion
of java.lang.invoke.MethodHandle.

- None of the functionality in this change is functional or testable
currently. We need this because there are a few circular dependencies
between the runtime implementation of polymorphic invokes and this
class.

- This change also adds dummy native implementations of invoke /
invokeExact. These methods must be marked as native and must throw
an UnsupportedOperation when invoked reflectively.

bug: 30550796
test: make docs

Change-Id: Ic9c3faa4be4fd3b443b9dab8f7c4f5e8f8c1187a
nvoke/MethodHandle.java
nvoke/MethodType.java
14f0b94fe951a38b0454b96750fd290432b0e051 01-Aug-2016 Narayan Kamath <narayan@google.com> Merge \"java.lang.invoke: Add implementation of MethodType.\"
am: 6a0230f393

Change-Id: I7bb8cf1672addc5d9883999cd1e57488eb34801f
2e439dc50d112c37a4def2d60e3d937a89bfe6ca 26-Jul-2016 Narayan Kamath <narayan@google.com> java.lang.invoke: Add implementation of MethodType.

Imported from OpenJdk8u60. The only significant changes
are that :

- The adapter / lambda-form caches on MethodType / MethodTypeForm
has been removed because it will not be used on Android.
- Several unused package private methods have been removed.
- Links to MethodHandle API have temporarily been replaced with
@code markers. They will be resurrected when the MethodHandle
class is imported.

All changes have been annotated with change markers.

bug: 30550796
test: make checkbuild + MethodTypeTest on host / target.

Change-Id: I6e745d940f5f2949e40ff96fda5f91ba2afa267e
nvoke/MethodHandleStatics.java
nvoke/MethodType.java
nvoke/MethodTypeForm.java
nvoke/Stable.java
7a1f9874479c122f79d3dc57a3b6058fb3d188de 01-Aug-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge \"Disable Runtime#load/loadLibrary(String,ClassLoader) in >N\"
am: 71ef72a538

Change-Id: If0bc0a0d79e7d307d54a1782f7c99e14f454fbf6
895e37b768ced42a813e64e868314aca83fb53ad 26-Jul-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Disable Runtime#load/loadLibrary(String,ClassLoader) in >N

Runtime#load/loadLibrary are private and deprecated methods.
Still, many apps use reflection to use them. If app is
targeting API level > 24, both methods will throw
a RuntimeException.

This is a second attempt, with a working tests.

Bug: 25859957
Change-Id: I9808831493f297f3551884ec8f1e6a079476a803
Test: libcore.java.lang.OldRuntimeTest
(cherry picked from commit 8e99fd200798d3d115745bacfb853209af3501cd and 6ee825e4decc602f3e6ca6e5b084382fc6f60bb5)
untime.java
625df3fb4d4aaf7d8769cb3ce3c78b6e106ed6e5 29-Jul-2016 Narayan Kamath <narayan@google.com> Merge \"Character: Add special case for case folding ASCII codepoints.\"
am: 814b9cdca1

Change-Id: I2463879f8ee8515c9c65a56d294d04148f442df2
dfb36ac5c1f20a0cfa02e37119187b1b13ccd533 28-Jul-2016 Narayan Kamath <narayan@google.com> Character: Add special case for case folding ASCII codepoints.

Makes things between 5x faster (String.length() == 2) and 2.5x faster
(String.length() = 512k).

Results from the relevant benchmarks in CaseMappingBenchmark, measured
on an aosp_angler-userdebug device.

BEFORE:
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=EMPTY}}
runtime(ns): min=29.33, 1st qu.=29.69, median=30.31, mean=30.13, 3rd qu.=30.43, max=30.85
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=LOWER2}}
runtime(ns): min=167.03, 1st qu.=167.52, median=167.98, mean=168.83, 3rd qu.=169.97, max=173.85
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=UPPER2}}
runtime(ns): min=405.06, 1st qu.=411.69, median=435.16, mean=445.40, 3rd qu.=478.26, max=488.99
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=MIXED2}}
runtime(ns): min=366.95, 1st qu.=370.45, median=373.08, mean=380.19, 3rd qu.=378.89, max=436.75
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=LOWER32}}
runtime(ns): min=2268.15, 1st qu.=2270.07, median=2290.65, mean=2292.02, 3rd qu.=2315.40, max=2327.49
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=UPPER32}}
runtime(ns): min=4428.02, 1st qu.=4472.99, median=4519.30, mean=4519.92, 3rd qu.=4570.19, max=4607.35
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=MIXED32}}
runtime(ns): min=3890.73, 1st qu.=3951.55, median=4014.90, mean=4096.84, 3rd qu.=4218.43, max=4567.76
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=LOWER512}}
runtime(ns): min=35690.86, 1st qu.=35824.60, median=35900.18, mean=35981.11, 3rd qu.=36147.33, max=36455.45
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=UPPER512}}
runtime(ns): min=70513.94, 1st qu.=71086.43, median=72158.54, mean=72223.58, 3rd qu.=73076.69, max=74707.14
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=MIXED512}}
runtime(ns): min=57307.61, 1st qu.=58459.23, median=59048.19, mean=59167.31, 3rd qu.=60155.00, max=60359.01
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=LOWER_512_K}}
runtime(ns): min=36841180.78, 1st qu.=37000630.38, median=37142450.15, mean=37691891.48, 3rd qu.=38551476.34, max=39473916.14
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=UPPER_512_K}}
runtime(ns): min=74462017.10, 1st qu.=75833598.15, median=76662149.75, mean=76405214.68, 3rd qu.=76823769.02, max=78451533.67
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=MIXED_512_K}}
runtime(ns): min=60461248.56, 1st qu.=60817389.36, median=61201595.22, mean=61526397.40, 3rd qu.=61940429.61, max=63920845.00
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=EMPTY}}
runtime(ns): min=41.46, 1st qu.=41.55, median=41.76, mean=41.94, 3rd qu.=42.32, max=42.97
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=LOWER2}}
runtime(ns): min=404.06, 1st qu.=413.38, median=435.10, mean=443.76, 3rd qu.=480.60, max=487.89
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=UPPER2}}
runtime(ns): min=195.31, 1st qu.=199.50, median=202.54, mean=202.51, 3rd qu.=206.54, max=208.45
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=MIXED2}}
runtime(ns): min=486.76, 1st qu.=514.60, median=533.90, mean=532.89, 3rd qu.=548.47, max=584.56
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=LOWER32}}
runtime(ns): min=5172.51, 1st qu.=5223.29, median=5286.72, mean=5314.42, 3rd qu.=5411.71, max=5526.16
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=UPPER32}}
runtime(ns): min=2480.97, 1st qu.=2492.86, median=2516.02, mean=2526.47, 3rd qu.=2565.40, max=2585.49
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=MIXED32}}
runtime(ns): min=3931.96, 1st qu.=3980.45, median=4063.81, mean=4107.68, 3rd qu.=4085.00, max=4743.90
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=LOWER512}}
runtime(ns): min=74818.73, 1st qu.=75630.06, median=76430.63, mean=76364.52, 3rd qu.=76938.18, max=77972.01
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=UPPER512}}
runtime(ns): min=39525.59, 1st qu.=39674.51, median=39736.68, mean=39905.31, 3rd qu.=40165.96, max=40706.11
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=MIXED512}}
runtime(ns): min=71553.80, 1st qu.=71903.59, median=72500.07, mean=73109.80, 3rd qu.=74679.62, max=74806.78
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=LOWER_512_K}}
runtime(ns): min=74578900.63, 1st qu.=74946573.83, median=76355137.33, mean=76343448.14, 3rd qu.=77729727.63, max=78529524.29
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=UPPER_512_K}}
runtime(ns): min=53752902.31, 1st qu.=54508879.46, median=54837568.30, mean=55070280.74, 3rd qu.=55629185.94, max=56985816.50
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=MIXED_512_K}}
runtime(ns): min=64566357.67, 1st qu.=64789150.65, median=65193903.78, mean=65287320.85, 3rd qu.=65439559.50, max=66975228.29

AFTER:
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=EMPTY}}
runtime(ns): min=29.50, 1st qu.=29.64, median=29.83, mean=29.87, 3rd qu.=30.15, max=30.30
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=LOWER2}}
runtime(ns): min=52.73, 1st qu.=53.21, median=53.91, mean=53.79, 3rd qu.=54.36, max=54.45
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=UPPER2}}
runtime(ns): min=228.74, 1st qu.=230.99, median=233.61, mean=244.29, 3rd qu.=248.56, max=307.34
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=MIXED2}}
runtime(ns): min=246.12, 1st qu.=248.73, median=253.27, mean=268.97, 3rd qu.=294.01, max=300.26
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=LOWER32}}
runtime(ns): min=462.39, 1st qu.=467.24, median=473.52, mean=471.96, 3rd qu.=475.60, max=481.23
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=UPPER32}}
runtime(ns): min=2523.50, 1st qu.=2548.12, median=2562.96, mean=2574.52, 3rd qu.=2596.62, max=2653.68
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=MIXED32}}
runtime(ns): min=1620.11, 1st qu.=1659.76, median=1693.29, mean=1689.57, 3rd qu.=1725.38, max=1744.43
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=LOWER512}}
runtime(ns): min=6829.39, 1st qu.=6837.58, median=6958.84, mean=6931.43, 3rd qu.=7006.52, max=7058.49
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=UPPER512}}
runtime(ns): min=37175.86, 1st qu.=38590.32, median=39973.00, mean=39766.09, 3rd qu.=40767.48, max=41835.71
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=MIXED512}}
runtime(ns): min=25269.69, 1st qu.=25640.28, median=25860.75, mean=26025.64, 3rd qu.=26554.05, max=26729.05
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=LOWER_512_K}}
runtime(ns): min=7173773.72, 1st qu.=7243974.33, median=7279164.88, mean=7308423.63, 3rd qu.=7367634.38, max=7555233.88
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=UPPER_512_K}}
runtime(ns): min=39979613.64, 1st qu.=40416298.99, median=41803666.55, mean=41670501.80, 3rd qu.=42319604.58, max=44349411.78
Experiment {instrument=runtime, benchmarkMethod=timeToLowerCase_US, vm=default, parameters={s=MIXED_512_K}}
runtime(ns): min=25571413.96, 1st qu.=26046572.32, median=26167446.79, mean=26249992.58, 3rd qu.=26349891.47, max=27474270.67
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=EMPTY}}
runtime(ns): min=41.10, 1st qu.=41.21, median=41.37, mean=41.36, 3rd qu.=41.52, max=41.60
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=LOWER2}}
runtime(ns): min=287.67, 1st qu.=289.43, median=293.33, mean=305.43, 3rd qu.=326.01, max=349.69
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=UPPER2}}
runtime(ns): min=76.77, 1st qu.=77.08, median=78.36, mean=78.31, 3rd qu.=79.60, max=80.06
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=MIXED2}}
runtime(ns): min=290.54, 1st qu.=292.96, median=297.54, mean=303.62, 3rd qu.=309.00, max=349.45
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=LOWER32}}
runtime(ns): min=2707.35, 1st qu.=2737.79, median=2770.07, mean=2778.04, 3rd qu.=2829.40, max=2846.53
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=UPPER32}}
runtime(ns): min=647.52, 1st qu.=652.92, median=665.31, mean=664.16, 3rd qu.=671.39, max=688.44
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=MIXED32}}
runtime(ns): min=2021.43, 1st qu.=2033.67, median=2048.96, mean=2061.61, 3rd qu.=2081.64, max=2155.44
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=LOWER512}}
runtime(ns): min=41283.61, 1st qu.=41952.42, median=42908.06, mean=42727.25, 3rd qu.=43374.28, max=43670.23
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=UPPER512}}
runtime(ns): min=9655.72, 1st qu.=9746.66, median=9880.92, mean=9870.98, 3rd qu.=9987.42, max=10031.96
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=MIXED512}}
runtime(ns): min=29421.76, 1st qu.=29604.36, median=30114.47, mean=30175.07, 3rd qu.=30432.06, max=31606.85
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=LOWER_512_K}}
runtime(ns): min=43452037.44, 1st qu.=44075696.74, median=44410247.09, mean=44611581.35, 3rd qu.=45077490.18, max=46559968.00
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=UPPER_512_K}}
runtime(ns): min=10173340.94, 1st qu.=10281587.15, median=10416552.27, mean=10475390.19, 3rd qu.=10665954.83, max=10922523.97
Experiment {instrument=runtime, benchmarkMethod=timeToUpperCase_US, vm=default, parameters={s=MIXED_512_K}}
runtime(ns): min=30191040.48, 1st qu.=30827827.89, median=31024588.42, mean=31420622.90, 3rd qu.=32222205.19, max=33431317.29

bug: 30455775
Test: StringCaseMapperBenchmark, CharacterTest, StringTest
Change-Id: I960fd7bd97c2a4e16598cea51ca0683b6e5856ef
haracter.java
6744019f84f4bfb002110a7cefe9c7f2498e138b 27-Jul-2016 Hiroshi Yamauchi <yamauchi@google.com> Merge \"Revert \"Disable private Runtime#load/loadLibrary(String,ClassLoader) in >N\"\"
am: f0f87ffef7

Change-Id: I5ce3dfb5367636fc54601ae708a0da872f78b0cf
4b91335454a02b51e4e61e351f722015a3f970ce 27-Jul-2016 Hiroshi Yamauchi <yamauchi@google.com> Revert "Disable private Runtime#load/loadLibrary(String,ClassLoader) in >N"

This reverts commit 67f656a5782ab12221516738e5c83043798e8588.

Tests failing.

Change-Id: If8fbc1894b0f2db05e3e42f5a60b5f226fcb95f0
untime.java
b3a70572876a11369b6f02ff450dc2904be2005e 26-Jul-2016 Tobias Thierer <tobiast@google.com> Revert "Hide ProcessBuilder.Redirect and associated APIs."

ProcessBuilderTest is now sufficiently comprehensive.

This reverts commit 4eed609c71648c069d8e83ec7001da29044d416b.

Test: make && make cts
Then ran the test on both a 'user' and a 'userdebug' build:
cts-tradefed run cts -c libcore.java.lang.ProcessBuilderTest

Bug: 27464570
Change-Id: Ib18de4826b91974011003139801cc34a7e0b0c92
rocess.java
rocessBuilder.java
f7389e7a0c38d8c4f24473fa2ea9e701db65740f 26-Jul-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge \"Disable private Runtime#load/loadLibrary(String,ClassLoader) in >N\"
am: 9131846c9d

Change-Id: I510fe7ab7c28dc4e2f00249cd7da834e30d00cb1
67f656a5782ab12221516738e5c83043798e8588 26-Jul-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Disable private Runtime#load/loadLibrary(String,ClassLoader) in >N

Runtime#load/loadLibrary are private and deprecated methods.
Still, many apps use reflection to use them. If app is
targeting API level > 24, both methods will throw
a RuntimeException.

Bug: 25859957
Change-Id: I3e79d4f79fa560247057045ace1e3cb158cc6cfe
(cherry picked from commit 8e99fd200798d3d115745bacfb853209af3501cd)
untime.java
913f9b6f3b3d9ec559da8bc857eacfd8c3a3f447 22-Jul-2016 Narayan Kamath <narayan@google.com> Merge \"java.lang.invoke: Add exception classes to core-oj.jar.\"
am: 9e66ed6ed5

Change-Id: I74579e91d11bc91d933583c3b2ba64a7d6e2d38c
1e5de65aa751b899256f01edbd687971bb650743 21-Jul-2016 Narayan Kamath <narayan@google.com> java.lang.invoke: Add exception classes to core-oj.jar.

Also removes the classes from stubs.

Change-Id: I5c2a2afc7db4eba2dd9798097162b0ef440880a9
Test: make checkbuild docs
nvoke/LambdaConversionException.java
nvoke/WrongMethodTypeException.java
1532faaeb53044c75f6d042b37f89e1cae256b79 12-Jul-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge \"Fix Unsafe#park for large wait-time values.\"
am: 2f844ba4be

Change-Id: I576d705bd3bfc21fed66271555e3ed460615579a
bf34d8378762aa4d97c30c86ef95502e5d85ed3e 27-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix Unsafe#park for large wait-time values.

jsr166.LockSupportTest#testParkNeg_parkUntilBlocker
fails if the delay between the tests
System.currentTimeMillis is called at least 2ms behind
the Unsafe#park. This is caused by underflow to
large positive value when subtracting current time
from the method argument.

This change fixes it by not doing subtraction before
comparison.

parkUntil takes arguments in milliseconds and is implemented
as a call to parkFor, which takes arguments in nanoseconds.
If parkUntil argument will overflow during conversion to
nanoseconds, it's clamped on max value (~292 years).

Bug: 29746125
Change-Id: Ie0b3923ce4567415bf6478552c51eb31ac4aec62
hread.java
529e84b822eb9d2d2f600759a7abe61af4202cf0 07-Jul-2016 Ganesh Mahendran <opensource.ganesh@gmail.com> Merge \"remove x attribute of java file\"
am: 2b82d6698a

Change-Id: I98c1f4f707d68cf40e8fe6e837c4c6bf9f94c06c
49965c1dc9da104344f4893a05e45795a5740d20 30-Jun-2016 Ganesh Mahendran <opensource.ganesh@gmail.com> remove x attribute of java file

java file does not need x attribute. This patch removes it.

Change-Id: I2a7170d99f4bee7a7b819621c84dd197ded37fa2
Signed-off-by: Ganesh Mahendran <opensource.ganesh@gmail.com>
bstractMethodError.java
ppendable.java
rithmeticException.java
rrayIndexOutOfBoundsException.java
lass.java
lassCircularityError.java
lassFormatError.java
lassLoader.java
lassNotFoundException.java
loneNotSupportedException.java
loneable.java
ompiler.java
rror.java
xception.java
xceptionInInitializerError.java
llegalAccessError.java
llegalAccessException.java
llegalMonitorStateException.java
llegalStateException.java
llegalThreadStateException.java
ncompatibleClassChangeError.java
ndexOutOfBoundsException.java
nstantiationError.java
nstantiationException.java
nternalError.java
nterruptedException.java
inkageError.java
egativeArraySizeException.java
oSuchFieldError.java
oSuchFieldException.java
oSuchMethodError.java
oSuchMethodException.java
ullPointerException.java
utOfMemoryError.java
verride.java
rocessImpl.java
eflectiveOperationException.java
untimeException.java
ecurityException.java
ecurityManager.java
tackOverflowError.java
tring.java
tringCoding.java
tringIndexOutOfBoundsException.java
uppressWarnings.java
ystem.java
hread.java
hreadDeath.java
hreadGroup.java
hreadLocal.java
hrowable.java
ypeNotPresentException.java
nknownError.java
nsatisfiedLinkError.java
nsupportedClassVersionError.java
nsupportedOperationException.java
erifyError.java
irtualMachineError.java
oid.java
nnotation/AnnotationFormatError.java
nnotation/AnnotationTypeMismatchException.java
nnotation/Documented.java
nnotation/ElementType.java
nnotation/RetentionPolicy.java
ef/PhantomReference.java
ef/Reference.java
ef/ReferenceQueue.java
ef/SoftReference.java
ef/WeakReference.java
eflect/AccessibleObject.java
eflect/AnnotatedElement.java
eflect/Array.java
eflect/Constructor.java
eflect/Field.java
eflect/GenericArrayType.java
eflect/GenericDeclaration.java
eflect/GenericSignatureFormatError.java
eflect/InvocationHandler.java
eflect/InvocationTargetException.java
eflect/MalformedParameterizedTypeException.java
eflect/Member.java
eflect/Method.java
eflect/Modifier.java
eflect/ParameterizedType.java
eflect/Proxy.java
eflect/ReflectPermission.java
eflect/Type.java
eflect/TypeVariable.java
eflect/UndeclaredThrowableException.java
eflect/WildcardType.java
51a172fe537043bf43138f9f7858ae675567ef8c 05-Jul-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge \"Restore NoClassDefFoundError ctor removed by mistake\"
am: 8945010c1c

Change-Id: Ib2c2cbe4432ed34b2d82c02d25527a4bb23d7015
6eb027504454685b35882e074b5bc652e41d088b 05-Jul-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Restore NoClassDefFoundError ctor removed by mistake

Bug: 28666126
Change-Id: I38371f412d67b41a25b854519c5b1c6ed02f35bd
oClassDefFoundError.java
d283133498fc396c46a2407111160bc71dc67d10 05-Jul-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge \"Port java.lang from openJdk8, part 3\"
am: 500742c01c

Change-Id: I1b5330ea67c487bde285a35156c181e85cd05288
6a5351e12a69e865fe31b8aac989bd2573aebbca 28-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Port java.lang from openJdk8, part 3

Tests: Run all CTS Math/StrictMath/Process related tests
Bug: 28666126
Change-Id: If7555e9bcbccb60b988da96a2a1875e3672e82ee
num.java
numConstantNotPresentException.java
llegalArgumentException.java
nheritableThreadLocal.java
nteger.java
ong.java
ath.java
oClassDefFoundError.java
umber.java
umberFormatException.java
bject.java
ackage.java
rocess.java
rocessBuilder.java
rocessEnvironment.java
eadable.java
unnable.java
untime.java
untimePermission.java
afeVarargs.java
hort.java
tackTraceElement.java
trictMath.java
4eed609c71648c069d8e83ec7001da29044d416b 24-Mar-2016 Narayan Kamath <narayan@google.com> Hide ProcessBuilder.Redirect and associated APIs.

bug: 27464570
Change-Id: I31d8dbe332b55ca380263c4b48eae18400122da5
(cherry picked from commit de83ee5f76eacda65d1436503c3e48f6aa67a2d7)
rocess.java
rocessBuilder.java
52a8b16559f5427eb3fd4ace18c8a6cb55588a42 29-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge \"Remove dead code related to shutdown hooks.\"
am: 0f11fc76d4

Change-Id: I654c07070ea05c2923f07c8907a827bd0b1db74b
552ce337c6777082f434e4f1696ef02a13d5402a 28-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Remove dead code related to shutdown hooks.

Both java.lang.Shutdown and java.lang.ApplicationShutdownHooks are
building blocks of the OpenJdk Runtime#addShutdownHook implementation.

It is not used in the Android port: there is a simpler implementation added in java.lang.Runtime.

This change makes further OpenJdk 8 pulls simpler.

Bug: 28666126
Change-Id: I3a15f3e8d00432360b46e1b8f9ef22797f1b743b
pplicationShutdownHooks.java
hutdown.java
3bc106bd23ffa48585458a9e14a8dcefdc924246 24-Jun-2016 David Sehr <sehr@google.com> Merge \"Use correct class loader for Runtime.load\"
am: 7db7a60761

Change-Id: I4e93afcf7b96268ceff97f0d7045be780362db42
b662a8ccc6a468994123af21c0df32b4c14a6d35 22-Jun-2016 David Sehr <sehr@google.com> Use correct class loader for Runtime.load

Fix a bug discovered during code inspection. Use the correct class
loader for Runtime.load(); previously it was using the ClassLoader of
the caller's caller, not the ClassLoader of the caller as was intended.

Bug: 29452398
Change-Id: I609a3789aa58190427d8fd4c4ea2fc6b1cc8bd24
(cherry picked from commit 98948c97a2c13b078e3e78feb3a8b24191250f7f)
untime.java
1c62018d73f83bbb3761267be1e9b8834874963a 24-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge \"Port openJdk8 java.lang package, part 2\"
am: 99197ec7e5

Change-Id: I868fed068fb9f05200b70a60205f67b6709f22a3
694e617f54a7bfbdad24913ce96f5d56f1a1960a 20-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Port openJdk8 java.lang package, part 2

- Removed floating to/from string performance hacks
we have added on the top of openJdk7 code (no longer needed)
- AbstractStringBuilder is Appendable again, we may decide
to revert this (see b/27582395 for context)
- New String method #join

Bug: 28666126
Change-Id: I35f6dbc1199e2bd2b4a4db69d35da81679d80093
bstractStringBuilder.java
lassCastException.java
omparable.java
eprecated.java
ouble.java
loat.java
loatingDecimal.java
tring.java
tringBuffer.java
tringBuilder.java
ed7f2762cae8898eed8f09dcb7f0edfb75f3124e 16-Jun-2016 Yi Kong <yikong@google.com> Merge \"Unhide @Native annotation\"
am: cebaf509dd

Change-Id: I608d94ea9691ad8aedf49e4684087f4446875226
cebaf509dd1299a4761007e3a700e4805f4c8bba 16-Jun-2016 Yi Kong <yikong@google.com> Merge "Unhide @Native annotation"
7b3c9daf71f662823a1979ee2814ce815aec1a6f 16-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge \"Restore fix for SURROGATES_AREA UnicodeBlock\"
am: 1aa34d61a4

Change-Id: I0c0248be5d346c1bc6742b410cb18840befb4127
945919f928f7d7ec26b4fcb57c77253d67e3553c 16-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Restore fix for SURROGATES_AREA UnicodeBlock

SURROGATES_AREA is deprecated and shouldn't be
mapped.

Bug: 28666126
Change-Id: Ic4b521ec48321b3ddff8ce5eee4f4746ea74bef2
haracter.java
45f477557ddaf68cb2fe9603544b95c0e7af9a92 16-Jun-2016 Yi Kong <yikong@google.com> Unhide @Native annotation

Change-Id: Ib3629534921ae15a885780680292f4bdcab02669
nnotation/Native.java
e0af1f967100e8e309e8495b0647a12a9a7edbbf 16-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge \"Port openJdk8 java.lang package, part 1.\"
am: 7cb0963d85

Change-Id: I0a3cdedba5ea7d8bc64ad70e36389806c5892189
25fbd653a83f3a22235eb61e6e34f46ef3e990b7 16-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Port openJdk8 java.lang package, part 1.

Bug: 28666126

Change-Id: I9138244ba1f30ec32b20c1c6394392742ffc3b2c
rrayStoreException.java
ssertionError.java
utoCloseable.java
oolean.java
yte.java
harSequence.java
haracter.java
nnotation/Annotation.java
nnotation/IncompleteAnnotationException.java
nnotation/Inherited.java
nnotation/Retention.java
nnotation/Target.java
170f61cbdcfef9e70627e7a99ee6a7522186fb3d 14-Jun-2016 Yi Kong <yikong@google.com> Merge \\"Merge OpenJDK 8 java.net (part 1)\\" am: 67d7fc0cc6
am: 14123a199c

Change-Id: I834576b8626494f3c51073362ae439d07a78d423
67d7fc0cc667c04cac80c317aa02841616315dd2 14-Jun-2016 Yi Kong <yikong@google.com> Merge "Merge OpenJDK 8 java.net (part 1)"
9394cf48ce367e4e95edcd9d99718008f59c4639 14-Jun-2016 Sergio Giro <sgiro@google.com> Merge \\"ojluni: delete empty packages\\" am: 1604a601bb
am: b23a5e5c2f

Change-Id: I1baa2289c89ec1af6adeb7630b22185db834017e
3a6411ec91b24e73f36301d0075bc7b052894ae9 14-Jun-2016 Yi Kong <yikong@google.com> Merge OpenJDK 8 java.net (part 1)

Partial import of upstream jdk8u60 that does not introduce behavioural
differences:
* Various documentation fixes
* Change HTML <code> and <tt> to {@code} annotation.
* Generics
* Serialization UID
* Code layout

No functional change.

Bug: 29067535
Change-Id: I7fc29692b949a27b528d1b25dfb3f0993005dfd2
nnotation/Native.java
c95de01a3aea9bf351ee3bb6ce78aa37869a5a25 14-Jun-2016 Sergio Giro <sgiro@google.com> ojluni: delete empty packages

Remove directories corresponding to packages having only package.html files

Bug: 29346973
Change-Id: Ib5ca9eeded3fc9a0cfff83533efd2ae5043997ad
anagement/package.html
e0b43654a533a237806f35f6b96f865407421bbc 13-Jun-2016 Narayan Kamath <narayan@google.com> Merge "Class : Implement getSimpleName for inner classes using dex annotations."
92d7211db6d0d1afd981f8e4a51857c88cee0e03 17-May-2016 Narayan Kamath <narayan@google.com> Class : Implement getSimpleName for inner classes using dex annotations.

Also, implement isMemberClass in terms of getDeclaringClass. This allows
us to get rid of the (confusing and easy to abuse, IMO)
getSimpleBinaryName helper.

bug: 28800927

(cherry picked from commit bd15ce91c6284bf7d6e76470b080fe6cf0b0b093)

Change-Id: Ia2cd99f6510d766b9e05fb153024fca94ec998e9
lass.java
58fb3e621b1996d833b503895543c044295e078b 09-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge \\"Fix openJdk package-level javadocs\\" am: 2db0a574b4
am: c3a4f7dc0b

Change-Id: I33ba86b40cd7c4b1cbf23d73d8fd57588a43e144
77bf4f8e8a72137d927c10778181408d075f4dd1 08-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix openJdk package-level javadocs

Libcore was missing few package-info.java/package.html files
for few packages, I've added the relevant files from openJdk 7u40.

In 3 packages (java.nio, java.nio.charser, java.lang.ref) the
package.html file was not being included in the generated documentation
for unknown reasons. Still investigating the cause, but in the meantime
I did found that converting package.html into package-info.java solves the
problem.

Bug: 29114138
Change-Id: Id16a645879ec7b34155a8d9d8ae6cd3b0b92b43b
nnotation/package-info.java
ackage-info.java
ef/package-info.java
ef/package.html
eflect/package-info.java
6e86df5e20f88a0b7c2ca223b6b01d57778d4979 01-Jun-2016 Neil Fuller <nfuller@google.com> Merge "Improve getChars() bounds checking and add a test" into nyc-dev
am: c2592844f7

* commit 'c2592844f7859afdb19e9385bae154c4cd276f91':
Improve getChars() bounds checking and add a test

Change-Id: I50690cb9898aaedf001cdfe374f37a0fac354d62
7e6c7898a039a600ba48fbbc4221aed7dfd75ff3 27-May-2016 Neil Fuller <nfuller@google.com> Improve getChars() bounds checking and add a test

The dstEnd calculation could previously overflow and a negative
dstBegin wasn't being caught in one specific case.

Bug: 28998511
(cherry picked from commit 6bf866608fbbd6aad37ba0daa288778a6f1fad41)

Change-Id: I9e16f2d2eda4272e6e704d27a10c7acf192349c7
tring.java
6bf866608fbbd6aad37ba0daa288778a6f1fad41 27-May-2016 Neil Fuller <nfuller@google.com> Improve getChars() bounds checking and add a test

The dstEnd calculation could previously overflow and a negative
dstBegin wasn't being caught in one specific case.

Bug: 28998511
Change-Id: I144d92d114bab94f5a207c3e3d5f5b55c97e9838
tring.java
7f21a9ec163a86418af18971be3e6c0d7eafc101 19-May-2016 Narayan Kamath <narayan@google.com> Merge "Class : Implement getSimpleName for inner classes using dex annotations." into nyc-dev
am: bc24750933

* commit 'bc247509330f72ac0d6d97a3c0cd605265611017':
Class : Implement getSimpleName for inner classes using dex annotations.

Change-Id: I1ac7ef8c2839342b967f7468c7da8f5ffa47af86
bd15ce91c6284bf7d6e76470b080fe6cf0b0b093 17-May-2016 Narayan Kamath <narayan@google.com> Class : Implement getSimpleName for inner classes using dex annotations.

Also, implement isMemberClass in terms of getDeclaringClass. This allows
us to get rid of the (confusing and easy to abuse, IMO)
getSimpleBinaryName helper.

bug: 28800927

Change-Id: I6759e0abe360a14f2f874f302108a1beb352b7d0
lass.java
0c299fa46c0ee3be87c891b265ca733270807dc0 16-May-2016 Yi Kong <yikong@google.com> Update URLs to Java technotes and platform docs
am: d2449bb576

* commit 'd2449bb576ad1e3a3877364e5e1ae28625f69e35':
Update URLs to Java technotes and platform docs

Change-Id: I2ddc4126022812cc15d3a90078b09cf309cd074d
309f9df28350e15445b9135e8b710fa2b34b5dc1 25-Apr-2016 Yi Kong <yikong@google.com> Update URLs to Java technotes and platform docs

Fix links to {@docRoot}/../{technotes,platform} pages.

This is done by batch editing using the following script:
grep @docRoot -rl | xargs sed -i 's/\/..\/technotes/r\/openjdk-redirect.html?v=8\&path=\/technotes/g;s/\/..\/platform/openjdk-redirect.html?v=8\&path=\/platform/g'

Bug: 27540501
Change-Id: Ib5634cd461fbba37dd94ddad9660910dc9397fe7
(cherry picked from commit d2449bb576ad1e3a3877364e5e1ae28625f69e35)
omparable.java
terable.java
hread.java
nsupportedOperationException.java
d2449bb576ad1e3a3877364e5e1ae28625f69e35 25-Apr-2016 Yi Kong <yikong@google.com> Update URLs to Java technotes and platform docs

Fix links to {@docRoot}/../{technotes,platform} pages.

This is done by batch editing using the following script:
grep @docRoot -rl | xargs sed -i 's/\/..\/technotes/r\/openjdk-redirect.html?v=8\&path=\/technotes/g;s/\/..\/platform/openjdk-redirect.html?v=8\&path=\/platform/g'

Bug: 27540501
Change-Id: Ib5634cd461fbba37dd94ddad9660910dc9397fe7
omparable.java
terable.java
hread.java
nsupportedOperationException.java
2fb0d45d81cd9bc0c311390a6406b611a4817ff4 11-May-2016 Joachim Sauer <jsauer@google.com> Merge "Fix AbstractStringBuilder gaining extra APIs."
9c36056342e1211e2097cc6bd16621eaa83278ea 11-May-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Restore android SoftReference javadoc" into nyc-dev
7e34231081ded4186288d16a3e4dc695dc5b3c3f 11-May-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Restore android SoftReference javadoc" am: 8ff025ddf5
am: 4e75602b02

* commit '4e75602b0214e564d0603e71f1b9fa2d7779b20d':
Restore android SoftReference javadoc

Change-Id: I2f87aca28aaf34d4d3fe4d52d1e3f7b5a5b04273
1314bc5d6edc82b6438c4ff6c19bda1cc0f93880 11-May-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Restore android SoftReference javadoc

OpenJdk java.lang.ref.SoftReference javadoc
contradicts the Android version of its javadoc.
OpenJdk one encourages its use for caches, while
the old one says its a bad idea.

Old one makes most sense, this change adds it back.

Bug: 27441320
Change-Id: Ibef61741b92fe2d2f16ccd9bba358d07634f4dfb
(cherry picked from commit 388f1552bba14ddb38b270645950063fce1784a1)
ef/SoftReference.java
8ff025ddf55058c3ff8d122f66551d0bead5467a 11-May-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Restore android SoftReference javadoc"
388f1552bba14ddb38b270645950063fce1784a1 11-May-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Restore android SoftReference javadoc

OpenJdk java.lang.ref.SoftReference javadoc
contradicts the Android version of its javadoc.
OpenJdk one encourages its use for caches, while
the old one says its a bad idea.

Old one makes most sense, this change adds it back.

Bug: 27441320
Change-Id: Ibef61741b92fe2d2f16ccd9bba358d07634f4dfb
ef/SoftReference.java
a7b3c8e92c0bdc02c4cc9e2f42ff80b732df18f6 10-May-2016 Joachim Sauer <jsauer@google.com> Fix AbstractStringBuilder gaining extra APIs.

AbstractStringBuilder showed up in the API as gaining methods originally
belonging to StringBuffer/StringBuilder (mostly append(*) and
insert(*)).

Ideally it should not be in the API at all, but it's traditionally been
there and we'll keep it for now.

@hide the affected methods and move the "implements Appendable"
definition to StringBuffer/StringBuilder (as methods implementing an
interface can't be @hidden).

Bug: 27582395

(cherry picked from commit 616453db2d8d018cf177e207cf8773ffcb808069)

Change-Id: Ic5f5b4abf57dbde2a5ced09503f736258ff0fa72
bstractStringBuilder.java
tringBuffer.java
tringBuilder.java
787c5cee37a15f1e83df830e5cc7cd2c6ddabaa1 11-May-2016 Joachim Sauer <jsauer@google.com> Merge "Fix AbstractStringBuilder gaining extra APIs." into nyc-dev
am: c2ce5be8f9

* commit 'c2ce5be8f9281e1b865c087a90c5ed835ca39c3b':
Fix AbstractStringBuilder gaining extra APIs.

Change-Id: I4e183dab5d7e372f8a335d3122b1025bec006afa
616453db2d8d018cf177e207cf8773ffcb808069 10-May-2016 Joachim Sauer <jsauer@google.com> Fix AbstractStringBuilder gaining extra APIs.

AbstractStringBuilder showed up in the API as gaining methods originally
belonging to StringBuffer/StringBuilder (mostly append(*) and
insert(*)).

Ideally it should not be in the API at all, but it's traditionally been
there and we'll keep it for now.

@hide the affected methods and move the "implements Appendable"
definition to StringBuffer/StringBuilder (as methods implementing an
interface can't be @hidden).

Bug: 27582395
Change-Id: I05e44335f65204c6956a8caadf828ea07776d6d5
bstractStringBuilder.java
tringBuffer.java
tringBuilder.java
44994d16c8be8c76915d753d06b54fcdc1a338be 09-May-2016 Yi Kong <yikong@google.com> Merge "Port OpenJDK8 unsigned methods" am: 749902a39f
am: 07cdf1207a

* commit '07cdf1207a7a37f7fdb1e7fdc53037ed09555672':
Port OpenJDK8 unsigned methods

Change-Id: I2323d1f56a063d62c7994b544e4a6b90efef7970
e2f147b9b14c7645f29e92758f811a18258feef4 04-May-2016 Yi Kong <yikong@google.com> Port OpenJDK8 unsigned methods

Adds following methods with tests:

java.lang.Byte#toUnsignedInt
java.lang.Byte#toUnsignedLong
java.lang.Integer#compareUnsigned
java.lang.Integer#divideUnsigned
java.lang.Integer#parseUnsignedInt
java.lang.Integer#remainderUnsigned
java.lang.Integer#toUnsignedLong
java.lang.Integer#toUnsignedString
java.lang.Long#compareUnsigned
java.lang.Long#divideUnsigned
java.lang.Long#parseUnsignedLong
java.lang.Long#remainderUnsigned
java.lang.Long#toUnsignedString
java.lang.Short#toUnsignedInt
java.lang.Short#toUnsignedLong

Bug: 28582540
Change-Id: I715f146ba45f15f588a2aed38e2b85cebe98f747
yte.java
nteger.java
ong.java
hort.java
b6cf0ea6525f2fc842fd0b3ce43cad94393f16af 22-Apr-2016 Dimitry Ivanov <dimitry@google.com> Explicitly initialize librarySearchPath of the SystemClassLoader

Explicitly set librarySearchPath of the system classloader to
"java.library.path". It used to be set implicitly by BaseDexPathClassLoader
implementation but it is no longer the case. Application classloaders
do not have access to java.library.path anymore.

Bug: http://b/28320913
Bug: http://b/28082914
Change-Id: I727f9fb3366365f223af8af4c4cfe8d7d38897c0
(cherry picked from commit e57172303562e84d46b649458176cda64863c060)
lassLoader.java
ec0f54658c68bced25f17bc0c8a9bdc014aba96d 27-Apr-2016 Dimitry Ivanov <dimitry@google.com> Merge "Explicitly initialize librarySearchPath of the SystemClassLoader" am: 8c851fa
am: 381e176

* commit '381e176ac1c43d87a659392b9c85239596cbf60f':
Explicitly initialize librarySearchPath of the SystemClassLoader

Change-Id: I4488c5ddcde6bdd93c782075bba4f8d029f02cab
8c851fa429586583f70e68946e23a11163058d6e 27-Apr-2016 Dimitry Ivanov <dimitry@google.com> Merge "Explicitly initialize librarySearchPath of the SystemClassLoader"
2aaab1b8e91b112cc1a1c8ff13c29724356a67de 26-Apr-2016 Yi Kong <yikong@google.com> Merge "Avoid performing boundary checks in StringBuilder" into nyc-dev
7fe12c77c9cb7c415f94d72f366f79b7699e246d 26-Apr-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Restore fastpath of Pattern#split" into nyc-dev
6238c7b3995953d394629585be4d72a524003ae7 25-Apr-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Restore fastpath of Pattern#split

Re-added lost fastpath for Pattern#split
called with single character split regex.

Removed almost identical fastpath from
String#split and made it use the one in
the Pattern class.

Before:
Trial Report (1 of 6):
Experiment {instrument=runtime, benchmarkMethod=timePatternSplitComma, vm=default, parameters={}}
Results:
runtime(ns): min=61332.97, 1st qu.=62783.21, median=63029.70, mean=63793.72, 3rd qu.=64398.73, max=69335.01
Trial Report (2 of 6):
Experiment {instrument=runtime, benchmarkMethod=timePatternSplitLiteralDot, vm=default, parameters={}}
Results:
runtime(ns): min=62285.54, 1st qu.=62801.82, median=63652.11, mean=64028.37, 3rd qu.=64508.20, max=68743.82
Trial Report (3 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitComma, vm=default, parameters={}}
Results:
runtime(ns): min=3145.06, 1st qu.=3224.04, median=3369.42, mean=3405.25, 3rd qu.=3601.02, max=3714.71
Trial Report (4 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitHard, vm=default, parameters={}}
Results:
runtime(ns): min=96497.74, 1st qu.=102259.06, median=105605.01, mean=105157.62, 3rd qu.=108752.15, max=110870.39
Trial Report (5 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitLiteralDot, vm=default, parameters={}}
Results:
runtime(ns): min=3164.36, 1st qu.=3200.15, median=3261.57, mean=3319.27, 3rd qu.=3402.46, max=3727.68
Trial Report (6 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitNewline, vm=default, parameters={}}
Results:
runtime(ns): min=3129.43, 1st qu.=3138.40, median=3161.53, mean=3197.32, 3rd qu.=3253.53, max=3359.39

After:
Trial Report (1 of 6):
Experiment {instrument=runtime, benchmarkMethod=timePatternSplitComma, vm=default, parameters={}}
Results:
runtime(ns): min=3225.99, 1st qu.=3253.19, median=3267.54, mean=3320.92, 3rd qu.=3406.82, max=3436.16
Trial Report (2 of 6):
Experiment {instrument=runtime, benchmarkMethod=timePatternSplitLiteralDot, vm=default, parameters={}}
Results:
runtime(ns): min=3277.96, 1st qu.=3295.68, median=3339.86, mean=3403.39, 3rd qu.=3539.36, max=3677.60
Trial Report (3 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitComma, vm=default, parameters={}}
Results:
runtime(ns): min=3195.46, 1st qu.=3216.71, median=3247.12, mean=3354.20, 3rd qu.=3510.25, max=3686.05
Trial Report (4 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitHard, vm=default, parameters={}}
Results:
runtime(ns): min=99889.34, 1st qu.=100793.37, median=102606.42, mean=103979.16, 3rd qu.=105644.24, max=115821.46
Trial Report (5 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitLiteralDot, vm=default, parameters={}}
Results:
runtime(ns): min=2926.79, 1st qu.=3080.29, median=3156.58, mean=3144.20, 3rd qu.=3228.23, max=3259.98
Trial Report (6 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitNewline, vm=default, parameters={}}
Results:
runtime(ns): min=3134.79, 1st qu.=3174.47, median=3221.38, mean=3250.06, 3rd qu.=3315.56, max=3492.58

Bug: 28330359
Change-Id: If302b36579cb6b6e9ce6907540e8481057455820
(cherry picked from commit b14296a6415c216acb84683a9b930f7678a5201d)
tring.java
ea0af260b8f8326fb0e9c0c280b7d4f63300a6b3 26-Apr-2016 Yi Kong <yikong@google.com> Merge "Avoid performing boundary checks in StringBuilder" am: 75b9bef
am: 2410c42

* commit '2410c42f71209eeb923aa7e749da4ae254c668c6':
Avoid performing boundary checks in StringBuilder

Change-Id: Idbd6462a3780ecc98d7f066b599f6c0ca9fd85e1
cda0d81b64c3cfd70557dd3ab87826e68ee9399b 26-Apr-2016 Yi Kong <yikong@google.com> Avoid performing boundary checks in StringBuilder

We can improve performance by avoid performing boundary checks when the
indices are guaranteed to be within bound.

Before:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=1}}
Results:
runtime(ns): min=180.52, 1st qu.=182.58, median=184.18, mean=187.62, 3rd qu.=194.04, max=199.31
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=10}}
Results:
runtime(ns): min=1035.10, 1st qu.=1035.82, median=1041.44, mean=1073.24, 3rd qu.=1106.49, max=1200.55
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=100}}
Results:
runtime(ns): min=7020.29, 1st qu.=7053.57, median=7092.80, mean=7193.27, 3rd qu.=7358.86, max=7496.96

After:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=1}}
Results:
runtime(ns): min=169.88, 1st qu.=171.93, median=173.00, mean=177.27, 3rd qu.=185.40, max=191.09
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=10}}
Results:
runtime(ns): min=954.54, 1st qu.=964.95, median=975.47, mean=974.05, 3rd qu.=977.26, max=1001.69
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=100}}
Results:
runtime(ns): min=5419.06, 1st qu.=5494.05, median=5563.10, mean=5672.46, 3rd qu.=5746.85, max=6347.50

Bug: 28327317
Change-Id: Ibba98a10932f07144dcd8778594eb1bc3bae2373
(cherry picked from commit 308a03fdd632d696dc92044d287b5a66e9030013)
bstractStringBuilder.java
308a03fdd632d696dc92044d287b5a66e9030013 26-Apr-2016 Yi Kong <yikong@google.com> Avoid performing boundary checks in StringBuilder

We can improve performance by avoid performing boundary checks when the
indices are guaranteed to be within bound.

Before:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=1}}
Results:
runtime(ns): min=180.52, 1st qu.=182.58, median=184.18, mean=187.62, 3rd qu.=194.04, max=199.31
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=10}}
Results:
runtime(ns): min=1035.10, 1st qu.=1035.82, median=1041.44, mean=1073.24, 3rd qu.=1106.49, max=1200.55
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=100}}
Results:
runtime(ns): min=7020.29, 1st qu.=7053.57, median=7092.80, mean=7193.27, 3rd qu.=7358.86, max=7496.96

After:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=1}}
Results:
runtime(ns): min=169.88, 1st qu.=171.93, median=173.00, mean=177.27, 3rd qu.=185.40, max=191.09
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=10}}
Results:
runtime(ns): min=954.54, 1st qu.=964.95, median=975.47, mean=974.05, 3rd qu.=977.26, max=1001.69
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=100}}
Results:
runtime(ns): min=5419.06, 1st qu.=5494.05, median=5563.10, mean=5672.46, 3rd qu.=5746.85, max=6347.50

Bug: 28327317
Change-Id: Ibba98a10932f07144dcd8778594eb1bc3bae2373
bstractStringBuilder.java
9f224545b7942effd2b49c1358b5f49f629b4249 26-Apr-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Restore fastpath of Pattern#split" am: 8e579d7
am: 558a695

* commit '558a695474f4ca593c1738a34906119ca91d67bd':
Restore fastpath of Pattern#split

Change-Id: I4ffae1ef9befcd31ab1b8068770256ae9e6cb53a
8e579d79cea9a38291c750717950a9f22997a098 26-Apr-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Restore fastpath of Pattern#split"
bef4c2a225637c2743c018e52f855a20517e1467 26-Apr-2016 Narayan Kamath <narayan@google.com> Merge "String: Avoid char-by-char copy during replace." am: 93066ca
am: 7afa0e6

* commit '7afa0e65cd5907e5cb7a6e5e9b6b66295a2a8987':
String: Avoid char-by-char copy during replace.

Change-Id: Icb8392405c2037bcd4908b5384e9a4b6f312b5f0
e868b9aaf0531791c7a0ad6b70b517fe903b8771 26-Apr-2016 Narayan Kamath <narayan@google.com> String: Avoid char-by-char copy during replace.

This version is roughly twice as fast after the rewrite in change
a8d952d4388d5173dedc3a80381328fd9d7c5f07. Note that the M version
suffered from the same flaw.

BEFORE
------
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.24, 1st qu.=32.36, median=32.65, mean=32.80, 3rd qu.=33.32, max=33.67
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_16}}
runtime(ns): min=49.22, 1st qu.=49.54, median=49.99, mean=50.19, 3rd qu.=50.54, max=52.23
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_64}}
runtime(ns): min=227.23, 1st qu.=229.91, median=231.68, mean=231.58, 3rd qu.=232.79, max=236.38
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_256}}
runtime(ns): min=893.41, 1st qu.=897.96, median=905.14, mean=912.62, 3rd qu.=920.15, max=966.30

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.60, 1st qu.=32.69, median=32.98, mean=33.02, 3rd qu.=33.07, max=34.12
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_16}}
runtime(ns): min=48.43, 1st qu.=48.76, median=49.08, mean=49.31, 3rd qu.=49.87, max=50.72
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_64}}
runtime(ns): min=2517.18, 1st qu.=2541.84, median=2662.98, mean=2709.11, 3rd qu.=2775.76, max=3226.40
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_256}}
runtime(ns): min=10265.82, 1st qu.=11161.48, median=12261.24, mean=12058.61, 3rd qu.=12839.44, max=13236.97

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=EMPTY}}
runtime(ns): min=31.81, 1st qu.=32.31, median=32.56, mean=32.71, 3rd qu.=33.21, max=33.82
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_16}}
runtime(ns): min=894.87, 1st qu.=910.36, median=938.87, mean=981.06, 3rd qu.=1001.98, max=1300.58
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_64}}
runtime(ns): min=2670.28, 1st qu.=2680.25, median=2732.86, mean=2806.53, 3rd qu.=2768.80, max=3514.73
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_256}}
runtime(ns): min=10099.17, 1st qu.=10323.71, median=10500.71, mean=10950.80, 3rd qu.=10913.56, max=14215.69

AFTER
-----
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.16, 1st qu.=32.27, median=32.47, mean=32.46, 3rd qu.=32.65, max=32.80
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_16}}
runtime(ns): min=48.74, 1st qu.=49.04, median=49.18, mean=49.37, 3rd qu.=49.56, max=50.81
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_64}}
runtime(ns): min=228.67, 1st qu.=229.15, median=230.99, mean=231.22, 3rd qu.=232.97, max=234.63
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_256}}
runtime(ns): min=896.83, 1st qu.=898.40, median=904.05, mean=906.79, 3rd qu.=916.44, max=919.98

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.07, 1st qu.=32.11, median=32.44, mean=32.64, 3rd qu.=32.66, max=35.07
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_16}}
runtime(ns): min=48.66, 1st qu.=48.96, median=49.39, mean=49.33, 3rd qu.=49.64, max=50.01
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_64}}
runtime(ns): min=1638.41, 1st qu.=1666.38, median=1678.58, mean=1725.19, 3rd qu.=1819.44, max=1870.15
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_256}}
runtime(ns): min=4519.89, 1st qu.=4836.48, median=5659.44, mean=5495.27, 3rd qu.=6065.99, max=6277.55

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.25, 1st qu.=32.33, median=32.49, mean=32.71, 3rd qu.=32.74, max=34.48
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_16}}
runtime(ns): min=673.04, 1st qu.=712.29, median=798.60, mean=801.31, 3rd qu.=882.12, max=960.31
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_64}}
runtime(ns): min=1113.34, 1st qu.=1426.13, median=1614.06, mean=1633.30, 3rd qu.=1880.92, max=2078.03
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_256}}
runtime(ns): min=3657.71, 1st qu.=4101.37, median=4742.67, mean=4607.25, 3rd qu.=5164.10, max=5259.11

bug: 28060800

(cherry picked from commit f65410c8f0be6102b1612ce5a2e16960f8d07547)

Change-Id: I6d83194cb5597e9161b3aedaada79016411ee015
tring.java
f65410c8f0be6102b1612ce5a2e16960f8d07547 26-Apr-2016 Narayan Kamath <narayan@google.com> String: Avoid char-by-char copy during replace.

This version is roughly twice as fast after the rewrite in change
a8d952d4388d5173dedc3a80381328fd9d7c5f07. Note that the M version
suffered from the same flaw.

BEFORE
------
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.24, 1st qu.=32.36, median=32.65, mean=32.80, 3rd qu.=33.32, max=33.67
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_16}}
runtime(ns): min=49.22, 1st qu.=49.54, median=49.99, mean=50.19, 3rd qu.=50.54, max=52.23
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_64}}
runtime(ns): min=227.23, 1st qu.=229.91, median=231.68, mean=231.58, 3rd qu.=232.79, max=236.38
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_256}}
runtime(ns): min=893.41, 1st qu.=897.96, median=905.14, mean=912.62, 3rd qu.=920.15, max=966.30

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.60, 1st qu.=32.69, median=32.98, mean=33.02, 3rd qu.=33.07, max=34.12
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_16}}
runtime(ns): min=48.43, 1st qu.=48.76, median=49.08, mean=49.31, 3rd qu.=49.87, max=50.72
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_64}}
runtime(ns): min=2517.18, 1st qu.=2541.84, median=2662.98, mean=2709.11, 3rd qu.=2775.76, max=3226.40
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_256}}
runtime(ns): min=10265.82, 1st qu.=11161.48, median=12261.24, mean=12058.61, 3rd qu.=12839.44, max=13236.97

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=EMPTY}}
runtime(ns): min=31.81, 1st qu.=32.31, median=32.56, mean=32.71, 3rd qu.=33.21, max=33.82
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_16}}
runtime(ns): min=894.87, 1st qu.=910.36, median=938.87, mean=981.06, 3rd qu.=1001.98, max=1300.58
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_64}}
runtime(ns): min=2670.28, 1st qu.=2680.25, median=2732.86, mean=2806.53, 3rd qu.=2768.80, max=3514.73
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_256}}
runtime(ns): min=10099.17, 1st qu.=10323.71, median=10500.71, mean=10950.80, 3rd qu.=10913.56, max=14215.69

AFTER
-----
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.16, 1st qu.=32.27, median=32.47, mean=32.46, 3rd qu.=32.65, max=32.80
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_16}}
runtime(ns): min=48.74, 1st qu.=49.04, median=49.18, mean=49.37, 3rd qu.=49.56, max=50.81
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_64}}
runtime(ns): min=228.67, 1st qu.=229.15, median=230.99, mean=231.22, 3rd qu.=232.97, max=234.63
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_256}}
runtime(ns): min=896.83, 1st qu.=898.40, median=904.05, mean=906.79, 3rd qu.=916.44, max=919.98

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.07, 1st qu.=32.11, median=32.44, mean=32.64, 3rd qu.=32.66, max=35.07
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_16}}
runtime(ns): min=48.66, 1st qu.=48.96, median=49.39, mean=49.33, 3rd qu.=49.64, max=50.01
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_64}}
runtime(ns): min=1638.41, 1st qu.=1666.38, median=1678.58, mean=1725.19, 3rd qu.=1819.44, max=1870.15
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_256}}
runtime(ns): min=4519.89, 1st qu.=4836.48, median=5659.44, mean=5495.27, 3rd qu.=6065.99, max=6277.55

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.25, 1st qu.=32.33, median=32.49, mean=32.71, 3rd qu.=32.74, max=34.48
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_16}}
runtime(ns): min=673.04, 1st qu.=712.29, median=798.60, mean=801.31, 3rd qu.=882.12, max=960.31
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_64}}
runtime(ns): min=1113.34, 1st qu.=1426.13, median=1614.06, mean=1633.30, 3rd qu.=1880.92, max=2078.03
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_256}}
runtime(ns): min=3657.71, 1st qu.=4101.37, median=4742.67, mean=4607.25, 3rd qu.=5164.10, max=5259.11

bug: 28060800
Change-Id: I6827d5bec6054e1c6dd2efbcc1d2b2a8f734d288
tring.java
64341f689ab71fa61c2b287a9c8c51329dbec54e 26-Apr-2016 Treehugger Robot <treehugger-gerrit@google.com> Merge "Optimize StringBuilder.append for String with range" am: f7c46fb
am: bcb74df

* commit 'bcb74df6b8a15048a8b58405a6f4f44f7a0aa378':
Optimize StringBuilder.append for String with range

Change-Id: If19e7f694f696bbc0cdd02f716b896626f6c1112
4a225c9faf7984db9af0e302416a999eaba57d3b 25-Apr-2016 Yi Kong <yikong@google.com> Optimize StringBuilder.append for String with range

by using String.charsAt to avoid performing 1-by-1 copying.

Also adds a benchmark testing append for substring.

Before:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=1}}
Results:
runtime(ns): min=231.16, 1st qu.=233.24, median=244.20, mean=241.41, 3rd qu.=247.49, max=252.71
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=10}}
Results:
runtime(ns): min=1639.48, 1st qu.=1646.44, median=1658.96, mean=1669.49, 3rd qu.=1694.87, max=1726.36
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=100}}
Results:
runtime(ns): min=14867.68, 1st qu.=14914.04, median=14965.08, mean=15050.44, 3rd qu.=15189.02, max=15423.22

After:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=1}}
Results:
runtime(ns): min=139.58, 1st qu.=141.36, median=143.44, mean=146.17, 3rd qu.=148.57, max=164.15
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=10}}
Results:
runtime(ns): min=503.95, 1st qu.=507.65, median=520.78, mean=541.48, 3rd qu.=580.13, max=596.60
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=100}}
Results:
runtime(ns): min=4797.27, 1st qu.=4832.23, median=4861.71, mean=4936.96, 3rd qu.=5049.35, max=5140.17

Bug: 28327317
Change-Id: I81a4b83cf4b3d854dbb635cd49669ba0bec96009
(cherry picked from commit a8d952d4388d5173dedc3a80381328fd9d7c5f07)
bstractStringBuilder.java
a8d952d4388d5173dedc3a80381328fd9d7c5f07 25-Apr-2016 Yi Kong <yikong@google.com> Optimize StringBuilder.append for String with range

by using String.charsAt to avoid performing 1-by-1 copying.

Also adds a benchmark testing append for substring.

Before:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=1}}
Results:
runtime(ns): min=231.16, 1st qu.=233.24, median=244.20, mean=241.41, 3rd qu.=247.49, max=252.71
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=10}}
Results:
runtime(ns): min=1639.48, 1st qu.=1646.44, median=1658.96, mean=1669.49, 3rd qu.=1694.87, max=1726.36
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=100}}
Results:
runtime(ns): min=14867.68, 1st qu.=14914.04, median=14965.08, mean=15050.44, 3rd qu.=15189.02, max=15423.22

After:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=1}}
Results:
runtime(ns): min=139.58, 1st qu.=141.36, median=143.44, mean=146.17, 3rd qu.=148.57, max=164.15
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=10}}
Results:
runtime(ns): min=503.95, 1st qu.=507.65, median=520.78, mean=541.48, 3rd qu.=580.13, max=596.60
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=100}}
Results:
runtime(ns): min=4797.27, 1st qu.=4832.23, median=4861.71, mean=4936.96, 3rd qu.=5049.35, max=5140.17

Bug: 28327317
Change-Id: I81a4b83cf4b3d854dbb635cd49669ba0bec96009
bstractStringBuilder.java
b14296a6415c216acb84683a9b930f7678a5201d 25-Apr-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Restore fastpath of Pattern#split

Re-added lost fastpath for Pattern#split
called with single character split regex.

Removed almost identical fastpath from
String#split and made it use the one in
the Pattern class.

Before:
Trial Report (1 of 6):
Experiment {instrument=runtime, benchmarkMethod=timePatternSplitComma, vm=default, parameters={}}
Results:
runtime(ns): min=61332.97, 1st qu.=62783.21, median=63029.70, mean=63793.72, 3rd qu.=64398.73, max=69335.01
Trial Report (2 of 6):
Experiment {instrument=runtime, benchmarkMethod=timePatternSplitLiteralDot, vm=default, parameters={}}
Results:
runtime(ns): min=62285.54, 1st qu.=62801.82, median=63652.11, mean=64028.37, 3rd qu.=64508.20, max=68743.82
Trial Report (3 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitComma, vm=default, parameters={}}
Results:
runtime(ns): min=3145.06, 1st qu.=3224.04, median=3369.42, mean=3405.25, 3rd qu.=3601.02, max=3714.71
Trial Report (4 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitHard, vm=default, parameters={}}
Results:
runtime(ns): min=96497.74, 1st qu.=102259.06, median=105605.01, mean=105157.62, 3rd qu.=108752.15, max=110870.39
Trial Report (5 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitLiteralDot, vm=default, parameters={}}
Results:
runtime(ns): min=3164.36, 1st qu.=3200.15, median=3261.57, mean=3319.27, 3rd qu.=3402.46, max=3727.68
Trial Report (6 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitNewline, vm=default, parameters={}}
Results:
runtime(ns): min=3129.43, 1st qu.=3138.40, median=3161.53, mean=3197.32, 3rd qu.=3253.53, max=3359.39

After:
Trial Report (1 of 6):
Experiment {instrument=runtime, benchmarkMethod=timePatternSplitComma, vm=default, parameters={}}
Results:
runtime(ns): min=3225.99, 1st qu.=3253.19, median=3267.54, mean=3320.92, 3rd qu.=3406.82, max=3436.16
Trial Report (2 of 6):
Experiment {instrument=runtime, benchmarkMethod=timePatternSplitLiteralDot, vm=default, parameters={}}
Results:
runtime(ns): min=3277.96, 1st qu.=3295.68, median=3339.86, mean=3403.39, 3rd qu.=3539.36, max=3677.60
Trial Report (3 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitComma, vm=default, parameters={}}
Results:
runtime(ns): min=3195.46, 1st qu.=3216.71, median=3247.12, mean=3354.20, 3rd qu.=3510.25, max=3686.05
Trial Report (4 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitHard, vm=default, parameters={}}
Results:
runtime(ns): min=99889.34, 1st qu.=100793.37, median=102606.42, mean=103979.16, 3rd qu.=105644.24, max=115821.46
Trial Report (5 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitLiteralDot, vm=default, parameters={}}
Results:
runtime(ns): min=2926.79, 1st qu.=3080.29, median=3156.58, mean=3144.20, 3rd qu.=3228.23, max=3259.98
Trial Report (6 of 6):
Experiment {instrument=runtime, benchmarkMethod=timeStringSplitNewline, vm=default, parameters={}}
Results:
runtime(ns): min=3134.79, 1st qu.=3174.47, median=3221.38, mean=3250.06, 3rd qu.=3315.56, max=3492.58

Bug: 28330359
Change-Id: If302b36579cb6b6e9ce6907540e8481057455820
tring.java
e57172303562e84d46b649458176cda64863c060 22-Apr-2016 Dimitry Ivanov <dimitry@google.com> Explicitly initialize librarySearchPath of the SystemClassLoader

Explicitly set librarySearchPath of the system classloader to
"java.library.path". It used to be set implicitly by BaseDexPathClassLoader
implementation but it is no longer the case. Application classloaders
do not have access to java.library.path anymore.

Bug: http://b/28320913
Bug: http://b/28082914
Change-Id: I727f9fb3366365f223af8af4c4cfe8d7d38897c0
lassLoader.java
1b6f9993280f1593c05d530caa2fda312305fb19 20-Apr-2016 Yi Kong <yikong@google.com> Bring back default methods for AnnotatedElement

and modify the behavior for java.lang.Package.

Bug: 27704598
Change-Id: Ia8b76e53f2eb74d8e224efef132e920526f77c67
(cherry picked from commit be1608980825868eb1c70fab6eb86fe06bd304ce)
lass.java
ackage.java
eflect/AccessibleObject.java
eflect/AnnotatedElement.java
3beed3e42defbca8994be876d5daf32678bfbe71 20-Apr-2016 Yi Kong <yikong@google.com> Merge "Bring back default methods for AnnotatedElement" am: 4571d98
am: d678773

* commit 'd678773c650c0c3e67da292858b621741665c505':
Bring back default methods for AnnotatedElement

Change-Id: I8df1aed6afdb1d233e354224af2bf55c3ca3aef4
be1608980825868eb1c70fab6eb86fe06bd304ce 20-Apr-2016 Yi Kong <yikong@google.com> Bring back default methods for AnnotatedElement

and modify the behavior for java.lang.Package.

Bug: 27704598
Change-Id: Ia8b76e53f2eb74d8e224efef132e920526f77c67
lass.java
ackage.java
eflect/AccessibleObject.java
eflect/AnnotatedElement.java
d8e75a1126bd0539692ad8c2dbb094a1ee71cabe 08-Apr-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Update properties related javadoc in java.lang.System

Restored lost information about properties provided by the
Dalvik/Art VM, removed mentions of SecurityManager and
SecurityException.

Bug: 27441320
Change-Id: I029b4879e7d5b6a6d5152b1f50b7a8f139b41031
(cherry picked from commit 7c8ec7b75a3266beaa27bba338d07e5533c209d2)
ystem.java
9b0930f79157a314d55f00abf78a1932ec1ff4df 19-Apr-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Update properties related javadoc in java.lang.System" into nyc-dev
am: 9458fa2

* commit '9458fa21f6c4cf012a49ecfb30168e0f4cf5d7c7':
Update properties related javadoc in java.lang.System

Change-Id: I3ba81aeba58a3cc0ef5191e60d237bf4712d9633
9458fa21f6c4cf012a49ecfb30168e0f4cf5d7c7 19-Apr-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Update properties related javadoc in java.lang.System" into nyc-dev
4c8fbb13bf05af009988dfd7c48911212bdeb072 18-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "String: Improve performance of String.getBytes." into nyc-dev
4129c1d17b442cd27e6356cdba7874f7b68e6653 18-Apr-2016 Narayan Kamath <narayan@google.com> Merge "String: Improve performance of String.getBytes." am: f5ab7aa
am: b877c74

* commit 'b877c74aa13616584ecdc944b4ad1a09d500b136':
String: Improve performance of String.getBytes.

Change-Id: I20ead895ecb5b8eee934afec6528f655932a976f
6670b0a239dd9d184d0ac8a5eb4c90b4da921a25 18-Apr-2016 Narayan Kamath <narayan@google.com> String: Improve performance of String.getBytes.

Add special cases for UTF-8, ISO-8859-1 and US-ASCII.

Benchmarks show a 3x to 30x improvement across the board.

BEFORE :
--------------
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=EMPTY}}
runtime(ns): min=3675.38, 1st qu.=3708.42, median=3765.87, mean=3784.90, 3rd qu.=3889.08, max=3897.30
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_16}}
runtime(ns): min=11766.89, 1st qu.=11804.59, median=12039.35, mean=12016.62, 3rd qu.=12182.33, max=12421.93
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_64}}
runtime(ns): min=17947.28, 1st qu.=18181.18, median=18474.02, mean=18444.80, 3rd qu.=18733.02, max=18904.24
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_256}}
runtime(ns): min=54922.50, 1st qu.=55640.28, median=56511.91, mean=56687.14, 3rd qu.=58096.55, max=58555.82
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_512}}
runtime(ns): min=93966.35, 1st qu.=96132.46, median=96508.71, mean=96668.19, 3rd qu.=97831.84, max=98228.46

Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=EMPTY}}
runtime(ns): min=3804.60, 1st qu.=3832.21, median=3870.29, mean=3955.06, 3rd qu.=3998.85, max=4513.34
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_16}}
runtime(ns): min=12325.98, 1st qu.=12489.95, median=12592.85, mean=12617.96, 3rd qu.=12760.47, max=13013.03
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_64}}
runtime(ns): min=18154.88, 1st qu.=18353.76, median=18518.34, mean=18540.77, 3rd qu.=18748.34, max=18811.98
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_256}}
runtime(ns): min=41027.14, 1st qu.=41446.54, median=41877.28, mean=41905.38, 3rd qu.=42363.32, max=42933.43
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_512}}
runtime(ns): min=91035.64, 1st qu.=92336.02, median=94013.21, mean=93905.50, 3rd qu.=95455.29, max=96344.39

Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=EMPTY}}
runtime(ns): min=3781.58, 1st qu.=3795.26, median=3839.86, mean=3845.25, 3rd qu.=3866.07, max=3969.57
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_16}}
runtime(ns): min=12044.17, 1st qu.=12090.35, median=12179.87, mean=12195.30, 3rd qu.=12298.93, max=12376.89
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_64}}
runtime(ns): min=18972.04, 1st qu.=19136.75, median=19347.64, mean=19409.64, 3rd qu.=19709.62, max=19952.67
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_256}}
runtime(ns): min=47600.52, 1st qu.=48461.23, median=50291.26, mean=50161.80, 3rd qu.=51811.29, max=52993.30
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_512}}
runtime(ns): min=75600.36, 1st qu.=75968.53, median=78173.55, mean=78727.87, 3rd qu.=81136.79, max=84758.54

AFTER :
------------
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=EMPTY}}
runtime(ns): min=1104.34, 1st qu.=1131.09, median=1150.68, mean=1154.42, 3rd qu.=1168.01, max=1243.59
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_16}}
runtime(ns): min=1137.97, 1st qu.=1151.18, median=1177.42, mean=1172.80, 3rd qu.=1195.89, max=1199.96
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_64}}
runtime(ns): min=1522.89, 1st qu.=1544.52, median=1571.69, mean=1612.86, 3rd qu.=1690.00, max=1708.94
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_256}}
runtime(ns): min=2458.72, 1st qu.=2559.36, median=3023.47, mean=2962.93, 3rd qu.=3282.42, max=3426.12
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_512}}
runtime(ns): min=3785.74, 1st qu.=3874.94, median=4552.37, mean=4681.23, 3rd qu.=5574.72, max=6245.85

Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=EMPTY}}
runtime(ns): min=1137.79, 1st qu.=1149.34, median=1171.17, mean=1166.55, 3rd qu.=1180.61, max=1194.83
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_16}}
runtime(ns): min=1049.41, 1st qu.=1086.79, median=1134.18, mean=1146.32, 3rd qu.=1172.61, max=1357.04
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_64}}
runtime(ns): min=1193.05, 1st qu.=1451.91, median=1542.92, mean=1527.42, 3rd qu.=1643.31, max=1695.34
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_256}}
runtime(ns): min=2515.17, 1st qu.=2940.09, median=3143.91, mean=3114.54, 3rd qu.=3321.73, max=3444.45
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_512}}
runtime(ns): min=3881.31, 1st qu.=3970.16, median=4328.92, mean=4291.21, 3rd qu.=4582.91, max=4885.02

Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=EMPTY}}
runtime(ns): min=955.51, 1st qu.=972.96, median=979.11, mean=977.32, 3rd qu.=983.49, max=988.33
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_16}}
runtime(ns): min=1229.63, 1st qu.=1242.28, median=1251.33, mean=1254.39, 3rd qu.=1268.16, max=1272.79
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_64}}
runtime(ns): min=1768.46, 1st qu.=1816.73, median=1854.81, mean=1883.12, 3rd qu.=1975.01, max=1996.59
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_256}}
runtime(ns): min=8710.40, 1st qu.=9348.30, median=9750.93, mean=9935.78, 3rd qu.=10569.36, max=11556.14
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_512}}
runtime(ns): min=14126.17, 1st qu.=14228.94, median=15590.25, mean=15130.62, 3rd qu.=15826.37, max=15944.59

bug: 28189091

(cherry picked from commit f9d0b60eab4582ba161b1c73379902422dc73a9f)

Change-Id: Ie494d3351c843d6b0bc92c89159c00bb1052b522
tring.java
f9d0b60eab4582ba161b1c73379902422dc73a9f 18-Apr-2016 Narayan Kamath <narayan@google.com> String: Improve performance of String.getBytes.

Add special cases for UTF-8, ISO-8859-1 and US-ASCII.

Benchmarks show a 3x to 30x improvement across the board.

BEFORE :
--------------
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=EMPTY}}
runtime(ns): min=3675.38, 1st qu.=3708.42, median=3765.87, mean=3784.90, 3rd qu.=3889.08, max=3897.30
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_16}}
runtime(ns): min=11766.89, 1st qu.=11804.59, median=12039.35, mean=12016.62, 3rd qu.=12182.33, max=12421.93
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_64}}
runtime(ns): min=17947.28, 1st qu.=18181.18, median=18474.02, mean=18444.80, 3rd qu.=18733.02, max=18904.24
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_256}}
runtime(ns): min=54922.50, 1st qu.=55640.28, median=56511.91, mean=56687.14, 3rd qu.=58096.55, max=58555.82
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_512}}
runtime(ns): min=93966.35, 1st qu.=96132.46, median=96508.71, mean=96668.19, 3rd qu.=97831.84, max=98228.46

Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=EMPTY}}
runtime(ns): min=3804.60, 1st qu.=3832.21, median=3870.29, mean=3955.06, 3rd qu.=3998.85, max=4513.34
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_16}}
runtime(ns): min=12325.98, 1st qu.=12489.95, median=12592.85, mean=12617.96, 3rd qu.=12760.47, max=13013.03
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_64}}
runtime(ns): min=18154.88, 1st qu.=18353.76, median=18518.34, mean=18540.77, 3rd qu.=18748.34, max=18811.98
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_256}}
runtime(ns): min=41027.14, 1st qu.=41446.54, median=41877.28, mean=41905.38, 3rd qu.=42363.32, max=42933.43
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_512}}
runtime(ns): min=91035.64, 1st qu.=92336.02, median=94013.21, mean=93905.50, 3rd qu.=95455.29, max=96344.39

Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=EMPTY}}
runtime(ns): min=3781.58, 1st qu.=3795.26, median=3839.86, mean=3845.25, 3rd qu.=3866.07, max=3969.57
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_16}}
runtime(ns): min=12044.17, 1st qu.=12090.35, median=12179.87, mean=12195.30, 3rd qu.=12298.93, max=12376.89
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_64}}
runtime(ns): min=18972.04, 1st qu.=19136.75, median=19347.64, mean=19409.64, 3rd qu.=19709.62, max=19952.67
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_256}}
runtime(ns): min=47600.52, 1st qu.=48461.23, median=50291.26, mean=50161.80, 3rd qu.=51811.29, max=52993.30
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_512}}
runtime(ns): min=75600.36, 1st qu.=75968.53, median=78173.55, mean=78727.87, 3rd qu.=81136.79, max=84758.54

AFTER :
------------
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=EMPTY}}
runtime(ns): min=1104.34, 1st qu.=1131.09, median=1150.68, mean=1154.42, 3rd qu.=1168.01, max=1243.59
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_16}}
runtime(ns): min=1137.97, 1st qu.=1151.18, median=1177.42, mean=1172.80, 3rd qu.=1195.89, max=1199.96
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_64}}
runtime(ns): min=1522.89, 1st qu.=1544.52, median=1571.69, mean=1612.86, 3rd qu.=1690.00, max=1708.94
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_256}}
runtime(ns): min=2458.72, 1st qu.=2559.36, median=3023.47, mean=2962.93, 3rd qu.=3282.42, max=3426.12
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesAscii, vm=default, parameters={string=L_512}}
runtime(ns): min=3785.74, 1st qu.=3874.94, median=4552.37, mean=4681.23, 3rd qu.=5574.72, max=6245.85

Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=EMPTY}}
runtime(ns): min=1137.79, 1st qu.=1149.34, median=1171.17, mean=1166.55, 3rd qu.=1180.61, max=1194.83
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_16}}
runtime(ns): min=1049.41, 1st qu.=1086.79, median=1134.18, mean=1146.32, 3rd qu.=1172.61, max=1357.04
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_64}}
runtime(ns): min=1193.05, 1st qu.=1451.91, median=1542.92, mean=1527.42, 3rd qu.=1643.31, max=1695.34
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_256}}
runtime(ns): min=2515.17, 1st qu.=2940.09, median=3143.91, mean=3114.54, 3rd qu.=3321.73, max=3444.45
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesIso88591, vm=default, parameters={string=L_512}}
runtime(ns): min=3881.31, 1st qu.=3970.16, median=4328.92, mean=4291.21, 3rd qu.=4582.91, max=4885.02

Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=EMPTY}}
runtime(ns): min=955.51, 1st qu.=972.96, median=979.11, mean=977.32, 3rd qu.=983.49, max=988.33
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_16}}
runtime(ns): min=1229.63, 1st qu.=1242.28, median=1251.33, mean=1254.39, 3rd qu.=1268.16, max=1272.79
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_64}}
runtime(ns): min=1768.46, 1st qu.=1816.73, median=1854.81, mean=1883.12, 3rd qu.=1975.01, max=1996.59
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_256}}
runtime(ns): min=8710.40, 1st qu.=9348.30, median=9750.93, mean=9935.78, 3rd qu.=10569.36, max=11556.14
Experiment {instrument=runtime, benchmarkMethod=timeGetBytesUtf8, vm=default, parameters={string=L_512}}
runtime(ns): min=14126.17, 1st qu.=14228.94, median=15590.25, mean=15130.62, 3rd qu.=15826.37, max=15944.59

bug: 28189091
Change-Id: Ic477f917f07d61c9524cb8b572a50f00a2a2ae63
tring.java
71df7a35611af7e5409ef5298eba5ae760d0fb1c 18-Apr-2016 Yi Kong <yikong@google.com> Merge "Port OpenJDK8 chars() and codepoints() methods" into nyc-dev
4b9e1990190cb64d06e0d60e9aa993511b2d6e24 18-Apr-2016 Yi Kong <yikong@google.com> Merge "Port OpenJDK8 chars() and codepoints() methods" am: 08c073a
am: 766f7bd

* commit '766f7bd4bcdafe8f1d39a1869582527f1a582a5a':
Port OpenJDK8 chars() and codepoints() methods

Change-Id: I5c08c9a72e6b7499a653e26e9102dd97fc5b3ef1
6f07fc6c80a7e85fdfffbc2ac4e15b53cdd04a3e 12-Apr-2016 Yi Kong <yikong@google.com> Port OpenJDK8 chars() and codepoints() methods

Bug: 28108421
Change-Id: I1e3d5cf89532112608af52e67a9a774147032ea6
(cherry picked from commit 5458546631c65f6d375b6a1780d36d0abb5b95af)
harSequence.java
08c073a178047f843c8b5d670691ebab474535a3 18-Apr-2016 Yi Kong <yikong@google.com> Merge "Port OpenJDK8 chars() and codepoints() methods"
6d562f688e350ade3c025bfb1c4c8cca9b3e2030 13-Apr-2016 Narayan Kamath <narayan@google.com> HashMap: Remove support for alt-hashing.

This approach has been abandoned in OpenJdk8 (in favour of tree-ifying
when the number of collisions for a given key is large). Given that :

(1) Alt-hashing has always been disabled on Android (the threshold
was Integer.MAX_VALUE).
(2) The OpenJdk8 changes are fairly extensive.

We revert to what's essentially the Android M implementation of HashMap;
always using a secondary hash, always ignoring the load factor and starting
with an initial size of 4.

The Hashtable implementation has been left untouched, except for the
removal of effectively dead alt-hashing code.

bug: 28082128

(cherry picked from commit bfada6f78af63fd626be6991c696cb0393289686)

Change-Id: Id0378441104659d341ffaf0b0edf42c592586fae
avaLangAccess.java
tring.java
72ab551012ee4fe32c37e8703c55a2616f854990 15-Apr-2016 Andreas Gampe <agampe@google.com> Libcore: Hardcode os.name system property

Hardcode to Linux, but check in System initialization.

Allows to compile-time initialize:
* java.net.AbstractPlainDatagramSocketImpl

Bug: 27265238
Bug: 28174137

(cherry picked from commit 8c1c6d695dd3d03b975df3860a509724fb2e9bb5)

Change-Id: I4a40be747d1535b9d4f9d2a3c9efdd648192e0c3
ystem.java
a469a66ed90a730913107df13ce3aff7037934ef 15-Apr-2016 Andreas Gampe <agampe@google.com> Libcore: Refactor hardcoded system properties

Refactor where and how (static) hardcoded system properties are
stored. This refactor will allow the compiler to serve these
properties during compile-time initialization.

Bug: 27265238
Bug: 28174137

(cherry picked from commit 59ae74317d957baae6e1a52deadfd96b1c6698cc)

Change-Id: I1fccf7558d085542dd710aa98ecdb61ae8fcabf2
ystem.java
367bfe56b5caa35433c3dc8f59b33005b6932dbe 16-Apr-2016 Andreas Gampe <agampe@google.com> Libcore: Hardcode os.name system property
am: 8c1c6d6

* commit '8c1c6d695dd3d03b975df3860a509724fb2e9bb5':
Libcore: Hardcode os.name system property

Change-Id: I15abe7bfb7dee6e5be01fc9b8ee97d0d068d5247
92a7d0883b56760bccba70526090fe4b2d7baeed 15-Apr-2016 Andreas Gampe <agampe@google.com> Merge "Libcore: Refactor hardcoded system properties" into nyc-dev
am: 0046514

* commit '0046514fa9c5e2b421b24f5d31c0f6e13dcb06d6':
Libcore: Refactor hardcoded system properties

Change-Id: I11a0408218967c6916c571645b36e62e7ed68845
8c1c6d695dd3d03b975df3860a509724fb2e9bb5 15-Apr-2016 Andreas Gampe <agampe@google.com> Libcore: Hardcode os.name system property

Hardcode to Linux, but check in System initialization.

Allows to compile-time initialize:
* java.net.AbstractPlainDatagramSocketImpl

Bug: 27265238
Bug: 28174137
Change-Id: I4a40be747d1535b9d4f9d2a3c9efdd648192e0c3
ystem.java
59ae74317d957baae6e1a52deadfd96b1c6698cc 15-Apr-2016 Andreas Gampe <agampe@google.com> Libcore: Refactor hardcoded system properties

Refactor where and how (static) hardcoded system properties are
stored. This refactor will allow the compiler to serve these
properties during compile-time initialization.

Bug: 27265238
Bug: 28174137
Change-Id: I1fccf7558d085542dd710aa98ecdb61ae8fcabf2
ystem.java
4d17a39007a19c1e3eb2da1ec7f0c0599ac37ed7 15-Apr-2016 Narayan Kamath <narayan@google.com> Merge "HashMap: Remove support for alt-hashing." am: 75419e6
am: 818c3a3

* commit '818c3a39ac141e04e221efa7df9197319f4bc126':
HashMap: Remove support for alt-hashing.

Change-Id: Ia2d99eb77111d67346c4c5b9e93e1fcf9a0c0657
bfada6f78af63fd626be6991c696cb0393289686 13-Apr-2016 Narayan Kamath <narayan@google.com> HashMap: Remove support for alt-hashing.

This approach has been abandoned in OpenJdk8 (in favour of tree-ifying
when the number of collisions for a given key is large). Given that :

(1) Alt-hashing has always been disabled on Android (the threshold
was Integer.MAX_VALUE).
(2) The OpenJdk8 changes are fairly extensive.

We revert to what's essentially the Android M implementation of HashMap;
always using a secondary hash, always ignoring the load factor and starting
with an initial size of 4.

The Hashtable implementation has been left untouched, except for the
removal of effectively dead alt-hashing code.

bug: 28082128

Change-Id: I12d225d9dbf52e6941864093eefdfb2d60989364
avaLangAccess.java
tring.java
5458546631c65f6d375b6a1780d36d0abb5b95af 12-Apr-2016 Yi Kong <yikong@google.com> Port OpenJDK8 chars() and codepoints() methods

Bug: 28108421
Change-Id: I1e3d5cf89532112608af52e67a9a774147032ea6
harSequence.java
85287a150a9771d515319316df49ba7a17bd9c65 11-Apr-2016 Narayan Kamath <narayan@google.com> String: reimplement String.replace(char, char).

Allocates one fewer object by using String.setCharAt instead.

Android M
---------
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=EMPTY}}
runtime(ns): min=16.71, 1st qu.=17.35, median=17.59, mean=17.50, 3rd qu.=17.75, max=17.91
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=L_16}}
runtime(ns): min=52.31, 1st qu.=52.53, median=52.80, mean=53.19, 3rd qu.=53.82, max=55.04
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=L_64}}
runtime(ns): min=207.14, 1st qu.=207.76, median=208.74, mean=210.13, 3rd qu.=211.60, max=219.06
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=L_256}}
runtime(ns): min=822.15, 1st qu.=824.74, median=827.54, mean=928.81, 3rd qu.=842.17, max=1720.25

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=EMPTY}}
runtime(ns): min=17.82, 1st qu.=18.14, median=18.44, mean=18.38, 3rd qu.=18.62, max=18.78
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=L_16}}
runtime(ns): min=319.42, 1st qu.=327.69, median=346.29, mean=353.81, 3rd qu.=378.73, max=413.36
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=L_64}}
runtime(ns): min=977.09, 1st qu.=1005.63, median=1049.10, mean=1056.24, 3rd qu.=1111.03, max=1150.09
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=L_256}}
runtime(ns): min=2735.23, 1st qu.=2819.67, median=2973.69, mean=3432.62, 3rd qu.=4289.10, max=4903.52

Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=EMPTY}}
runtime(ns): min=17.32, 1st qu.=17.39, median=17.47, mean=17.54, 3rd qu.=17.76, max=17.79
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=L_16}}
runtime(ns): min=52.80, 1st qu.=53.03, median=53.59, mean=53.48, 3rd qu.=53.88, max=54.30
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=L_64}}
runtime(ns): min=1073.04, 1st qu.=1091.94, median=1136.54, mean=1193.77, 3rd qu.=1301.52, max=1463.46
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=L_256}}
runtime(ns): min=5054.41, 1st qu.=5197.68, median=5369.77, mean=5710.48, 3rd qu.=6237.26, max=6811.14

Android N
---------
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=EMPTY}}
runtime(ns): min=16.49, 1st qu.=16.50, median=16.63, mean=16.77, 3rd qu.=17.03, max=17.31
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=L_16}}
runtime(ns): min=58.85, 1st qu.=58.91, median=59.52, mean=59.46, 3rd qu.=59.67, max=60.63
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=L_64}}
runtime(ns): min=251.52, 1st qu.=252.46, median=253.68, mean=255.18, 3rd qu.=258.32, max=260.16
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=L_256}}
runtime(ns): min=1025.60, 1st qu.=1027.28, median=1030.04, mean=1031.43, 3rd qu.=1035.53, max=1041.07

Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=EMPTY}}
runtime(ns): min=17.04, 1st qu.=17.09, median=17.14, mean=17.15, 3rd qu.=17.22, max=17.32
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=L_16}}
runtime(ns): min=58.45, 1st qu.=58.83, median=59.30, mean=59.28, 3rd qu.=59.73, max=59.97
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=L_64}}
runtime(ns): min=1157.16, 1st qu.=1210.96, median=1256.07, mean=1370.44, 3rd qu.=1510.65, max=1861.24
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=L_256}}
runtime(ns): min=4679.54, 1st qu.=4743.65, median=4822.16, mean=5298.78, 3rd qu.=5303.08, max=8488.73

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=EMPTY}}
runtime(ns): min=16.50, 1st qu.=16.53, median=16.66, mean=16.76, 3rd qu.=16.92, max=17.35
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=L_16}}
runtime(ns): min=305.28, 1st qu.=327.30, median=345.80, mean=340.93, 3rd qu.=349.71, max=370.18
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=L_64}}
runtime(ns): min=1094.23, 1st qu.=1144.18, median=1169.23, mean=1217.70, 3rd qu.=1239.01, max=1589.17
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=L_256}}
runtime(ns): min=3036.83, 1st qu.=4118.11, median=5428.48, mean=4855.60, 3rd qu.=5501.08, max=5512.46

bug: 28060800

(cherry picked from commit 956df7fe3324416647e2f69b376eca819cf016e7)

Change-Id: I036dad4a6f5e83fdbf7a7a430faea3955e2e6558
tring.java
85f6c14a299a6102a4542b051451482b0e23c5f9 11-Apr-2016 Narayan Kamath <narayan@google.com> String: reimplement replace(CharSequence, CharSequence).

We're not using regexes any longer. Performance is now on par
with Android M.

This change also adds basic unit-tests, which we were lacking so far.

Android M
---------
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=EMPTY}}
runtime(ns): min=33.49, 1st qu.=33.85, median=34.10, mean=34.22, 3rd qu.=34.55, max=35.09
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_16}}
runtime(ns): min=48.58, 1st qu.=48.98, median=49.20, mean=49.51, 3rd qu.=49.83, max=51.75
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_64}}
runtime(ns): min=236.04, 1st qu.=236.82, median=238.75, mean=239.42, 3rd qu.=241.72, max=243.95
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_256}}
runtime(ns): min=921.01, 1st qu.=924.97, median=932.92, mean=934.84, 3rd qu.=940.41, max=964.41

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=EMPTY}}
runtime(ns): min=33.87, 1st qu.=34.10, median=34.26, mean=34.33, 3rd qu.=34.51, max=35.00
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_16}}
runtime(ns): min=695.64, 1st qu.=747.74, median=780.07, mean=792.92, 3rd qu.=860.18, max=860.55
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_64}}
runtime(ns): min=2719.39, 1st qu.=2758.88, median=2778.37, mean=2901.49, 3rd qu.=2858.23, max=3782.71
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_256}}
runtime(ns): min=12814.17, 1st qu.=12831.58, median=12938.24, mean=12973.31, 3rd qu.=13051.15, max=13359.51

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=EMPTY}}
runtime(ns): min=33.50, 1st qu.=33.65, median=34.00, mean=34.20, 3rd qu.=34.74, max=35.20
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_16}}
runtime(ns): min=48.51, 1st qu.=49.01, median=49.37, mean=49.41, 3rd qu.=49.86, max=50.25
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_64}}
runtime(ns): min=2536.89, 1st qu.=2687.66, median=2726.48, mean=2726.00, 3rd qu.=2774.11, max=2898.73
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_256}}
runtime(ns): min=9524.14, 1st qu.=9673.23, median=10163.81, mean=10062.96, 3rd qu.=10375.81, max=10594.24

Android N
---------
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.09, 1st qu.=32.33, median=32.53, mean=32.63, 3rd qu.=33.01, max=33.22
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_16}}
runtime(ns): min=48.92, 1st qu.=49.12, median=50.11, mean=50.52, 3rd qu.=52.44, max=52.98
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_64}}
runtime(ns): min=251.74, 1st qu.=253.67, median=255.06, mean=255.81, 3rd qu.=257.76, max=262.20
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_256}}
runtime(ns): min=915.08, 1st qu.=923.41, median=926.69, mean=926.91, 3rd qu.=932.22, max=935.61

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.09, 1st qu.=32.53, median=32.64, mean=32.73, 3rd qu.=33.03, max=33.16
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_16}}
runtime(ns): min=49.25, 1st qu.=51.35, median=51.91, mean=51.78, 3rd qu.=52.60, max=53.11
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_64}}
runtime(ns): min=2422.00, 1st qu.=2457.65, median=2536.93, mean=2534.74, 3rd qu.=2600.31, max=2662.56
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_256}}
runtime(ns): min=9604.40, 1st qu.=9690.33, median=9935.53, mean=10176.73, 3rd qu.=10554.54, max=11774.79

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=EMPTY}}
runtime(ns): min=31.97, 1st qu.=32.20, median=32.54, mean=32.58, 3rd qu.=32.90, max=33.40
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_16}}
runtime(ns): min=657.99, 1st qu.=673.30, median=707.95, mean=717.83, 3rd qu.=752.64, max=794.76
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_64}}
runtime(ns): min=2553.89, 1st qu.=2583.49, median=2675.01, mean=2698.93, 3rd qu.=2724.23, max=3105.93
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_256}}
runtime(ns): min=9669.46, 1st qu.=9958.64, median=10113.85, mean=10363.71, 3rd qu.=10331.31, max=12721.61

bug: 28060800

(cherry picked from commit ab3af282533fecfba4649e78d0a9fd8ad83bd7c7)

Change-Id: Ia175d848fd684128ab497f576fb02b3361852aaa
tring.java
4e405c69983998dd852deb9b8ff74d5f07a5bbba 12-Apr-2016 Narayan Kamath <narayan@google.com> Merge "String: reimplement String.replace(char, char)." am: 0ffed0c
am: 2aa550f

* commit '2aa550f92aa67554b1946fe422169a1b21f3abb8':
String: reimplement String.replace(char, char).

Change-Id: I4fb72492685c8928e5f235b68d705f3e560e578c
3706881cc6b397ee0451d67a9ee9b868fb9e2f16 12-Apr-2016 Narayan Kamath <narayan@google.com> Merge "String: reimplement replace(CharSequence, CharSequence)." am: dfd25e6
am: 2b17a82

* commit '2b17a82dbda655a036065e44183c5805fd7e30a1':
String: reimplement replace(CharSequence, CharSequence).

Change-Id: Ib790336e3f928b747e0087f5e4cdba11a54da425
2b4c0a3c12952929b8de21839f5db6a2c9ba1d51 11-Apr-2016 Narayan Kamath <narayan@google.com> String: reimplement String.replace(char, char).

Allocates one fewer object by using String.setCharAt instead.

Android M
---------
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=EMPTY}}
runtime(ns): min=16.71, 1st qu.=17.35, median=17.59, mean=17.50, 3rd qu.=17.75, max=17.91
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=L_16}}
runtime(ns): min=52.31, 1st qu.=52.53, median=52.80, mean=53.19, 3rd qu.=53.82, max=55.04
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=L_64}}
runtime(ns): min=207.14, 1st qu.=207.76, median=208.74, mean=210.13, 3rd qu.=211.60, max=219.06
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=L_256}}
runtime(ns): min=822.15, 1st qu.=824.74, median=827.54, mean=928.81, 3rd qu.=842.17, max=1720.25

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=EMPTY}}
runtime(ns): min=17.82, 1st qu.=18.14, median=18.44, mean=18.38, 3rd qu.=18.62, max=18.78
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=L_16}}
runtime(ns): min=319.42, 1st qu.=327.69, median=346.29, mean=353.81, 3rd qu.=378.73, max=413.36
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=L_64}}
runtime(ns): min=977.09, 1st qu.=1005.63, median=1049.10, mean=1056.24, 3rd qu.=1111.03, max=1150.09
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=L_256}}
runtime(ns): min=2735.23, 1st qu.=2819.67, median=2973.69, mean=3432.62, 3rd qu.=4289.10, max=4903.52

Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=EMPTY}}
runtime(ns): min=17.32, 1st qu.=17.39, median=17.47, mean=17.54, 3rd qu.=17.76, max=17.79
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=L_16}}
runtime(ns): min=52.80, 1st qu.=53.03, median=53.59, mean=53.48, 3rd qu.=53.88, max=54.30
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=L_64}}
runtime(ns): min=1073.04, 1st qu.=1091.94, median=1136.54, mean=1193.77, 3rd qu.=1301.52, max=1463.46
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=L_256}}
runtime(ns): min=5054.41, 1st qu.=5197.68, median=5369.77, mean=5710.48, 3rd qu.=6237.26, max=6811.14

Android N
---------
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=EMPTY}}
runtime(ns): min=16.49, 1st qu.=16.50, median=16.63, mean=16.77, 3rd qu.=17.03, max=17.31
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=L_16}}
runtime(ns): min=58.85, 1st qu.=58.91, median=59.52, mean=59.46, 3rd qu.=59.67, max=60.63
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=L_64}}
runtime(ns): min=251.52, 1st qu.=252.46, median=253.68, mean=255.18, 3rd qu.=258.32, max=260.16
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharNonExistent, vm=default, parameters={s=L_256}}
runtime(ns): min=1025.60, 1st qu.=1027.28, median=1030.04, mean=1031.43, 3rd qu.=1035.53, max=1041.07

Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=EMPTY}}
runtime(ns): min=17.04, 1st qu.=17.09, median=17.14, mean=17.15, 3rd qu.=17.22, max=17.32
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=L_16}}
runtime(ns): min=58.45, 1st qu.=58.83, median=59.30, mean=59.28, 3rd qu.=59.73, max=59.97
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=L_64}}
runtime(ns): min=1157.16, 1st qu.=1210.96, median=1256.07, mean=1370.44, 3rd qu.=1510.65, max=1861.24
Experiment {instrument=runtime, benchmarkMethod=timeReplaceCharRepeated, vm=default, parameters={s=L_256}}
runtime(ns): min=4679.54, 1st qu.=4743.65, median=4822.16, mean=5298.78, 3rd qu.=5303.08, max=8488.73

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=EMPTY}}
runtime(ns): min=16.50, 1st qu.=16.53, median=16.66, mean=16.76, 3rd qu.=16.92, max=17.35
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=L_16}}
runtime(ns): min=305.28, 1st qu.=327.30, median=345.80, mean=340.93, 3rd qu.=349.71, max=370.18
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=L_64}}
runtime(ns): min=1094.23, 1st qu.=1144.18, median=1169.23, mean=1217.70, 3rd qu.=1239.01, max=1589.17
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleChar, vm=default, parameters={s=L_256}}
runtime(ns): min=3036.83, 1st qu.=4118.11, median=5428.48, mean=4855.60, 3rd qu.=5501.08, max=5512.46

bug: 28060800
Change-Id: I285d07c679c638ae4ca1e4095490bc5ba4687636
tring.java
dfd25e66028cf78721945cddeae100da7f74cb6d 12-Apr-2016 Narayan Kamath <narayan@google.com> Merge "String: reimplement replace(CharSequence, CharSequence)."
768d2f0f7fb28176586bae7dacb1122cb8e6a615 12-Apr-2016 Narayan Kamath <narayan@google.com> Merge "Package: workaround for applications relying on toString output." am: 55eeb2c
am: 170c535

* commit '170c5357cc7a944cd3c0a21d94dc98b7609e104c':
Package: workaround for applications relying on toString output.

Change-Id: Ib197d2e539c052b06b01834ddfa1b95119d181a1
9882d847dc6bf5fcb3954d484dcd8e2027b8dc51 11-Apr-2016 Narayan Kamath <narayan@google.com> Package: workaround for applications relying on toString output.

*** THIS CHANGE WILL BE REVERTED IN A FUTURE ANDROID RELEASE ***

bug: 28057303

(cherry picked from commit 453986b3c1c5cc96082cc8a7dd87a564f2d06c8a)

Change-Id: I6f52d5efd72053f78883dbe76907caf181f11cbe
ackage.java
ab3af282533fecfba4649e78d0a9fd8ad83bd7c7 11-Apr-2016 Narayan Kamath <narayan@google.com> String: reimplement replace(CharSequence, CharSequence).

We're not using regexes any longer. Performance is now on par
with Android M.

This change also adds basic unit-tests, which we were lacking so far.

Android M
---------
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=EMPTY}}
runtime(ns): min=33.49, 1st qu.=33.85, median=34.10, mean=34.22, 3rd qu.=34.55, max=35.09
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_16}}
runtime(ns): min=48.58, 1st qu.=48.98, median=49.20, mean=49.51, 3rd qu.=49.83, max=51.75
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_64}}
runtime(ns): min=236.04, 1st qu.=236.82, median=238.75, mean=239.42, 3rd qu.=241.72, max=243.95
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_256}}
runtime(ns): min=921.01, 1st qu.=924.97, median=932.92, mean=934.84, 3rd qu.=940.41, max=964.41

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=EMPTY}}
runtime(ns): min=33.87, 1st qu.=34.10, median=34.26, mean=34.33, 3rd qu.=34.51, max=35.00
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_16}}
runtime(ns): min=695.64, 1st qu.=747.74, median=780.07, mean=792.92, 3rd qu.=860.18, max=860.55
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_64}}
runtime(ns): min=2719.39, 1st qu.=2758.88, median=2778.37, mean=2901.49, 3rd qu.=2858.23, max=3782.71
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_256}}
runtime(ns): min=12814.17, 1st qu.=12831.58, median=12938.24, mean=12973.31, 3rd qu.=13051.15, max=13359.51

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=EMPTY}}
runtime(ns): min=33.50, 1st qu.=33.65, median=34.00, mean=34.20, 3rd qu.=34.74, max=35.20
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_16}}
runtime(ns): min=48.51, 1st qu.=49.01, median=49.37, mean=49.41, 3rd qu.=49.86, max=50.25
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_64}}
runtime(ns): min=2536.89, 1st qu.=2687.66, median=2726.48, mean=2726.00, 3rd qu.=2774.11, max=2898.73
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_256}}
runtime(ns): min=9524.14, 1st qu.=9673.23, median=10163.81, mean=10062.96, 3rd qu.=10375.81, max=10594.24

Android N
---------
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.09, 1st qu.=32.33, median=32.53, mean=32.63, 3rd qu.=33.01, max=33.22
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_16}}
runtime(ns): min=48.92, 1st qu.=49.12, median=50.11, mean=50.52, 3rd qu.=52.44, max=52.98
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_64}}
runtime(ns): min=251.74, 1st qu.=253.67, median=255.06, mean=255.81, 3rd qu.=257.76, max=262.20
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceNonExistent, vm=default, parameters={s=L_256}}
runtime(ns): min=915.08, 1st qu.=923.41, median=926.69, mean=926.91, 3rd qu.=932.22, max=935.61

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=EMPTY}}
runtime(ns): min=32.09, 1st qu.=32.53, median=32.64, mean=32.73, 3rd qu.=33.03, max=33.16
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_16}}
runtime(ns): min=49.25, 1st qu.=51.35, median=51.91, mean=51.78, 3rd qu.=52.60, max=53.11
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_64}}
runtime(ns): min=2422.00, 1st qu.=2457.65, median=2536.93, mean=2534.74, 3rd qu.=2600.31, max=2662.56
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSequenceRepeated, vm=default, parameters={s=L_256}}
runtime(ns): min=9604.40, 1st qu.=9690.33, median=9935.53, mean=10176.73, 3rd qu.=10554.54, max=11774.79

Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=EMPTY}}
runtime(ns): min=31.97, 1st qu.=32.20, median=32.54, mean=32.58, 3rd qu.=32.90, max=33.40
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_16}}
runtime(ns): min=657.99, 1st qu.=673.30, median=707.95, mean=717.83, 3rd qu.=752.64, max=794.76
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_64}}
runtime(ns): min=2553.89, 1st qu.=2583.49, median=2675.01, mean=2698.93, 3rd qu.=2724.23, max=3105.93
Experiment {instrument=runtime, benchmarkMethod=timeReplaceSingleSequence, vm=default, parameters={s=L_256}}
runtime(ns): min=9669.46, 1st qu.=9958.64, median=10113.85, mean=10363.71, 3rd qu.=10331.31, max=12721.61

bug: 28060800

Change-Id: I98b73231af3df575840754fad68cbc5542f1b9ab
tring.java
453986b3c1c5cc96082cc8a7dd87a564f2d06c8a 11-Apr-2016 Narayan Kamath <narayan@google.com> Package: workaround for applications relying on toString output.

*** THIS CHANGE WILL BE REVERTED IN A FUTURE ANDROID RELEASE ***

bug: 28057303
Change-Id: I7e0cebd3a6660ae922f0e8c380147efce91c4d0e
ackage.java
27a90f7e2d6766d095a47bb9c0e6973cc87b971a 08-Apr-2016 Narayan Kamath <narayan@google.com> Merge "Integer : Improve exception message for parseInt" am: 4ebf372
am: 8bdfed5

* commit '8bdfed52ba5192f78d3843bda206b9108f98be1b':
Integer : Improve exception message for parseInt

Change-Id: Ice65e2000bec606fd96275549a6c99f80df34106
9678c4c20f775334f6ac37f5c52aabf8e247c773 08-Apr-2016 Narayan Kamath <narayan@google.com> Integer : Improve exception message for parseInt

bug: 28075709
Change-Id: Id3742decf0f5c48e0cd6d8d7a82f151234416a2d
nteger.java
7c8ec7b75a3266beaa27bba338d07e5533c209d2 08-Apr-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Update properties related javadoc in java.lang.System

Restored lost information about properties provided by the
Dalvik/Art VM, removed mentions of SecurityManager and
SecurityException.

Bug: 27441320
Change-Id: I029b4879e7d5b6a6d5152b1f50b7a8f139b41031
ystem.java
66198b2c688f36da4025f4fe821b8208c0ae3e34 08-Apr-2016 Narayan Kamath <narayan@google.com> Merge "Thread: Don't set native names twice for attached threads." into nyc-dev
f04099d77872a0742db6f67263e7edc0828a8af6 05-Apr-2016 Jeff Hao <jeffhao@google.com> Remove AnnotationAccess and its remaining uses.

Libcore side of this change. Adds a libcore test that retention
annotations are handled properly.

(cherry-picked from commit d890de26ec16f7fc32b58a00725aff1b2a79a169)

Change-Id: Ifce1df78e63cd2c43e91e4fd039e087dc82463ff
lass.java
eflect/Constructor.java
eflect/Field.java
eflect/Method.java
7ab6c306df8d745b1593cd5a0d580bcf4a3549cb 07-Apr-2016 Narayan Kamath <narayan@google.com> Merge "Thread: Don\'t set native names twice for attached threads." am: 91e1f45
am: 473b8f5

* commit '473b8f5c9d5262d725f2f365052f749bac9fbfef':
Thread: Don't set native names twice for attached threads.

Change-Id: I3c43e1982acaa5fbbd3b32a55a93ea409ab708c7
f4285d81c0363805fede57a23f44f12ee852f4b6 07-Apr-2016 Jeff Hao <jeffhao@google.com> Merge "Remove AnnotationAccess and its remaining uses." am: e0e1a1b
am: 75c0520

* commit '75c05205180ae2767065586407e5a75b82e4f5bf':
Remove AnnotationAccess and its remaining uses.

Change-Id: Iaadec3c84da5cdc03921195f0988ca665e882682
91e1f45d8d58a8028cb5deccb44c2ba46d60c2e1 07-Apr-2016 Narayan Kamath <narayan@google.com> Merge "Thread: Don't set native names twice for attached threads."
e0e1a1b18a27a78a90f82a4e72b8502e73cf78d5 07-Apr-2016 Jeff Hao <jeffhao@google.com> Merge "Remove AnnotationAccess and its remaining uses."
f1aab72f51a6e520fd1374d2e0277363726b3481 05-Apr-2016 Yi Kong <yikong@google.com> Port OpenJDK8 java.lang functional util methods

Bug: 28036657
Change-Id: I148dda52b4cb86b76ed96b2bd2f8dc01114fe2a2
(cherry picked from commit e9d9ae3d5e57a60e20c2c01e3dceb3e51de8b9f4)
oolean.java
ath.java
trictMath.java
8cfdf495c9b46f2a59618470d326b1c7232bf9ec 07-Apr-2016 Yi Kong <yikong@google.com> Merge "Port OpenJDK8 java.lang functional util methods" am: 9cf8977
am: b37ef43

* commit 'b37ef439a423759ff801bdb1b1927ee74cc87534':
Port OpenJDK8 java.lang functional util methods

Change-Id: I70858388c03e2144052819c3afcf40e7eb7ada16
2047ef0b5d272a03297dc1cd307a2dcfa42e280b 23-Mar-2016 Narayan Kamath <narayan@google.com> Thread: Don't set native names twice for attached threads.

ART already does this when a threads are attached. There's no need
to do it another time.

Also add a test that documents the behaviour wrt. to thread naming
for attached threads.

bug: 27748318

(cherry picked from commit 81888044c73382ef87285593afdf80e840288b06)

Change-Id: I8b1ac9407114d0fc399a3bc644d45e2f00ef7200
hread.java
9cf8977a2f921af023de074f1a25616eb89fc757 07-Apr-2016 Yi Kong <yikong@google.com> Merge "Port OpenJDK8 java.lang functional util methods"
b887df9924a8fc9a61e58578d25e1bd0bbaea33a 07-Apr-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Add Character#digit(int, int) fastpath" am: f33fd25
am: e8fa665

* commit 'e8fa6655d135340246e99f266cd1ff44a5007f7d':
Add Character#digit(int, int) fastpath

Change-Id: Ic8a1e2d36ad4616810680bbecedd86949c4a4d38
3fdfc1f28f4b42ed4a6fb1a1111942c8134fd9f6 07-Apr-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add Character#digit(int, int) fastpath

Added a java fastpath for common cases in the
Character#digit(int, int) method. Improves performance
of conversions from string to numeric types.

Bug: 28008616
Change-Id: I28aacba520c3f51a5cb5a59e51d4ae593daa551c
(cherry picked from commit cff29861633f2d4907b79644dace4a6790982faf)
haracter.java
cff29861633f2d4907b79644dace4a6790982faf 07-Apr-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add Character#digit(int, int) fastpath

Added a java fastpath for common cases in the
Character#digit(int, int) method. Improves performance
of conversions from string to numeric types.

Bug: 28008616
Change-Id: I28aacba520c3f51a5cb5a59e51d4ae593daa551c
haracter.java
81888044c73382ef87285593afdf80e840288b06 23-Mar-2016 Narayan Kamath <narayan@google.com> Thread: Don't set native names twice for attached threads.

ART already does this when a threads are attached. There's no need
to do it another time.

Also add a test that documents the behaviour wrt. to thread naming
for attached threads.

bug: 27748318

Change-Id: I9075f0434b0168280662a1f8a4176f23724748a7
hread.java
d890de26ec16f7fc32b58a00725aff1b2a79a169 05-Apr-2016 Jeff Hao <jeffhao@google.com> Remove AnnotationAccess and its remaining uses.

Libcore side of this change. Adds a libcore test that retention
annotations are handled properly.

Change-Id: I5aade3be674a83d71fa0c7bb33342a154f2c11ab
lass.java
eflect/Constructor.java
eflect/Field.java
eflect/Method.java
e9d9ae3d5e57a60e20c2c01e3dceb3e51de8b9f4 05-Apr-2016 Yi Kong <yikong@google.com> Port OpenJDK8 java.lang functional util methods

Bug: 28036657
Change-Id: I148dda52b4cb86b76ed96b2bd2f8dc01114fe2a2
oolean.java
ath.java
trictMath.java
8070af12e129cf6c9c82cf8dd3116aa20a2ebd6d 01-Apr-2016 Yi Kong <yikong@google.com> Port max,min,sum,hashCode,BYTES for basic data types

We implemented these methods/fields for some basic data types, we
should do the same for all the rest for consistency.

Bug: 27960078
Change-Id: I94711ee8d437e932c423579cd7146d63cbb3c615
(cherry picked from commit cf86f3319e738c76c5e97ad95bb8a4e30654a787)
oolean.java
yte.java
haracter.java
ouble.java
loat.java
nteger.java
ong.java
hort.java
1d228b5645b6df603201a3785f8dbcd6bced4e59 04-Apr-2016 Yi Kong <yikong@google.com> Merge "Port max,min,sum,hashCode,BYTES for basic data types" am: 22fda02
am: 53ad91b

* commit '53ad91b9764f58e35e4f0aec9adf163123f23edd':
Port max,min,sum,hashCode,BYTES for basic data types

Change-Id: I8c81ebfa3c2959c1b48a2b1d5f0aea695b17c2b2
cf86f3319e738c76c5e97ad95bb8a4e30654a787 01-Apr-2016 Yi Kong <yikong@google.com> Port max,min,sum,hashCode,BYTES for basic data types

We implemented these methods/fields for some basic data types, we
should do the same for all the rest for consistency.

Bug: 27960078
Change-Id: I94711ee8d437e932c423579cd7146d63cbb3c615
oolean.java
yte.java
haracter.java
ouble.java
loat.java
nteger.java
ong.java
hort.java
e47c4e31b2d74e78c83a05326a5a93685e438503 31-Mar-2016 Yi Kong <yikong@google.com> resolve merge conflicts of 261fd35 to nyc-dev-plus-aosp

Change-Id: I60b74f8f182bdc6bb348a426bbed21db08a0e528
52b7f6521232e255f4864305b5ded5f0ed93acfa 31-Mar-2016 Yi Kong <yikong@google.com> Clean up legacy security code

The following legacy security classes are stubbed and their Javadoc removed.

java.io.FilePermission
java.io.SerializablePermission
java.lang.RuntimePermission
java.lang.reflect.ReflectPermission
java.net.NetPermission
java.net.SocketPermission
java.security.AllPermission
java.security.AuthProvider
java.security.BasicPermission
java.security.CodeSource
java.security.DomainCombiner
java.security.Permission
java.security.PermissionCollection
java.security.Permissions
java.security.PrivilegedAction
java.security.PrivilegedActionException
java.security.PrivilegedExceptionAction
java.security.ProtectionDomain
java.security.SecurityPermission
java.security.UnresolvedPermission
java.security.acl.Permission
java.sql.SQLPermission
java.util.PropertyPermission
java.util.logging.LoggingPermission
javax.crypto.CryptoAllPermission
javax.crypto.CryptoPermission
javax.crypto.CryptoPermissions
javax.crypto.CryptoPolicyParser
javax.crypto.JceSecurityManager
javax.net.ssl.SSLPermission
javax.security.auth.AuthPermission
javax.security.auth.PrivateCredentialPermission
javax.security.auth.SubjectDomainCombiner

Bug: 27762555
Change-Id: I2a01da447380bb5bdca4909267590239ada0858a
(cherry picked from commit 9b7cfceb7b825835730f7977d4935dec3ff1a3be)
untimePermission.java
eflect/ReflectPermission.java
9b7cfceb7b825835730f7977d4935dec3ff1a3be 31-Mar-2016 Yi Kong <yikong@google.com> Clean up legacy security code

The following legacy security classes are stubbed and their Javadoc removed.

java.io.FilePermission
java.io.SerializablePermission
java.lang.RuntimePermission
java.lang.reflect.ReflectPermission
java.net.NetPermission
java.net.SocketPermission
java.security.AllPermission
java.security.AuthProvider
java.security.BasicPermission
java.security.CodeSource
java.security.DomainCombiner
java.security.Permission
java.security.PermissionCollection
java.security.Permissions
java.security.PrivilegedAction
java.security.PrivilegedActionException
java.security.PrivilegedExceptionAction
java.security.ProtectionDomain
java.security.SecurityPermission
java.security.UnresolvedPermission
java.security.acl.Permission
java.sql.SQLPermission
java.util.PropertyPermission
java.util.logging.LoggingPermission
javax.crypto.CryptoAllPermission
javax.crypto.CryptoPermission
javax.crypto.CryptoPermissions
javax.crypto.CryptoPolicyParser
javax.crypto.JceSecurityManager
javax.net.ssl.SSLPermission
javax.security.auth.AuthPermission
javax.security.auth.PrivateCredentialPermission
javax.security.auth.SubjectDomainCombiner

Bug: 27762555
Change-Id: I2a01da447380bb5bdca4909267590239ada0858a
untimePermission.java
eflect/ReflectPermission.java
de83ee5f76eacda65d1436503c3e48f6aa67a2d7 24-Mar-2016 Narayan Kamath <narayan@google.com> Hide ProcessBuilder.Redirect and associated APIs.

bug: 27464570
Change-Id: I31d8dbe332b55ca380263c4b48eae18400122da5
rocess.java
rocessBuilder.java
8e06d7bdd50edba2b2af3ede7515c5145c2d49e2 18-Mar-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add openJdk8 static (Float|Double)#isFinite methods.

Bug: 27692239
Change-Id: I612c9dd4369eb0cd479db6788322c8b289b14387
(cherry picked from commit 5bad107355d440409eea313b60c40bc32c12e295)
ouble.java
loat.java
5bad107355d440409eea313b60c40bc32c12e295 18-Mar-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add openJdk8 static (Float|Double)#isFinite methods.

Bug: 27692239
Change-Id: I612c9dd4369eb0cd479db6788322c8b289b14387
ouble.java
loat.java
e8b323c7cb7d55be9a4df579231e44f04f53d766 11-Mar-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> JSR-166 update without java 1.9 method/classes

Second attempt, in frist one I've submitted some code from openJdk 1.9
that shouldn't be here, orignial change can be found at
5328e07d282bef36ac8b757bbee16a761415b2c4

Adapted from sources taken from CVS using:
cvs -d ':pserver:anonymous@gee.cs.oswego.edu/home/jsr166/jsr166' checkout -D "03/03/2016 10:00:00 GMT" jsr166

This time with hidden/removed "@since 9" methods and classes

Bug: 27426599
Change-Id: Ibd8d26e13cba091bfd983c73d005e4f8d8f5946d
(cherry picked from commit b8b75116273ecfdb8ffdd1869b1c0dd04570a95e)
hread.java
b8b75116273ecfdb8ffdd1869b1c0dd04570a95e 11-Mar-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> JSR-166 update without java 1.9 method/classes

Second attempt, in frist one I've submitted some code from openJdk 1.9
that shouldn't be here, orignial change can be found at
5328e07d282bef36ac8b757bbee16a761415b2c4

Adapted from sources taken from CVS using:
cvs -d ':pserver:anonymous@gee.cs.oswego.edu/home/jsr166/jsr166' checkout -D "03/03/2016 10:00:00 GMT" jsr166

This time with hidden/removed "@since 9" methods and classes

Bug: 27426599
Change-Id: Ibd8d26e13cba091bfd983c73d005e4f8d8f5946d
hread.java
ed4f365789d43b1961657195df223a19bf4ef20f 15-Mar-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Revert "JSR-166 update"

I missed comments on framework/base change regarding "@since 9" parts
This reverts commit 5328e07d282bef36ac8b757bbee16a761415b2c4.

Change-Id: Iff71b8a17e79a0a5c1ecadc05bccadceabb83393
hread.java
5328e07d282bef36ac8b757bbee16a761415b2c4 11-Mar-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> JSR-166 update

Adapted from sources taken from CVS using:
cvs -d ':pserver:anonymous@gee.cs.oswego.edu/home/jsr166/jsr166' checkout -D "03/03/2016 10:00:00 GMT" jsr166

Bug: 27426599
Change-Id: Ic9ba278929f8747d58b69e7d67ec325064588bff
hread.java
aaae63d8701f84d69758e863cb2deaee01641121 08-Mar-2016 Sergio Giro <sgiro@google.com> java.lang.System: throw SecurityException when setting a SecurityManager

Unless the SecurityManager is null

(cherry picked from commit a5d8390575f2863f413c77634d2156fdb09e69a3)

Bug: 27529132
Change-Id: I80f0a71b93d04b847fc03164b99288fd9938f094
ystem.java
66193e732dc92a66ed2bd67639d2fcb7b6a9d98e 10-Mar-2016 Narayan Kamath <narayan@google.com> Merge "Add java.lang.Iterable.spliterator() and supporting classes."
8b056f0b15bc1e45da8d4c504353b05e681ac013 04-Mar-2016 Narayan Kamath <narayan@google.com> Add java.lang.Iterable.spliterator() and supporting classes.

The only android specific changes here are to HashMap - their
spliterators add Spliterator.ORDERED if the HashMap is an instance
of a LinkedHashMap.

There's some degree of duplication between the test code used to
exercise primitive arrays (Arrays / Spliterators provide similar
APIs). These differences are quite hard to consolidate, since the
Arrays version declares that their Spliterators are ORDERED but
the Spliterator version doesn't. The latter also allows us to declare
additional Spliterator characteristics.

bug: 27426688
Change-Id: I191a9319d4af7e22834f2d91f73634a227b36bc2
terable.java
4c89023ef86f29fa9add7db2574f2169fe842577 04-Mar-2016 Narayan Kamath <narayan@google.com> Add java.lang.Iterable.spliterator() and supporting classes.

The only android specific changes here are to HashMap - their
spliterators add Spliterator.ORDERED if the HashMap is an instance
of a LinkedHashMap.

There's some degree of duplication between the test code used to
exercise primitive arrays (Arrays / Spliterators provide similar
APIs). These differences are quite hard to consolidate, since the
Arrays version declares that their Spliterators are ORDERED but
the Spliterator version doesn't. The latter also allows us to declare
additional Spliterator characteristics.

(cherry-picked from commit ed21aa3a8dcd34eca6f0317eeb683e7afdc825b9)

bug: 27426688
Change-Id: I191a9319d4af7e22834f2d91f73634a227b36bc2
terable.java
a5d8390575f2863f413c77634d2156fdb09e69a3 08-Mar-2016 Sergio Giro <sgiro@google.com> java.lang.System: throw SecurityException when setting a SecurityManager

Unless the SecurityManager is null

Change-Id: Idf49fd273142ebac5550dedce77848f3d2d955eb
ystem.java
78a7d18dcc4719bce902e25f369405fd07725175 02-Mar-2016 Alex Light <allight@google.com> Make getMethod search the iftable backwards.

This means that if an interface method is overridden by subinterfaces
we will get the method with the subinterface as the declaring class.

(cherry picked from commit d559f4f94cb0b9b4c80a3cc2040c0bd32276c225)

Bug: 27451515
Change-Id: I03a9d83129c4c30b0bf91a91c707205330159e9c
lass.java
a29a23dec7cea23b2073352711ede2592cf7aec0 03-Mar-2016 Alex Light <allight@google.com> Merge "Make getMethod search the iftable backwards."
19c3551836aedca51e7e016007efca18d030763b 24-Feb-2016 Dimitry Ivanov <dimitry@google.com> Reduce number of namespace-related fields

This change is related to a change on how to
linker-namespaces initialized. They used to be
initialized on first load of a jni library,
With the related changes to frameworks/base
and art, they are now initialized at the time
of creating the ClassLoader.

This removes necessity of storing namespace
specific fields in DexPathList and in new
constructors for BaseDexClassLoaders.

Bug: http://b/27189432
Bug: http://b/22548808
Change-Id: Icf61e621862609de75e3a3f4caf03a4ea96e6398
(cherry picked from commit 68858c91eb15f183269cbaf2e4116c559aab2622)
untime.java
d559f4f94cb0b9b4c80a3cc2040c0bd32276c225 02-Mar-2016 Alex Light <allight@google.com> Make getMethod search the iftable backwards.

This means that if an interface method is overridden by subinterfaces
we will get the method with the subinterface as the declaring class.

Bug: 27451515
Change-Id: I03a9d83129c4c30b0bf91a91c707205330159e9c
lass.java
60d6a93a65a7ba45a58867a4afd3242682b17c21 02-Mar-2016 Narayan Kamath <narayan@google.com> Double,Integer,Long: Add static hashCode / sum / max / min methods.

Also add basic tests. These methods delegate to Math.max / Math.min
respectively, so further tests have been added to the Math tests in
case these implementations ever diverge.

bug: 27423298

(cherry picked from commit 2729b8c4d261706b2ed7b17930d91c2b25e9a315)

Change-Id: I75b46e7582ae22ee759bf1f4a68a5f1b2f410864
ouble.java
nteger.java
ong.java
2729b8c4d261706b2ed7b17930d91c2b25e9a315 02-Mar-2016 Narayan Kamath <narayan@google.com> Double,Integer,Long: Add static hashCode / sum / max / min methods.

Also add basic tests. These methods delegate to Math.max / Math.min
respectively, so further tests have been added to the Math tests in
case these implementations ever diverge.

bug: 27423298
Change-Id: I9c6faadea9a9d6a52d934583f86d67e1745e5dce
ouble.java
nteger.java
ong.java
60796efea3a74e02aea384b8eb56103ea21b880b 29-Feb-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add Iterable#forEach & Map#forEach from openJdk8

Based on openJdk 8u40 source & iam@ stream change in
ag/872080

Bug: 27404545
Change-Id: Ic67e20b35c24e7acce513e010b727510af09a83e
(cherry picked from commit c3a9db83a352d92d5a6e0098f22bde07e34a1d3b)
terable.java
c3a9db83a352d92d5a6e0098f22bde07e34a1d3b 29-Feb-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add Iterable#forEach & Map#forEach from openJdk8

Based on openJdk 8u40 source & iam@ stream change in
ag/872080

Bug: 27404545
Change-Id: Ic67e20b35c24e7acce513e010b727510af09a83e
terable.java
68858c91eb15f183269cbaf2e4116c559aab2622 24-Feb-2016 Dimitry Ivanov <dimitry@google.com> Reduce number of namespace-related fields

This change is related to a change on how to
linker-namespaces initialized. They used to be
initialized on first load of a jni library,
With the related changes to frameworks/base
and art, they are now initialized at the time
of creating the ClassLoader.

This removes necessity of storing namespace
specific fields in DexPathList and in new
constructors for BaseDexClassLoaders.

Bug: http://b/27189432
Bug: http://b/22548808
Change-Id: Icf61e621862609de75e3a3f4caf03a4ea96e6398
untime.java
17f6f6169e701afdf392a3749c6956042a5b3b72 17-Feb-2016 Hans Boehm <hboehm@google.com> Fix Math.round bug for large integral arguments

Cherrypick JDK 8 changeset 8052:917fffe971c8. This uses integer
manipulations to compute the result for all arguments for which
we can't just cast the argument.

Added required imports to make the JDK 8 patch compile.

HG changeset patch
User bpb
Date 1378944455 25200
Node ID 917fffe971c87826a8cbec16337d35fd6f73f0d6
Parent be6f5f027bc2ecc137b3d4074c94881e01d2d9ce
8010430: Math.round has surprising behavior for odd values of ulp 1
Summary: If the effective floating point exponent is zero return the
significand including the implicit 1-bit.
Reviewed-by: bpb, darcy, gls
Contributed-by: Dmitry Nadezhin <dmitry.nadezhin@oracle.com>

Bug: 27166445

(cherry picked from commit f043756ef5140e633d6b7afc9ae1f0058c9fa70f)

Change-Id: Ic5e93121113149163cea3993f187b52335d613fa
ath.java
trictMath.java
f043756ef5140e633d6b7afc9ae1f0058c9fa70f 17-Feb-2016 Hans Boehm <hboehm@google.com> Fix Math.round bug for large integral arguments

Cherrypick JDK 8 changeset 8052:917fffe971c8. This uses integer
manipulations to compute the result for all arguments for which
we can't just cast the argument.

Added required imports to make the JDK 8 patch compile.

HG changeset patch
User bpb
Date 1378944455 25200
Node ID 917fffe971c87826a8cbec16337d35fd6f73f0d6
Parent be6f5f027bc2ecc137b3d4074c94881e01d2d9ce
8010430: Math.round has surprising behavior for odd values of ulp 1
Summary: If the effective floating point exponent is zero return the
significand including the implicit 1-bit.
Reviewed-by: bpb, darcy, gls
Contributed-by: Dmitry Nadezhin <dmitry.nadezhin@oracle.com>

Bug: 27166445
Change-Id: Ia60a94a20970096dfc4b23143353cfc0828d9860
ath.java
trictMath.java
9fbdd1b27de1a3d10054681082fde07845fb8529 12-Feb-2016 Narayan Kamath <narayan@google.com> Remove some stray API.

- getMinusSignString and getPercentString shouldn't be public.
- newArray should be a private helper method.

bug: 26689841
Change-Id: I09f772df07727da53e63a110595f310730a5e7c8
eflect/Array.java
11e7452ff58e3b6a639a659ec93c960ee1a6493e 10-Feb-2016 Mathieu Chartier <mathieuc@google.com> Avoid running Runtime.gc() until we need to run finalization.

This prevents excessive explicit GC which are called from apps to get
good GC behavior on Dalvik. Calling System.gc() does not help on ART
since GC for alloc is much rarer.

If running finalizers is requested following a System.gc we remember
that a GC was requested and perform it ahead of finalization.

based on commit 930e26f0f59c0ce1020524269c82492f3c4ea722

Bug: 12004934
Bug: 26807871

(cherry picked from commit cd3ce752c4c5782a3a33fefb6687430bca1b6563)

Change-Id: I84fa94778f7be3197938b9e4fd1b10ebc01d84bf
ystem.java
cd3ce752c4c5782a3a33fefb6687430bca1b6563 10-Feb-2016 Mathieu Chartier <mathieuc@google.com> Avoid running Runtime.gc() until we need to run finalization.

This prevents excessive explicit GC which are called from apps to get
good GC behavior on Dalvik. Calling System.gc() does not help on ART
since GC for alloc is much rarer.

If running finalizers is requested following a System.gc we remember
that a GC was requested and perform it ahead of finalization.

based on commit 930e26f0f59c0ce1020524269c82492f3c4ea722

Bug: 12004934
Bug: 26807871
Change-Id: I1a1455b0f3f229d2c507f8330fe6d31d6940ea21
ystem.java
59e3fd8d18da5f3f515830db02b3cd61177743cf 02-Feb-2016 Igor Murashkin <iam@google.com> annotation: Un-@hide new 1.8 APIs

(cherry-picked from commit 2b0da7c5dab93252d459395e0375d41a044ed86c)
Change-Id: Iad6e8939831c735bc476c327686bf4a642228a1c
lass.java
ackage.java
eflect/AccessibleObject.java
eflect/AnnotatedElement.java
d7aa3f12b6a63d4e3e99cbdf446878e5088e322f 04-Feb-2016 Igor Murashkin <iam@google.com> Merge "annotation: Un-@hide new 1.8 APIs"
2b0da7c5dab93252d459395e0375d41a044ed86c 02-Feb-2016 Igor Murashkin <iam@google.com> annotation: Un-@hide new 1.8 APIs

Change-Id: Iad6e8939831c735bc476c327686bf4a642228a1c
lass.java
ackage.java
eflect/AccessibleObject.java
eflect/AnnotatedElement.java
900667d1f3a8939fa8cbc94c50a7ac1227d47365 03-Feb-2016 Igor Murashkin <iam@google.com> Merge "reflect: Clean up Proxy to remove dead code"
be81f0fbc9a152a0da4e89d87700f94fc6040ef7 03-Feb-2016 Igor Murashkin <iam@google.com> Merge changes from topic 'reflection_1_8'

* changes:
Revert "Revert "reflection: Add new AnnotatedElement 1.8 methods.""
reflect: Remove illegal invoke-direct to Proxy private method
40dffe73d7414753e592e186df8515911da913c3 02-Feb-2016 Richard Uhler <ruhler@google.com> Merge "Improve performance of Reference processing."
ecbb26dd74da334e2f2295e211fa9da151c74167 02-Feb-2016 Igor Murashkin <iam@google.com> reflect: Clean up Proxy to remove dead code

Requires a corresponding art change to run.

Bug: 26846861
Change-Id: I44ee74d8a4cbd7889d655c15c76dad8121c3297e
eflect/Proxy.java
9599ec54b164da29db4e3386a9839aca73caf8ee 01-Feb-2016 Igor Murashkin <iam@google.com> Revert "Revert "reflection: Add new AnnotatedElement 1.8 methods.""

This reverts commit ac6e7a426c30abe6de4361c95755ff759845265f.

Runtest failure has been fixed in I28c3707e38c1f69ea9d3660f68136f688122ac4e

Change-Id: I1749dc89b790d44b5e40bc8b20aa62885bda792b
lass.java
ackage.java
eflect/AccessibleObject.java
eflect/AnnotatedElement.java
83d74841ba5af984e402928bb9cdc0a44b5f9315 01-Feb-2016 Igor Murashkin <iam@google.com> reflect: Remove illegal invoke-direct to Proxy private method

With the current proxy implementation, the Proxy constructor
is copied into each new Proxy Class instance.

Calling #doNewInstanceCheck from non-Proxy classes is therefore
illegal dex opcode.

This was sliding through before since the constructor was already marked
verified and copying it did not trigger re-verification.

As the actual method call is a no-op (there is no SecurityManager in
Android, so it just returns) remove this call.

(Note, this only needs to be paired with the art CL of the same
change-id to fix a runtest. It will build without the other CL).

Bug: 26846861
Bug: 22414682
Change-Id: I28c3707e38c1f69ea9d3660f68136f688122ac4e
eflect/Proxy.java
48a7c777d62547233058ff4d11cef8096bc1c087 19-Jan-2016 Neil Fuller <nfuller@google.com> Unhide @Repeatable

Bug: 26623636
(cherry-picked from commit 87cc587087c239a88b73d8e7501629cfebfe62f9)

Change-Id: I7c74504805ab64b7583bb37e250af9a4a0db3fbf
nnotation/Repeatable.java
bdddfc673c946b6e2e7f6934421676cad3637b41 19-Jan-2016 Neil Fuller <nfuller@google.com> Unhide FunctionalInterface

Bug: 26623636
(cherry-picked from commit 8e975a0ccdc6b290cd4eb8998627be493e877a67)

Change-Id: I09b1191c7567fc1ca8e236c6b82bd23ff7f8a112
unctionalInterface.java
1ca3074cfffb8bf01eaee4d6ca2fe5747805bbd9 23-Jan-2016 Neil Fuller <nfuller@google.com> Unhide Method.isDefault

Bug: 26623636
(cherry-picked from commit 3cafce62222dfc281c17682605cf5cb5cf863c3d)

Change-Id: I135999c652d5f4d22663d27ae20b668e7d09a91c
eflect/Method.java
4d4ff5e7b929a404fc9f16232c639b7a11969489 15-Jan-2016 Igor Murashkin <iam@google.com> reflection: Add new AnnotatedElement 1.8 methods.

Methods are currently @hide 1.8 and default is commented out.
Needs corresponding runtime change to run.

Change-Id: I8420a4d208bb60874a9cf996766313c7d5058c45
lass.java
ackage.java
eflect/AccessibleObject.java
eflect/AnnotatedElement.java
15328602ac817be9cf1fc476988394416e797876 06-Jan-2016 Richard Uhler <ruhler@google.com> Improve performance of Reference processing.

By using synchronization on the ReferenceQueue instead of volatile
modifiers, and adding internal support for ReferenceQueue batch
enqueue and remove.

ReferenceBenchmark improvements on hammerhead:
Alloc 250 => 150
AllocAndEnqueue 1060 => 612
AllocEnqueueAndPoll 1300 => 725
AllocEnqueueAndRemove 1350 => 812
AllocImplicitEnqueueAndRemove 7000 => 1758
Finalization 10000 => 6095

Bug: 24404957
Change-Id: I6c3e83f7c34f5c22b001e513b50c932a0d54fd43
ef/Reference.java
ef/ReferenceQueue.java
00b71736c88addbe7cb5fa00b194695dde40a3a6 22-Jan-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix incorrect @hide usage

@hide annotation is only effective in Javadoc.

Bug: 26689841
Change-Id: Ice76dc2e291f475b3cac06d4240953cb7440ab40
(cherry picked from commit 1550ed9ba326ce08cef8ebf01699a49fabdc64f3)
yte.java
12dd52a2da50af82ed4c7bbb1b7ae6a5cfcba5d6 12-Jan-2016 Igor Murashkin <iam@google.com> reflect: Add isDefault method

Add a new 1.8 public method. Marked @hide for the moment.

Bug: 24618811
Change-Id: If5a796fe5609ea13ec9b1565619a38b932462989
eflect/Method.java
eflect/Modifier.java
af991c428d8d59496d7d621e5543b1914e1e363f 13-Jan-2016 Narayan Kamath <narayan@google.com> Fix file descriptor leak in UNIXProcess#ProcessInputStream.

This was trigerred by a recent change to file des reference counting.

bug: 26515843
Change-Id: Iad512623454e5035eacffbd7cfd10ae4f1e5b5cc
NIXProcess.java
0513f9df1e34c10f9e1527d6d99123e726d9de17 12-Jan-2016 Narayan Kamath <narayan@google.com> String : Fix integer overflow in getChars.

bug: 26444984
Change-Id: I3f03d839591aebdd3c51aa805bbd891833e97861
tring.java
adb870b78e1522f61d40b4fbb05dd8634c5bf2c9 18-Dec-2015 Kenny Root <kroot@google.com> Update supporting classes for OCSP update

Change-Id: I92c363ecd1230376ef3e4ec7e0669a6aa5aa8b76
nternalError.java
irtualMachineError.java
ebc5d8209956567520b7f9269e86d2fd7556111c 07-Jan-2016 Nicolas Geoffray <ngeoffray@google.com> Remove unused method.

Change-Id: I67a54e7910ff3c38237c7955051bab3cc44c50df
lass.java
f57b88903049a46a62ca987f0b8609ecf32b2812 15-Dec-2015 Neil Fuller <nfuller@google.com> Selective inclusion of 1.8 annotations

Adding annotations that are related to 1.8 language features.
The ElementType class docs have not been updated they refer to
hidden constants.

Change-Id: Icb091871e9be55588638368cc750c03de884d92a
unctionalInterface.java
nnotation/ElementType.java
nnotation/Repeatable.java
cbcc3cae4177272ae02a87d50c73ba5391f61fc0 23-Dec-2015 Shubham Ajmera <shubhamajmera@google.com> Fix java.lang.Character

Fixed Character_UnicodeBlockTest#test_forNameLjava_lang_StringExceptions
test. A new constructor has been introduced to avoid mapping of deprecated
UnicodeBlocks.

Bug: 26140229
Change-Id: I502b48c1b4b4a0a7f05434b4bbe5bca6e14acdbf
haracter.java
9777098f315536b148c5b921e0f3b41a6342b1dd 22-Dec-2015 Narayan Kamath <narayan@google.com> Merge "Remove unused non-java files under ojluni/src/main/java."
2c87ad3a45cecf9e344487cad1abfdebe79f2c7c 21-Dec-2015 Narayan Kamath <narayan@google.com> Update file headers.

Change-Id: I8149f41585768a1a4b72ab7bb4a1452376c05cc2
bstractStringBuilder.java
rrayIndexOutOfBoundsException.java
oolean.java
yte.java
haracter.java
lass.java
lassLoader.java
ompiler.java
ouble.java
num.java
loat.java
nteger.java
ong.java
ath.java
oClassDefFoundError.java
bject.java
ackage.java
untime.java
ecurityManager.java
hort.java
hutdown.java
tring.java
tringBuilder.java
tringCoding.java
tringIndexOutOfBoundsException.java
ystem.java
hread.java
hreadGroup.java
hrowable.java
NIXProcess.java
oid.java
ef/Reference.java
ef/ReferenceQueue.java
eflect/AccessibleObject.java
eflect/Array.java
eflect/Constructor.java
eflect/Field.java
eflect/Method.java
eflect/Modifier.java
eflect/Proxy.java
451b7279eddf4ffb0688e1c558d45b9f0d48d12d 21-Dec-2015 Narayan Kamath <narayan@google.com> Remove unused non-java files under ojluni/src/main/java.

The files that are meant to be included as resources are already
present in ojluni/src/resources/.

Change-Id: Icf5d9971daaec3dc2d02e92615ba3a7e92c59201
NIXProcess.java.bsd
NIXProcess.java.linux
NIXProcess.java.solaris
70d6d2797be845cc4f4fa5d52a1ca9875c23558e 21-Dec-2015 Narayan Kamath <narayan@google.com> Update file headers.

Change-Id: I637d2fca1f0a43f8634b368da7e1c800460cdfd6
avaLangAccess.java
cc42201b8d47d4c03a69dcf6df4e58c1a11d32e5 21-Dec-2015 Paul Duffin <paulduffin@google.com> Deleting unused or broken files

The tests removed from luni/src/test are testing files that no
longer exist. It's possible that they provided some coverage of
the code which is not provided for the OpenJDK code.

The classes removed from ojluni/src/main are the ones not
explicitly mentioned in the openjdk_java_files.mk.

Change-Id: Id52d65d9b1f06e1a6e7afbd93336c7d12e0c3083
ssertionStatusDirectives.java
ootstrapMethodError.java
lassLoaderHelper.java
lassValue.java
erminator.java
nnotation/package-info.java
nvoke/BoundMethodHandle.java
nvoke/CallSite.java
nvoke/ConstantCallSite.java
nvoke/DirectMethodHandle.java
nvoke/DontInline.java
nvoke/ForceInline.java
nvoke/InvokeDynamic.java
nvoke/InvokeGeneric.java
nvoke/InvokerBytecodeGenerator.java
nvoke/Invokers.java
nvoke/LambdaForm.java
nvoke/MemberName.java
nvoke/MethodHandle.java
nvoke/MethodHandleImpl.java
nvoke/MethodHandleInfo.java
nvoke/MethodHandleNatives.java
nvoke/MethodHandleProxies.java
nvoke/MethodHandleStatics.java
nvoke/MethodHandles.java
nvoke/MethodType.java
nvoke/MethodTypeForm.java
nvoke/MutableCallSite.java
nvoke/SimpleMethodHandle.java
nvoke/SwitchPoint.java
nvoke/VolatileCallSite.java
nvoke/WrongMethodTypeException.java
nvoke/package-info.java
anagement/BufferPoolMXBean.java
anagement/ClassLoadingMXBean.java
anagement/CompilationMXBean.java
anagement/GarbageCollectorMXBean.java
anagement/LockInfo.java
anagement/ManagementFactory.java
anagement/ManagementPermission.java
anagement/MemoryMXBean.java
anagement/MemoryManagerMXBean.java
anagement/MemoryNotificationInfo.java
anagement/MemoryPoolMXBean.java
anagement/MemoryType.java
anagement/MemoryUsage.java
anagement/MonitorInfo.java
anagement/OperatingSystemMXBean.java
anagement/PlatformComponent.java
anagement/PlatformLoggingMXBean.java
anagement/PlatformManagedObject.java
anagement/RuntimeMXBean.java
anagement/ThreadInfo.java
anagement/ThreadMXBean.java
ackage-info.java
ef/FinalReference.java
ef/Finalizer.java
eflect/ReflectAccess.java
eflect/package-info.java
e0ab2e91d677b938f8bea8a2e36fd591389b5e57 21-Dec-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Add private Runtime#load(String,ClassLoader)"
8d7eda8d1eeb521751fe58c2a6c9b94236dcbf1f 21-Dec-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add private Runtime#load(String,ClassLoader)

Looks like some apps (Ingress in particular)
depend through reflection on a private method
java.lang.Runtime#load(String,ClassLoader). I've
re-added the method with appropriate log message
warning about its deprecation.

+ Same warning for loadLibrary(String, Classloader)

Bug: 25859957
Change-Id: I53c59ac9953f931b38939b7a005c90f67a30569f
untime.java
8f0fd78b5a447780a49a8c9153dbe2d8cdc986d7 21-Dec-2015 Narayan Kamath <narayan@google.com> Remove unused resources.

Change-Id: I8d6c11564f80d2f48bbff0f43265804fc87b0819
oc-files/capchi.gif
oc-files/capiota.gif
oc-files/capsigma.gif
oc-files/captheta.gif
oc-files/capupsil.gif
oc-files/chi.gif
oc-files/iota.gif
oc-files/javalang.doc.anc21.gif
oc-files/javalang.doc.anc38.gif
oc-files/javalang.doc.anc40.gif
oc-files/javalang.doc.anc41.gif
oc-files/sigma1.gif
oc-files/theta.gif
oc-files/upsilon.gif
8213d847a281527398535adeacb66bfcc3fdb953 19-Dec-2015 Dimitry Ivanov <dimitry@google.com> Merge "Use shared namespace for bundled apps"
d3c9dabf5b57d5e4bd86829e6918e8ec732a523a 15-Dec-2015 Dimitry Ivanov <dimitry@google.com> Use shared namespace for bundled apps

This change adds support of shared namespaces when
creating classloader for bundled apps.

Bug: http://b/22548808
Bug: http://b/26165097
Change-Id: I4b4c89e68d83b57d4a9e462725d8b94b3562afef
untime.java
551112f15a648b739f842b2466b5fdae3e80d6de 18-Dec-2015 Alex Light <allight@google.com> resolve merge conflicts of 34b8470 to master.

Change-Id: I9ebcb6e3d51be922e08e5f867fb8dcaf5cb9788d
02b720fa5add062e3f52ec28d2c050b746a54382 16-Dec-2015 Narayan Kamath <narayan@google.com> Apply temporary workaround for callers of hidden Runtime API.

This change **WILL** be reverted after the android N release.

bug: 26217329

Change-Id: Ibfea944752dc69b10cf7d7b052189b09bbe4ab21
untime.java
504081afe36c8a9fa82a3f9c651b09e8d55b13de 15-Dec-2015 Alex Light <allight@google.com> Revert "Combine directMethods and virtualMethods fields in Class."

This reverts commit 1b68e113435eab5860c68e529902e4f9caa3462a.

Change-Id: I9a64895cc213891e59d4ca9179df3e3ff3dcbd32
lass.java
1b68e113435eab5860c68e529902e4f9caa3462a 08-Dec-2015 Alex Light <allight@google.com> Combine directMethods and virtualMethods fields in Class.

Manual cherry-pick of 72d5750 to master.

Bug: 24618811

Change-Id: I36129b52189e26898ea56fa2b7b45652e06af236
lass.java
4d9ced850d6fbc052ccf062a3cf6f708fb4e4402 09-Dec-2015 Narayan Kamath <narayan@google.com> Let cleaners get cleaned again.

When cleaners are "enqueued" by the GC, their clean() method must
be called. They must not be enqueued on the dummy reference queue
they're associated with - nobody's waiting for them there.

Their clean method is run on the "ReferenceQueueDaemon" thread, and
can also be invoked by explicitly calling "enqueue" method inherited
from PhantomReference.

bug: 26014645

Change-Id: I2ec733f99a3606f3f69af0a22240b1ccd8c4fe7c
ef/Reference.java
b1dfc87c3d029ed1d696286366a27a1b607db1b8 11-Dec-2015 Dimitry Ivanov <dimitry@google.com> Port isolated namespace changes over to ojluni

Bug: http://b/22548808
Change-Id: Ia26e73d72de71ca90a9208c9829847439e3db2ce
untime.java
e3577e1f385f28f48782b6bda72c99bfcb87dd93 10-Dec-2015 Narayan Kamath <narayan@google.com> Fix String.codePointAt.

Was passing the wrong indices to Character.codePointAt.

bug: 26126818
Change-Id: Id9edb51067c847bb8637bf614b21727b4a58f58a
tring.java
1319114572c6eec041035c34f445e9b0e3d14e4c 09-Dec-2015 Narayan Kamath <narayan@google.com> Fix javadoc / API def for java.lang.ref.Reference.

enqueueInternal isn't public API and its javadoc really belongs
to enqueue, which is public API.

Change-Id: Idd073c51a874e415b9f89059c6a9e6f75ab3d695
ef/Reference.java
dd6a3f16548933d5a0c23d72e3bccd54cbe17ff7 09-Dec-2015 Hans Boehm <hboehm@google.com> ReferenceQueue.remove() should not time out prematurely

Manually cherrypicked from jdk9, without the associated test.

This tolerates early wakeups from the wait() call, such as when
another thread successfully calls remove.

For the sake if upstream compatibility, we continue to use a separate lock
object for synchronization, though that is probably not really necessary
anymore.

Hg Changeset 9347:0731952efb10

6853696: (ref) ReferenceQueue.remove(timeout) may return null even
if timeout has not expired
Reviewed-by: mchung, mduigou, rriggs
author igerasim
date Thu, 27 Feb 2014 02:44:04 +0400 (21 months ago)
parents 4273927396c9
children afc51ec63594

Bug: 25893944
Change-Id: Ie72920a46a2d3d8dc423763851a7f9c3da5efcd6
ef/ReferenceQueue.java
3cdc04f491663b408d7e3f43f95aac10e18b4559 03-Dec-2015 Narayan Kamath <narayan@google.com> Clean up ReferenceQueue, fix ReferenceQueueTest.

- Remove change markers & clarify comments.
- ReferenceQueue.remove(timeout) doesn't provide any hard guarantees;
it only promises to be broadly equivalent to Object.wait() so there's
no need to wait in a loop. We also guard against "spurious" notifies
by sychronizing on a private object, not on ReferenceQueue.this
(fixes ReferenceQueueTest#testRemoveWithSpuriousNotify).

bug: 25893944
Change-Id: I7833691d67fed3eae6a5d4370771c2c4216cbd7b
ef/ReferenceQueue.java
79ed6095d5b6b5e6aa68788a3fa2742f9d024ced 02-Dec-2015 Hiroshi Yamauchi <yamauchi@google.com> Fix hashCode() for the read barrier lock word change.

Mask the low 28 bits of the lock word.

This is a cherrypick of commit 28da248e817762ef6e2709a8379228867862d97a
from libart/ to ojluni/.

Bug: 25838574
Bug: 19355854
Bug: 12687968
Change-Id: I436a8bc13f7729300a01c0558cccb5cf6c40bdf8
bject.java
dc56766500bc9c08f8852cbf735f991a8a8bdabf 02-Dec-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> String#split trailing separators fix

Fast path for String#split was removing trailing empty entries if limit argument was <= 0. This should only happen if the
limit is equal to 0.

Bug: 25925128
Bug: 25943996
Change-Id: I2db96b1af5ae822974edaa6a688ad12a03a9cbc3
tring.java
66c9d044732d6f6c5030d1d0ca6be8c0b51d486d 01-Dec-2015 Mathieu Chartier <mathieuc@google.com> Fix System.load to use getStackClass1

Was incorrectly looking up 2 frames.

Bug: 25866849
Change-Id: If3f1fb5548449b035c6cab05a82a4829a6975382
ystem.java
9ad355852dacfe563b49b543f37d843ae6e94f06 26-Nov-2015 Yi Kong <yikong@google.com> Cache Integer.toString results for small numbers

This avoids repetitively creating String object for numbers less than
100, significantly improves performance while has small impact on
memory usage.

=== Angler a57@1.4GHz ===
benchmark Orig Mod
_IntegerToString10_small 1636 29.8
_IntegerToString_small 1607 18.8

Bug: 25887112
Change-Id: Ibdd6556c8f2a99f0dce9b0194934eeb23931553d
nteger.java
7d637499caf53a68aeb9df7df8ca33e922ed6ac1 26-Nov-2015 Yi Kong <yikong@google.com> Replace modulus operation in Integer.toString

with divide and multiply, since modulus operations need to be lowered
into instruction serieses and is slower in this case.


=== Angler a57@1.4GHz ===
benchmark Orig Mod
_Formatter_large 69379 68676
_Formatter_medium 69329 68495
_Formatter_small 66922 68974
_IntegerToBinaryString_large 1799 1857
_IntegerToBinaryString_medium 1749 1782
_IntegerToBinaryString_small 1659 1724
_IntegerToHexString_large 1670 1670
_IntegerToHexString_medium 1648 1662
_IntegerToHexString_small 1642 1647
_IntegerToString10_large 9302 1722
_IntegerToString10_medium 9321 1690
_IntegerToString10_small 9211 1636
_IntegerToString16_large 22547 1667
_IntegerToString16_medium 19950 1661
_IntegerToString16_small 14855 1653
_IntegerToString2_large 49454 1900
_IntegerToString2_medium 34349 1759
_IntegerToString2_small 19513 1665
_IntegerToString_large 1686 1703
_IntegerToString_medium 1661 1686
_IntegerToString_small 1618 1607
_StringBuilder_large 758 730
_StringBuilder_medium 661 675
_StringBuilder_small 647 641


Bug: 25887112
Change-Id: I7b441d75ba5948d258b16c93674920dd6510d573
nteger.java
e9d215bb0811633791ca53199922a8d5512de224 25-Nov-2015 Narayan Kamath <narayan@google.com> Fix FileDescriptor leak from java.lang.Process.

The issue here was that nobody claimed ownership of the file descriptor
the process output stream was constructed with, so it was generally left
unclosed.

bug: 25865603
Change-Id: Ibb84445efc164dcefef4eae5f091370dc1202480
NIXProcess.java
91cea24c3691a11e2063aa78dd4512ccdf771261 25-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Properly add missing "java.version" system property

sun.misc.Version.init now adds properties to unchangeable system
properties, was ranamed to initSystemProperties and is no longer
called twice.

Bug: 25861114
Bug: 25861357
Change-Id: I8db5944dc814f621758d78f47140ebe30e07100b
ystem.java
d29facce8e3f78c7135a6a6846e95f4914f8831f 24-Nov-2015 Narayan Kamath <narayan@google.com> Revert "Add missing "java.version" system property."

This reverts commit 6537662798dba8569b299fbeeb47b21196398978.

Change-Id: Ief60632b4808175e870b63f8f0234f6048c44894
ystem.java
6537662798dba8569b299fbeeb47b21196398978 24-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add missing "java.version" system property.

Fixes ibcore.java.lang.OldSystemTest#test_getProperties
failure.

Bug: 25861114
Change-Id: I1e5e7b03c5d4368e9dc4b97d180fbc3befef47a1
ystem.java
3d27623602f23683be9c7ce03f4c4d2f4d3120ed 24-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "java.lang.Character implemented using icu4c"
dcdf8113bed8181e2210b1379615cf772ce9b7fa 13-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> java.lang.Character implemented using icu4c

Removed CharacterData* and CharacterName classes.
+ bugfixes from mnc

Bug: 25442844
Change-Id: I8c20cdf32ca3530dc425c8117c637769463c1f93
(cherry picked from commit 2614ae16db0daf146227484c8e712dcbcc11e964)
haracter.java
haracterData.java
haracterData00.java
haracterData01.java
haracterData02.java
haracterData0E.java
haracterDataLatin1.java
haracterDataPrivateUse.java
haracterDataUndefined.java
haracterName.java
onditionalSpecialCasing.java
33e49e4e5ca9250ce741d39b56f357557f2883ff 24-Nov-2015 Nicolas Geoffray <ngeoffray@google.com> Revert "libart: add lambda proxy support"

955-lambda is flaky

Bug: 25107649
Bug: 24618608

This reverts commit 5a92ed3ace6e1cc71b20f29b7761cefd47f6cc06.

(cherry picked from commit ef1a480efa8a1efb50bc909d2227cc2dbce2b313)

Change-Id: If4e5b2756fcaddb9ea17c7c3ad239095addc9046
lassLoader.java
eflect/Proxy.java
70b617fe562806bc3e15452a2792fec4355bd54f 20-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge mnc-dr-enso-dev into master

OpenJDK adjustments for master.
- Restored removed libcore.icu.* classes (needed
by the openjdk java.text.* classes). This will be
undone in short future.
- Adjusted java.lang.* and java.lang.reflect.* classes
for native reflection and other changes in master.

Bug: 25758743
Change-Id: Ifbbe5b1e8661138fc32ad24127f76f711dd585b7
576646414b524e536304ac757304abfac94a6379 18-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Optimize StringBuffer/Builder#appendFloat/Double/Boolean" into lmp-mr1-enso-dev am: 37e84c4ef2
am: 0852d40e19

* commit '0852d40e19a45988cd0b576c0ca10f80bc299562':
Optimize StringBuffer/Builder#appendFloat/Double/Boolean
a6f141d715636f709c851de4d7acfe0194dff299 18-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Update unused/deprecated class javadocs" into lmp-mr1-enso-dev am: 732fc1d66a
am: dc855ac0b5

* commit 'dc855ac0b5dfcc7248aa48337756a1df2dc2bfe1':
Update unused/deprecated class javadocs
0852d40e19a45988cd0b576c0ca10f80bc299562 18-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Optimize StringBuffer/Builder#appendFloat/Double/Boolean" into lmp-mr1-enso-dev
am: 37e84c4ef2

* commit '37e84c4ef275da7755deac5abe89557b1fec914c':
Optimize StringBuffer/Builder#appendFloat/Double/Boolean
dc855ac0b5dfcc7248aa48337756a1df2dc2bfe1 18-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Update unused/deprecated class javadocs" into lmp-mr1-enso-dev
am: 732fc1d66a

* commit '732fc1d66a63d8e68732029575792927b87daae2':
Update unused/deprecated class javadocs
37e84c4ef275da7755deac5abe89557b1fec914c 18-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Optimize StringBuffer/Builder#appendFloat/Double/Boolean" into lmp-mr1-enso-dev
8ae224f4307f759127dab4d2e59fe5420af14c21 17-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "java.lang.Character implemented using icu4c DO NOT MERGE" into lmp-mr1-enso-dev
bac8ef10e8a32316e4eedc6163dd3776cf5e5d7e 17-Nov-2015 Narayan Kamath <narayan@google.com> Fix Class.forName with a null classloader.

Javadocs imply we should use the bootstrap classloader and not the
system classloader. Fixes art/test/068-reflection.

Change-Id: I862a3392d4ca2b846b534e6ebd32fe29458ef0ac
lass.java
2c2d465a57ba2db5e85d19a169ab63eb2f10fadc 17-Nov-2015 Narayan Kamath <narayan@google.com> Minor tweak to proxy name generation.

Allocate a unique number only if we've validated our input
arguments. Fixes art/test/044-proxy.

Change-Id: I4a25a01227294baec3c903472a05f9188d297bad
eflect/Proxy.java
f62ddf18ed81105329c4a4793b1909eac449b871 17-Nov-2015 Narayan Kamath <narayan@google.com> Fix 046-reflection.

Field / Method constructs can't be forced to become accessible.

Change-Id: I2d854c1b4a9ead7baa92fcfe76900955b62ff39c
eflect/AccessibleObject.java
732fc1d66a63d8e68732029575792927b87daae2 17-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Update unused/deprecated class javadocs" into lmp-mr1-enso-dev
dfbd40b1bd17f2aca05acd9d6e4902f7ca040256 17-Nov-2015 Narayan Kamath <narayan@google.com> Implement UNIXProcess.toString.

137-cfi parses Process#toString to attempt to figure out
the pid of a spawned process.

Change-Id: Idfc1697f68d4a314a3e87b63e7aad1e7db7c540d
NIXProcess.java
499346040d83c7103a67e776ae59b8057ce38aaa 17-Nov-2015 Narayan Kamath <narayan@google.com> Fix art/test/005-annotation.

Proxies must be created in the default (empty) package.

Change-Id: Ifc48dd1c5e11e0ac4e6bcac0b44047044bfcef66
eflect/Proxy.java
69cc6770b5680b1b60fe600affc26aaca7bd3ae9 17-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> resolve merge conflicts of c6b8e2367f to mnc-enso-dev.
am: f3ad8102d2

* commit 'f3ad8102d2762c67598283f32afe6154d5ad3798':
Native implementation of java.lang.Math
f3ad8102d2762c67598283f32afe6154d5ad3798 17-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> resolve merge conflicts of c6b8e2367f to mnc-enso-dev.

Change-Id: Ic2205c4344148cccae934b8f31656fd05cd1925c
7e9207a271a8ac4fe8a8f397a2a022798b85ebca 17-Nov-2015 Narayan Kamath <narayan@google.com> Improve String exception details.

Always include the offsets and the requested range. Fixes
201-built-in-exception-detail-messages.

Change-Id: I2a3aa7feaee3f7950272115ecd80f492a98cf5d3
tring.java
09d027ac24ceafc7c35397532db2271a1e56653c 17-Nov-2015 Narayan Kamath <narayan@google.com> Revert "Fix build, String is different in mnc/lmp-mr1"
am: 8ea3f16310

* commit '8ea3f1631043cc9381b5f07220b199feeec6a02f':
Revert "Fix build, String is different in mnc/lmp-mr1"
8ea3f1631043cc9381b5f07220b199feeec6a02f 17-Nov-2015 Narayan Kamath <narayan@google.com> Revert "Fix build, String is different in mnc/lmp-mr1"

This reverts commit da0b7230820320936babd192b24ad85d6ce146bd.
tring.java
2d76af0c4d03715a92b551279bfd61b7cffebf2d 17-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix build, String is different in mnc/lmp-mr1 am: da0b723082
am: 7dcfaba47b

* commit '7dcfaba47ba9620a6229840298038fc94efcf8b3':
Fix build, String is different in mnc/lmp-mr1
7dcfaba47ba9620a6229840298038fc94efcf8b3 17-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix build, String is different in mnc/lmp-mr1
am: da0b723082

* commit 'da0b7230820320936babd192b24ad85d6ce146bd':
Fix build, String is different in mnc/lmp-mr1
2614ae16db0daf146227484c8e712dcbcc11e964 13-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> java.lang.Character implemented using icu4c DO NOT MERGE

Removed CharacterData* and CharacterName classes.
+ bugfixes from mnc

No longer breaks the build.

Bug: 25442844
Change-Id: I8c20cdf32ca3530dc425c8117c637769463c1f93
haracter.java
haracterData.java
haracterData00.java
haracterData01.java
haracterData02.java
haracterData0E.java
haracterDataLatin1.java
haracterDataPrivateUse.java
haracterDataUndefined.java
haracterName.java
onditionalSpecialCasing.java
18c0914b6e4c3af44504193dbfb142ab94c03b19 03-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Update unused/deprecated class javadocs

Those classes are no-op on android.

Change-Id: I7e5e06d4629d2cf5ff39591c4c97a0e8f6670118
ompiler.java
ecurityManager.java
9524178a7300a939242b78017f3dfa8014d4ca6d 27-Oct-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Optimize StringBuffer/Builder#appendFloat/Double/Boolean

Moved FloatingDecimal from sun.misc to java.lang package,
so it can access AbstractStringBuilder class (and do
not duplicate same code for the StringBuffer and the
StringBuilder).

FloatingDecimal is no longer instantiated, but
accessed from thread local storage and reused.

Change-Id: Id1c45cfe6f6a8b30b8550fc04ed1976772f28905
bstractStringBuilder.java
ouble.java
loat.java
loatingDecimal.java
f28158fc458ad4175d27bd515626d1064577f22c 16-Nov-2015 Narayan Kamath <narayan@google.com> Provide a detailed error message in Enum.valueOf..

.. when the input Class<?> isn't an enum type. Part of the
fix to 055-enum-performance.

Change-Id: I3ad3a70534e671108eabb1804661a74ad4587369
num.java
542cc3986e28a9dbb7f34042a2f41df46f3ae0f1 06-Nov-2015 Yi Kong <yikong@google.com> Add isFinalizable method in java.lang.Class

to match the behaviour of the original implementation in libart.

Change-Id: I55ecb0f338ba34687acbbda376e920263624ff73
(cherry picked from commit 2ebb445676e3f0170930e5c47e7a86d20332e5a8)
lass.java
b599155442530418798c129d2836f6a32853479e 16-Nov-2015 Narayan Kamath <narayan@google.com> Remove redundant initialization of system properties.

These are set by sun.misc.Version. Attempting to set them twice
results in a warning from j/l/System and breaks a crap ton of art
tests.

Change-Id: I0aa1b710e14c64f922e0716a331cc57259a76fe1
ystem.java
935066df92bcfbd8178f775e160d2a1bebeee18d 06-Nov-2015 Yi Kong <yikong@google.com> Add isFinalizable method in java.lang.Class

to match the behaviour of the original implementation in libart.

Change-Id: I55ecb0f338ba34687acbbda376e920263624ff73
(cherry picked from commit 2ebb445676e3f0170930e5c47e7a86d20332e5a8)
lass.java
2ebb445676e3f0170930e5c47e7a86d20332e5a8 06-Nov-2015 Yi Kong <yikong@google.com> Add isFinalizable method in java.lang.Class

to match the behaviour of the original implementation in libart.

Change-Id: I55ecb0f338ba34687acbbda376e920263624ff73
lass.java
c6b8e2367fde6406ba2954797c8217f257ddeb23 28-Oct-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Native implementation of java.lang.Math

Using standard c math functions instead of
StrictMath implementations gives us great
performance boost in MathBenchmark (up to ~5x faster
in many tests).

Change-Id: I19642a1ea04bf50150ef2d3be8477bf243442ae9
ath.java
a5f312ce8bab81a5e658f4603874c98d95844c43 12-Nov-2015 Qiwen Zhao <zhao@google.com> break build.

Revert "java.lang.Character implemented using icu4c DO NOT MERGE"

This reverts commit c307caca005e95d33684a5d0c24d85ff2428c72a.

Change-Id: I1c8b6f7ba7b28d578b8081c409d6b8a774918284
haracter.java
haracterData.java
haracterData00.java
haracterData01.java
haracterData02.java
haracterData0E.java
haracterDataLatin1.java
haracterDataPrivateUse.java
haracterDataUndefined.java
haracterName.java
onditionalSpecialCasing.java
c307caca005e95d33684a5d0c24d85ff2428c72a 03-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> java.lang.Character implemented using icu4c DO NOT MERGE

Removed CharacterData* and CharacterName classes.
+ bugfixes from mnc

Bug: 25442844
Change-Id: Iec64a29a6d2d70a5f4fcc1ada2c2446339965880
haracter.java
haracterData.java
haracterData00.java
haracterData01.java
haracterData02.java
haracterData0E.java
haracterDataLatin1.java
haracterDataPrivateUse.java
haracterDataUndefined.java
haracterName.java
onditionalSpecialCasing.java
8daac68501da0699c9ffd62bac14e36de8d11cf4 06-Nov-2015 Narayan Kamath <narayan@google.com> Update javadoc to reflect new sys-properties semantics.

Change-Id: Id83c841ef24884807e128e623881d915eea5aebe
ystem.java
11166afdbe991ab305ef579fb11fc41db7776e37 06-Nov-2015 Narayan Kamath <narayan@google.com> Undo merge of mr1 change.

Change-Id: I0849634fd199761d10a97e9f76288e0da2cd1efa
tring.java
b282683ebf0df1a787821ceac86030383c6e18dd 03-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix build, String is different in mnc/lmp-mr1

Change-Id: Ib795dc30aca793249b4136511d8002500cd3918b
tring.java
938b163cc74e7fee7e16580ecac063f414dcfaf2 28-Oct-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Remove code that unused/deprecated on android.

Lobotomize classes that make no sense on android.

Change-Id: I1d6fdc5ec22a3605af6ecae7a40415ec94aa4a75
ompiler.java
ecurityManager.java
cc7b3c3cdd4d442d82c113186fecf79f81944b15 27-Oct-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> String#split fast path optimization

Instead of allocating ArrayList
and growing/shrinking it, lets count all the
separators and allocate the array of the required
size.

Change-Id: Ia70ef54efd1580903f5752e3d488b3643e5c89b7
tring.java
8e73764b786b46545c9eb71341b0861015d558d5 08-Oct-2015 Narayan Kamath <narayan@google.com> System: Port locale / line separator related changes over to OpenJdk.

This includes support for persist.sys.locale (+ the associated
backwards compatibility).

Includes changes b30abe5c, 61908bb6 and others. This also includes
an implementation of System#setUnchangeableSystemProperty which the
native bridge expects.

Change-Id: Ic125e94028f4d96a03409a6b7ac114ee9346227a
ystem.java
f7fc4bb90e4c205ff93780244b4928e6335e5855 12-Oct-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix Constructor#serializationCopy

Constructor#serializationCopy (used by the OpenJdk
ObjectStreamClass) functionality was badly done
during OpenJdk merge in M. This change fixes #newInstance
on Constructor instances created by the #serializationCopy.

Bug: 24764403
Change-Id: I2801383136cd6891d86052a762eb29de1e5d34e2
eflect/Constructor.java
cdd31b26176b48a321df5ea9d5e4364e7209dae9 08-Oct-2015 Narayan Kamath <narayan@google.com> String: fix bounds checks on getChars

getCharsNoChecks really does mean *no checks*. We must check that
the output array has the right size.

Change-Id: I6a0521b5da42f344927833d7b17c2b477ba05def
tring.java
232ed175b796126887c9a9517bc57b76fcb05318 28-Sep-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Rename a few internal methods to use the $ suffix.

Change-Id: I85f5171430928f05daf7748b18ba36652ce15755
hread.java
329e439974feab9157ed56388fadf050a4f67627 28-Sep-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Update implementation of runFinalization.

Use a new VMRuntime method.

Change-Id: Iad219ebc3e8e57683d0e8a3c47d7d7dd38a4f448
untime.java
ad6193fff8c8ce502b4800350aafc8abf1ac44ae 28-Sep-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add an enqueueInternal method.

Equivalent to enqueue for now.

Change-Id: Ic9a6a0343b2ce60f9a4185ea5625ad649b229926
ef/Reference.java
0a94bbda34f5ea7d6c73634ddcd5b15f698f7598 28-Sep-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Use NoPreLoadHolder for random instance.

Change-Id: If9193b14b3a3451d7b0c5a230988e637bd5f9ef6
ath.java
b90c36f25b990336a456daad69ea9db9256b86ce 28-Sep-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Track changes to the runtime representation of j.l.String.

Change-Id: I3aecd952128097258743a88f4f664024c9183ea0
bstractStringBuilder.java
nteger.java
ong.java
tring.java
tringBuilder.java
tringCoding.java
1ee709428b0987348980749b7fb7be90d8b225b5 06-Nov-2015 Narayan Kamath <narayan@google.com> Track runtime changes that affect j.l.Class / j.l.reflect.*

ArtField / ArtMethod have been moved to native.

Change-Id: Ice648895ab4830ddbde61f5e97e94a30eef1513c
lass.java
eflect/AccessibleObject.java
eflect/Constructor.java
eflect/Field.java
eflect/Method.java
eflect/Proxy.java
da0b7230820320936babd192b24ad85d6ce146bd 03-Nov-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix build, String is different in mnc/lmp-mr1

Change-Id: Ib795dc30aca793249b4136511d8002500cd3918b
tring.java
a2f1c61be6bf4dfb1976f4b385ca4373e8b3f91f 28-Oct-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Remove code that unused/deprecated on android.

Lobotomize classes that make no sense on android.

Change-Id: I1d6fdc5ec22a3605af6ecae7a40415ec94aa4a75
(cherry picked from commit
2bf9ac3e27e846bc6d33a5becd0023772f6456af)
ompiler.java
ecurityManager.java
9c1600b3f22e33c704a9b0487806a0d990d78a88 27-Oct-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> String#split fast path optimization

Instead of allocating ArrayList
and growing/shrinking it, lets count all the
separators and allocate the array of the required
size.

Change-Id: Ia70ef54efd1580903f5752e3d488b3643e5c89b7
(cherry picked from commit f2cc57313df2fd0f84cb0550bccd3396a3029b7f)
tring.java
8ee7abf4ac99dbf807471de86e3e7dc01cac9bf8 15-Oct-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix java.lang.reflect.Array#newInstance

Added missing arguments check to the
java.lang.reflect.Array#newInstance method.

Bug:24907947
Change-Id: Ie97c8fe2666af31fb4c9fa024fa9da34d04b806d
eflect/Array.java
9df7d4ff9eac102e9349c43bd58eec11bfebde2c 07-Oct-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add Android System#arraycopy fast specializations.

Re-added System#arraycopy specializations that are
really fast for small arrays. They were introduced
originally in b/7103825.

Change-Id: I74fade6a8f945dbd296a49ef58de4703ae58774a
ystem.java
844baddb75b289c6f7f09ef03f1cd3864609af86 11-Sep-2015 Narayan Kamath <narayan@google.com> Include ICU4J in core-libart.

Includes a partial cherry-pick of change bd4a28864d1892 to
ensure that we're looking for data in the right place.

Change-Id: I04b532478a304103131e6a500dfdff7cdd672c8d
ystem.java
8cf95d98bb1bcb92a2c6f422ab0461e991b52945 19-Aug-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Further ReferenceQueue fixes.

- Vanilia OpenJdk ReferenceQueue behaves like a stack, this change makes
it behave like a queue.
- Removed internal lock and switched to 'this' for synchronization - tests in
harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/ref/ReferenceQueueTest.java
depend on this behaviour.

Change-Id: I6c0599b002809f3c696b47f3715a84db46339bed
ef/ReferenceQueue.java
523317d62c9b4472fd7adbe8c4c7e5e07c0eb8b1 05-Aug-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix ReferenceQueue code (and some test)

ReferenceQueue from OpenJdk needs some more alterations
to work with OpenJdk-but-heavily-modified-to-work-with-our-GC
Reference class.

Updated ReferenceTest#test_subclass test to expect
seems to expect #clear followed by #enqueue, but android
code doesn't call any of them. I need to find someone
knowledgeable to figure out what's the expected behavior).

Change-Id: I86f9a9682d781136fb3d97023ee9de39d2a2ac1a
ef/ReferenceQueue.java
dabc7a7e0a369cf6c3c70e4b83d68434c9ef8809 13-Aug-2015 Narayan Kamath <narayan@google.com> Remove signal handling code.

Unused and not needed.

Change-Id: I36d2d5adb9172081187b668937f5ce16f52db9e3
ystem.java
d50e39906a7802ded07558f58d97fce709f0a75b 13-Aug-2015 Narayan Kamath <narayan@google.com> Remove more unused code.

Change-Id: If4a4cb66c075d8ba1889cf92a08ffd6aa99dc692
nstrument/ClassDefinition.java
nstrument/ClassFileTransformer.java
nstrument/IllegalClassFormatException.java
nstrument/Instrumentation.java
nstrument/UnmodifiableClassException.java
nstrument/package.html
3986e3cc7c8bda88505d3184fcfffc6d800d03c6 10-Aug-2015 Narayan Kamath <narayan@google.com> Clamp thread priorities to [MIN_PRIORITY, MAX_PRIORITY].

Change-Id: I55faf474f6bcb5237e69524ac3c9b213e07d8212
hreadGroup.java
46c38b30477d579beaa528386f71814c0191a48f 10-Aug-2015 Narayan Kamath <narayan@google.com> Deal with null thread names correctly.

Also includes a change to return a null thread group for
TERMINATED threads.

Change-Id: I2e86bef4b76f50173ecba7cbba27a5f9bc175ee6
hread.java
62431a724629f84cd9c45e7bcf2f71c8fdc28f7e 03-Aug-2015 Narayan Kamath <narayan@google.com> Fix ThrowableTest.

nativeGetStackTrace can return null. We should return an empty
stack trace array when that happens.

Change-Id: Ia669f8c0b17cf93b111b2cc004d093643558da13
hrowable.java
a2e3aaa5b3507c04b07ca1c80a6b3a514d3e8222 28-Jul-2015 Narayan Kamath <narayan@google.com> Properly @hide Shutdown.

Also remove it from the list of classes we generate docs for.

Change-Id: If92eca9f4892ffc3aa06067af7cb07ef7ae840a1
hutdown.java
9e78cee3f3edf84254174717f475605d712aad1c 27-Jul-2015 Narayan Kamath <narayan@google.com> Various fixes to get the docs build compiling properly.

- Make sure javadoc @param tags and function arguments match.
- All @deprecated tags must have a description.
- Include missing files from java.nio.file.

Change-Id: Iafa324cbe0604a9d4cf96b00fea49c6516b30915
lass.java
lassLoader.java
bject.java
untime.java
hutdown.java
eflect/Array.java
eflect/Constructor.java
eflect/Field.java
eflect/Method.java
4a2df4b5bc2a7b752d0bd790f28a1d63dac89919 20-Jul-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fixes for libcore.java.net.OldSocketTest

java.net.preferIPv6Addresses=false, with
an exception in anyLocalAddress, which returns
a IPv6 "::".

Change-Id: I5192981e13b99ec2b1756eb7f75df1f3c9723550
ystem.java
b44c7cf87e44e03d2b7b1c9c132e21caceb4f868 15-Jul-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Proper fix for java.io.tmpdir/user.home mutability

Fix for java.io.tmpdir and user.home property (in the
System.initProperties) being set as a immutable default.

Change-Id: Ic74a990fb4a472a62f52552c4a8c339adf92aafb
ystem.java
b8eafc0fc614af9793c80a291f3c132d86297f01 14-Jul-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Make user.home property mutable

Fixes libcore.java.lang.SystemTest#testSystemProperties_mutable

Change-Id: I0fdbb044992c98dbb935bb17fefce99a3912cd23
ystem.java
87778fb754e6e9bf04e1d8e10fd13f49cc2aa608 14-Jul-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix ClassCastExceptionText.

Updated ClassCastException message to contain more
information.

Change-Id: I5a944f57daa417d5009db4d2acb904f0007b31e9
lass.java
806a3afe2c47f8d3244db80fa1dac4a6196699e2 14-Jul-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix libcore.java.io.OldAndroidInputStreamReaderTest#testStringy

StringCoding#encoding was throwing an exception when
encoding output buffer overflow. Fixed by using a method that will
resize output buffer in this case.

Change-Id: I6de59f1a1f76364224f11c9ee297631ab505e393
tringCoding.java
89ca22d995205228f526db2a3c50e99e866fe9cf 10-Jul-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fixes for libcore StringTest#*_MaliciousCharset

MaliciousCharset tests defenses against evil Charset
implementations that break strings immutability.

Fix for encoder is straightforward - pass read-only buffer.
Fix for decoder involves making a defensive copy of decoders
output. OpenJdk implementation was skipping this step if
the System.getSecurityManager() == null (always true on android).
or the Charset class loader was == null (so the Charset class is
"trusted"). Fix involves forcing the copy in all cases.

Change-Id: If8e42c25c469a87784292c4133f42d1a501ca5c9
tringCoding.java
0a15327f9568f6a8d6b296a0d5fdc0676052898b 09-Jul-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Use CaseMapper for String.toUpper/LowerCase

Fixes libcore.java.lang.StringTest#testCaseMapping_el test.

+ bugfix for StringToReal removal.

Change-Id: I204c9bf056086ddacc70d01c89005781e208e80e
tring.java
9b7a4b3eb9a9a1d0a25416bd914cdd46109146c5 30-Jun-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fixes for libcore.OsTest

Added .equal/.hashCode for InetUnixAddress (Android
InetAddress provides working implementation of both,
OpenJdk expects that all subclass with have its own).

Fixes networking code to properly detect that
IPv6 is supported, and return IPv6 loopback address
in java.net.InetAddress.getLoopbackAddress().

Change-Id: I48e046c95357441d1d0c74f89968b7d8940b360c
ystem.java
fe26efa3f4d36ab6132ba2d01898cdf11c89667b 05-Jun-2015 Piotr Jastrzebski <haaawk@google.com> Throw NPE if Class.getField(name) has a null name.

Change-Id: Ied33bfd9e91bffda8df9b6b081a1eb38bf459d24
lass.java
de626ec8a109ea18283d96c720cc57e2f32f67fa 19-May-2015 Piotr Jastrzebski <haaawk@google.com> Use OpenJdk implementation of java.lang.* [part 3].

Change-Id: I8c43abac313c3c7e8a04f5a5aeae3bf9188c1732
lass.java
lassLoader.java
num.java
bject.java
hrowable.java
a80f9aeb7b637fc241c75448eed08275245ec652 06-May-2015 Piotr Jastrzebski <haaawk@google.com> Use OpenJdk implementation of java.lang.* [part 2].

Change-Id: I938a2770320c2ed14ae70fb1681c88df594240c6
lass.java
ackage.java
rocessImpl.java
untime.java
hread.java
hreadGroup.java
NIXProcess.java
46e3649f898305d185fc40bae2542e933a16b619 06-May-2015 Piotr Jastrzebski <haaawk@google.com> Use OpenJdk implementation of java.lang.* [part 1]

- Changes to String hashing.
- Change StringCoding.isTrusted.
- For boxed primitive types, change how TYPE is derived (use the
array equivalents component type).
- System: the security manager is now always null. Also, port over
changes to make system properties read only.
- StrictMath : Use our existing fdlibm and remove references to
jdflibm.h.

Change-Id: I221692836b9320cade9074b122fbc25c8e72cf99
rrayIndexOutOfBoundsException.java
oolean.java
yte.java
haracterData00.java
haracterData01.java
haracterData02.java
haracterData0E.java
haracterDataLatin1.java
haracterDataPrivateUse.java
haracterDataUndefined.java
ouble.java
loat.java
nteger.java
ong.java
hort.java
tring.java
tringCoding.java
tringIndexOutOfBoundsException.java
ystem.java
oid.java
8d05e88f57c1ea5543d4012687c70cd64efcada0 06-May-2015 Piotr Jastrzebski <haaawk@google.com> Use OpenJdk implementations for java.io.* [part 2]

Covers most of the serialization classes.

- ObjectInputStream / ObjectStream{Class,Field} : Use VMStack methods
wherever appropriate.
- RandomAccessFile : Reimplement in terms of IoBridge.

Change-Id: I4a57e14ec7fe30f42f6060daf37eb16329636117
eflect/Constructor.java
ad1629101546eb3b00c5674ec1d84a8e0df12ace 06-May-2015 Piotr Jastrzebski <haaawk@google.com> Use OpenJdk implementation of java.lang.ref.*.

- Daemons: Use enqueue instead of enqueueInternal.
- Reference / ReferenceQueue : Modified to work with ART.

Change-Id: Ie23cf4828d298d5df880766945efb47333469fdb
ef/Reference.java
ef/ReferenceQueue.java
05f3b6342e5375c8994e1d54c3f588e09ef21854 05-May-2015 Piotr Jastrzebski <haaawk@google.com> Use OpenJdk implementation of java.lang.reflect.*

- Remove unused (and currently unimplemented by the runtime) code
from sun.reflect.Reflection
- Array: Move most methods to managed code, use Art's newMultiArray
method.
- Constructor / Field / Method : Delegate to ArtField / ArtMethod
etc.

Change-Id: Ia8bcbd902ed7dd3b50675a266db9732b95427fb6
eflect/AccessibleObject.java
eflect/Array.java
eflect/Constructor.java
eflect/Field.java
eflect/Method.java
eflect/Modifier.java
eflect/Proxy.java
1ae149ae8db46adac5723c739d53dd82a1cf2e1a 27-Apr-2015 Piotr Jastrzebski <haaawk@google.com> Use OpenJdk implementation of java.io.*

(except for DateInputStream, RandomAccessFile, File*, Object*)

- Make Shutdown public (for use without shared secrets).
- Add Console.getConsole()
- Remove legacy merge sort support from Arrays.
- Remove ensureMemberAccess from ReflectUtil.

Change-Id: I0a815ddcfac83af09698dc4ce8c88b920a844ffa
hutdown.java
983b2c6ff9ea6d35adf7ab6398dccf870b7e180a 24-Apr-2015 Piotr Jastrzebski <haaawk@google.com> Use OpenJdk implementation for java.util.*

- Add a target for currency data (currency.data).
- Arrays: Add an android specific debugging method.
- Currency: Use ICU4C data.
- EnumMap / EnumSet : Use JavaLangAccess directly.
- HashMap / Hashtable / LinkedHashMap : Make Entry<K,V> public.
- LinkedHashMap : Add an eldest() method.
- Locale : Fix handling of 3 letter region codes.
- Scanner : Temporarily remove references to the nio file APIs.
- ServiceLoader : Add a method to instantiate a class from a system
property (used in other parts of libcore).
- Hashing : Use JavaLangAccess directly.
- VM : Remove native initialization (doesn't apply here).

Change-Id: I8e870357cf3987cd571c7ebe8bc633a85380a8d5
avaLangAccess.java
865b9d2c38284a486fc8608d3193f5b846822595 15-Apr-2015 Piotr Jastrzebski <haaawk@google.com> Use OpenJdk implementation of java.util.regex.*

Change-Id: I046bb48e645a717c8404d9fad7657157f716d49a
haracter.java
51b1b6997fd3f980076b8081f7f1165ccc2a4008 16-Feb-2015 Piotr Jastrzebski <haaawk@google.com> Initial import of OpenJdk files.

Create new libcore/ojluni directory with src/main/java and
src/main/native subdirectiories.

Build ojluni into core-oj jar.

Use openjdk classes from java.awt.font package.

Copy all files from jdk/src/share/classes and jdk/src/solaris/classes
directories in openjdk into libcore/ojluni/src/main/java.

Copy following native files from openjdk to
libcore/ojluni/src/main/native:
jdk/src/solaris/native/java/io/canonicalize_md.c
build/linux-amd64/include/classfile_constants.h
jdk/src/share/native/java/net/DatagramPacket.c
jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c
jdk/src/share/native/java/lang/Double.c
jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h
jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c
jdk/src/solaris/native/java/io/FileDescriptor_md.c
jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c
jdk/src/share/native/java/io/FileInputStream.c
jdk/src/solaris/native/sun/nio/ch/FileKey.c
jdk/src/solaris/native/java/io/FileOutputStream_md.c
jdk/src/solaris/native/java/io/FileSystem_md.c
jdk/src/share/native/java/lang/Float.c
jdk/src/share/native/java/net/Inet4Address.c
jdk/src/solaris/native/java/net/Inet4AddressImpl.c
jdk/src/share/native/java/net/Inet6Address.c
jdk/src/solaris/native/java/net/Inet6AddressImpl.c
jdk/src/share/native/java/net/InetAddress.c
jdk/src/solaris/native/java/net/InetAddressImplFactory.c
jdk/src/share/native/java/io/io_util.c
jdk/src/solaris/native/sun/nio/ch/IOUtil.c
jdk/src/share/native/java/io/io_util.h
jdk/src/solaris/native/java/io/io_util_md.c
jdk/src/solaris/native/java/io/io_util_md.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/java_io_FileDescriptor.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileInputStream.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileOutputStream.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileSystem.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_ObjectStreamClass.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_UnixFileSystem.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Double.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Float.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Integer.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Long.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Runtime.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Shutdown.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_StrictMath.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_String.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_System.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Thread.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Throwable.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_DatagramPacket.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4Address.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4AddressImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6Address.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6AddressImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddress.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddressImplFactory.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_NetworkInterface.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainDatagramSocketImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainSocketImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketInputStream.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOptions.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOutputStream.h
jdk/src/share/native/java/lang/java_props.h
jdk/src/solaris/native/java/lang/java_props_md.c
jdk/src/share/native/java/util/zip/Adler32.c as java_util_zip_Adler32.c
jdk/src/share/native/java/util/zip/CRC32.c as java_util_zip_CRC32.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_CRC32.h
jdk/src/share/native/java/util/zip/Deflater.c as java_util_zip_Deflater.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Deflater.h
jdk/src/share/native/java/util/zip/Inflater.c as java_util_zip_Inflater.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Inflater.h
jdk/src/share/native/java/util/zip/ZipFile.c as java_util_zip_ZipFile.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_ZipFile.h
jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h
jdk/src/share/native/common/jlong.h
jdk/src/solaris/native/common/jlong_md.h
jdk/src/share/native/common/jni_util.c
jdk/src/share/native/common/jni_util.h
jdk/src/solaris/native/common/jni_util_md.c
jdk/src/share/javavm/export/jvm.h
jdk/src/solaris/javavm/export/jvm_md.h
jdk/src/solaris/native/java/net/linux_close.c
jdk/src/share/native/sun/misc/NativeSignalHandler.c
jdk/src/solaris/native/sun/nio/ch/NativeThread.c
jdk/src/share/native/java/net/net_util.c
jdk/src/share/native/java/net/net_util.h
jdk/src/solaris/native/java/net/net_util_md.c
jdk/src/solaris/native/java/net/net_util_md.h
jdk/src/solaris/native/java/net/NetworkInterface.c
jdk/src/share/native/sun/nio/ch/nio.h
jdk/src/solaris/native/sun/nio/ch/nio_util.h
jdk/src/share/native/java/io/ObjectStreamClass.c
jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
jdk/src/solaris/native/java/net/PlainSocketImpl.c
jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c
jdk/src/share/native/java/lang/Runtime.c
jdk/src/share/native/java/lang/Shutdown.c
jdk/src/share/native/sun/misc/Signal.c
jdk/src/solaris/native/java/net/SocketInputStream.c
jdk/src/solaris/native/java/net/SocketOutputStream.c
jdk/src/share/native/java/lang/StrictMath.c
jdk/src/share/native/java/lang/String.c
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_NativeSignalHandler.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_Signal.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/sun_net_spi_DefaultProxySelector.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileChannelImpl.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileDispatcherImpl.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileKey.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOStatus.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOUtil.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_NativeThread.h
jdk/src/share/native/java/lang/System.c
jdk/src/share/native/java/lang/Thread.c
jdk/src/share/native/java/lang/Throwable.c
jdk/src/solaris/native/java/io/UnixFileSystem_md.c
jdk/src/solaris/native/java/lang/UNIXProcess_md.c
jdk/src/share/native/java/util/zip/zip_util.c
jdk/src/share/native/java/util/zip/zip_util.h

Change-Id: Ib237df4e1b7b5b4d9f12e74d189e6ec9eed3c31d
bstractMethodError.java
bstractStringBuilder.java
ppendable.java
pplicationShutdownHooks.java
rithmeticException.java
rrayIndexOutOfBoundsException.java
rrayStoreException.java
ssertionError.java
ssertionStatusDirectives.java
utoCloseable.java
oolean.java
ootstrapMethodError.java
yte.java
harSequence.java
haracter.java
haracterData.java
haracterName.java
lass.java
lassCastException.java
lassCircularityError.java
lassFormatError.java
lassLoader.java
lassLoaderHelper.java
lassNotFoundException.java
lassValue.java
loneNotSupportedException.java
loneable.java
omparable.java
ompiler.java
onditionalSpecialCasing.java
eprecated.java
ouble.java
num.java
numConstantNotPresentException.java
rror.java
xception.java
xceptionInInitializerError.java
loat.java
llegalAccessError.java
llegalAccessException.java
llegalArgumentException.java
llegalMonitorStateException.java
llegalStateException.java
llegalThreadStateException.java
ncompatibleClassChangeError.java
ndexOutOfBoundsException.java
nheritableThreadLocal.java
nstantiationError.java
nstantiationException.java
nteger.java
nternalError.java
nterruptedException.java
terable.java
inkageError.java
ong.java
ath.java
egativeArraySizeException.java
oClassDefFoundError.java
oSuchFieldError.java
oSuchFieldException.java
oSuchMethodError.java
oSuchMethodException.java
ullPointerException.java
umber.java
umberFormatException.java
bject.java
utOfMemoryError.java
verride.java
ackage.java
rocess.java
rocessBuilder.java
rocessEnvironment.java
rocessImpl.java
eadable.java
eflectiveOperationException.java
unnable.java
untime.java
untimeException.java
untimePermission.java
afeVarargs.java
ecurityException.java
ecurityManager.java
hort.java
hutdown.java
tackOverflowError.java
tackTraceElement.java
trictMath.java
tring.java
tringBuffer.java
tringBuilder.java
tringCoding.java
tringIndexOutOfBoundsException.java
uppressWarnings.java
ystem.java
erminator.java
hread.java
hreadDeath.java
hreadGroup.java
hreadLocal.java
hrowable.java
ypeNotPresentException.java
NIXProcess.java.bsd
NIXProcess.java.linux
NIXProcess.java.solaris
nknownError.java
nsatisfiedLinkError.java
nsupportedClassVersionError.java
nsupportedOperationException.java
erifyError.java
irtualMachineError.java
oid.java
nnotation/Annotation.java
nnotation/AnnotationFormatError.java
nnotation/AnnotationTypeMismatchException.java
nnotation/Documented.java
nnotation/ElementType.java
nnotation/IncompleteAnnotationException.java
nnotation/Inherited.java
nnotation/Retention.java
nnotation/RetentionPolicy.java
nnotation/Target.java
nnotation/package-info.java
oc-files/capchi.gif
oc-files/capiota.gif
oc-files/capsigma.gif
oc-files/captheta.gif
oc-files/capupsil.gif
oc-files/chi.gif
oc-files/iota.gif
oc-files/javalang.doc.anc21.gif
oc-files/javalang.doc.anc38.gif
oc-files/javalang.doc.anc40.gif
oc-files/javalang.doc.anc41.gif
oc-files/sigma1.gif
oc-files/theta.gif
oc-files/upsilon.gif
nstrument/ClassDefinition.java
nstrument/ClassFileTransformer.java
nstrument/IllegalClassFormatException.java
nstrument/Instrumentation.java
nstrument/UnmodifiableClassException.java
nstrument/package.html
nvoke/BoundMethodHandle.java
nvoke/CallSite.java
nvoke/ConstantCallSite.java
nvoke/DirectMethodHandle.java
nvoke/DontInline.java
nvoke/ForceInline.java
nvoke/InvokeDynamic.java
nvoke/InvokeGeneric.java
nvoke/InvokerBytecodeGenerator.java
nvoke/Invokers.java
nvoke/LambdaForm.java
nvoke/MemberName.java
nvoke/MethodHandle.java
nvoke/MethodHandleImpl.java
nvoke/MethodHandleInfo.java
nvoke/MethodHandleNatives.java
nvoke/MethodHandleProxies.java
nvoke/MethodHandleStatics.java
nvoke/MethodHandles.java
nvoke/MethodType.java
nvoke/MethodTypeForm.java
nvoke/MutableCallSite.java
nvoke/SimpleMethodHandle.java
nvoke/SwitchPoint.java
nvoke/VolatileCallSite.java
nvoke/WrongMethodTypeException.java
nvoke/package-info.java
anagement/BufferPoolMXBean.java
anagement/ClassLoadingMXBean.java
anagement/CompilationMXBean.java
anagement/GarbageCollectorMXBean.java
anagement/LockInfo.java
anagement/ManagementFactory.java
anagement/ManagementPermission.java
anagement/MemoryMXBean.java
anagement/MemoryManagerMXBean.java
anagement/MemoryNotificationInfo.java
anagement/MemoryPoolMXBean.java
anagement/MemoryType.java
anagement/MemoryUsage.java
anagement/MonitorInfo.java
anagement/OperatingSystemMXBean.java
anagement/PlatformComponent.java
anagement/PlatformLoggingMXBean.java
anagement/PlatformManagedObject.java
anagement/RuntimeMXBean.java
anagement/ThreadInfo.java
anagement/ThreadMXBean.java
anagement/package.html
ackage-info.java
ef/FinalReference.java
ef/Finalizer.java
ef/PhantomReference.java
ef/Reference.java
ef/ReferenceQueue.java
ef/SoftReference.java
ef/WeakReference.java
ef/package.html
eflect/AccessibleObject.java
eflect/AnnotatedElement.java
eflect/Array.java
eflect/Constructor.java
eflect/Field.java
eflect/GenericArrayType.java
eflect/GenericDeclaration.java
eflect/GenericSignatureFormatError.java
eflect/InvocationHandler.java
eflect/InvocationTargetException.java
eflect/MalformedParameterizedTypeException.java
eflect/Member.java
eflect/Method.java
eflect/Modifier.java
eflect/ParameterizedType.java
eflect/Proxy.java
eflect/ReflectAccess.java
eflect/ReflectPermission.java
eflect/Type.java
eflect/TypeVariable.java
eflect/UndeclaredThrowableException.java
eflect/WildcardType.java
eflect/package-info.java