History log of /libcore/ojluni/src/main/java/java/util/LinkedHashMap.java
Revision Date Author Comments
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
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
aa3cc81fcb0d35faa9a51d6bf59d48685fd4d16a 03-Mar-2017 Tobias Thierer <tobiast@google.com> Misc tweaks to Android-changed documentation in java.util

Makes Android-changed documentation in java.util more
consistent with the style guide.

This CL contains no behavior changes.

Test: make droid cts
Bug: 35841464
Change-Id: If0fac577b90d77bc5ff86b784d4b9fa5ef1c5a8a
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
15a062b16485b913fbca72ce5ebafb9e16aab284 06-Feb-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> AbstractMap.keySet and .values should not be volatile

Ported from openjdk8u121

changeset: 11261:6c1cb8f35b16
user: shade
date: Thu Dec 17 21:14:58 2015 +0300
summary: 8145539: (coll) AbstractMap.keySet and .values should not be volatile

More infocab be found here:
https://bugs.openjdk.java.net/browse/JDK-8145539

Test: CtsLibcoreTestCases
Bug: 31028374
Change-Id: I1a9a2c31268336f4922ef6ab692b6e7f84e706c2
7ae7ae73754c8b82a2e396098e35553d404c69ef 10-Jan-2017 Tobias Thierer <tobiast@google.com> Document incorrect LinkedHashMap Spliterator ordering in Android N.

Note that in Android N, the Spliterators for LinkedHashMap's
Collection Views did not report the SUBSIZED characteristic;
the Spliterators.spliterator(collection, int) call in the
suggested code snippet implicitly adds that characteristic.

This means that a Spliterator obtained via the suggested code
snippet reports not only a different order but also different
characteristics from the LinkedHashMap's native iterators.
Few applications will care about this subtle difference, and
the new behavior seems to make more sense; therefore, the
documentation does not call out this aspect.

The latest version of LinkedHashMap in AOSP (since [1])
implements its Spliterators via Spliterators.spliterator(),
which means that they do report the SUBSIZED characteristic,
just like the ones obtained via the code snippet in the
documentation added by this CL. Regression tests for the
reported characteristics of these Spliterators will be
submitted to AOSP in a separate CL.

[1] http://r.android.com/255655 (2016-08-16)

Bug: 33945212
Test: make
Test: Verified that the bug exists via guava-testlib-21.0-rc2, code
inspection and via a small new (unsubmitted) test.
Test: Verified via a small new test (unsubmitted) that the code
snippets given in the documentation produce the correct
iteration order.
Test: Verified via a small new test (unsubmitted) that LHM's
Spliterators do not report SUBSIZED before this CL, but
that the Spliterators obtained via the suggested
workaround do. Tested that the characteristics reported
by the Spliterators obtained via the workaround code
match those from LHM in the latest version of AOSP.

(cherry picked from commit 53c8c684093c1778163ed386777e802e8f5188f1)

Change-Id: I07f63a7edaf9195800a54bfb5a3a7fc880cce58a
53c8c684093c1778163ed386777e802e8f5188f1 10-Jan-2017 Tobias Thierer <tobiast@google.com> Document incorrect LinkedHashMap Spliterator ordering in Android N.

Note that in Android N, the Spliterators for LinkedHashMap's
Collection Views did not report the SUBSIZED characteristic;
the Spliterators.spliterator(collection, int) call in the
suggested code snippet implicitly adds that characteristic.

This means that a Spliterator obtained via the suggested code
snippet reports not only a different order but also different
characteristics from the LinkedHashMap's native iterators.
Few applications will care about this subtle difference, and
the new behavior seems to make more sense; therefore, the
documentation does not call out this aspect.

The latest version of LinkedHashMap in AOSP (since [1])
implements its Spliterators via Spliterators.spliterator(),
which means that they do report the SUBSIZED characteristic,
just like the ones obtained via the code snippet in the
documentation added by this CL. Regression tests for the
reported characteristics of these Spliterators will be
submitted to AOSP in a separate CL.

[1] http://r.android.com/255655 (2016-08-16)

Bug: 33945212
Test: make
Test: Verified that the bug exists via guava-testlib-21.0-rc2, code
inspection and via a small new (unsubmitted) test.
Test: Verified via a small new test (unsubmitted) that the code
snippets given in the documentation produce the correct
iteration order.
Test: Verified via a small new test (unsubmitted) that LHM's
Spliterators do not report SUBSIZED before this CL, but
that the Spliterators obtained via the suggested
workaround do. Tested that the characteristics reported
by the Spliterators obtained via the workaround code
match those from LHM in the latest version of AOSP.

Change-Id: Ia959b54765df64b27367ce45aedce3fb1eda477a
9efb6d12ce4d2ffedb73d6e9887ea2c89f8ec129 08-Jun-2016 Narayan Kamath <narayan@google.com> Update HashMap, HashSet, LinkedHashMap to JDK8u60.

Added tests for:
- entrySet()/keySet()/values() spliterators (LinkedHashMap
has completely new implementations)
- LinkedHashMap.eldest (Android specific API, previously
existed but was untested)
- naming of nested class LinkedHashMap.LinkedHashMapEntry
- tweaked test for Map.getOrDefault() method so it's useful
for LinkedHashMap

This CL doesn't touch HashSetTest since it already covered
spliterator() and serialization.

Test: Ran all libcore tests.

Bug: 29935305
Change-Id: I9d991a08c403b83b15e9c88ce97cbd5cd77a8bcf
62e3fcccb91fa405516e6288239590ebac210dea 11-Aug-2016 Tobias Thierer <tobiast@google.com> Revert "Change LinkedHashMap#removeEldestEntry behaviour."

This reverts commit 9c4d5752a75ab0f1fa37aac2984629bf30cafa94.

Bug: 27964914
Change-Id: I984b093607128ba2de5f4a85c911f8106cd36a1a
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>
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)
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
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
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
0976dc2e109a3ca2bd977d18eee74e4b7c9ada30 04-Apr-2016 Shubham Ajmera <shubhamajmera@google.com> Add Map::replaceAll method

and corresponding unit test.

Bug: 27426743

(cherry-picked from commit 135ea6cd4f7ebe2f225351a1928d8a62bce5cb00)

Change-Id: Ia86b769fbf5ce55379325ae575d4b3818cb6ccc1
135ea6cd4f7ebe2f225351a1928d8a62bce5cb00 04-Apr-2016 Shubham Ajmera <shubhamajmera@google.com> Add Map::replaceAll method

and corresponding unit test.

Bug: 27426743
Change-Id: Ia86b769fbf5ce55379325ae575d4b3818cb6ccc1
9c4d5752a75ab0f1fa37aac2984629bf30cafa94 01-Apr-2016 Joachim Sauer <jsauer@google.com> Change LinkedHashMap#removeEldestEntry behaviour.

The move to OpenJDK changed the behaviour of the removeEldestEntry
method in a way that is incompatible with earlier Android versions.
While that behaviour was never documented, we try to be compatible for
now. Future Android releases will probably revert to behaviour that's
closer to the RI.

This is attempt #2. The behaviour of of the previous implementation was
even stranger then expected. removeEldestEntry() was called between
incrementing the size field and actually adding the entry. So any code
that inspected the map during the removeEldestEntry() call would see
a size that's 1 bigger than the actual elements (and the newly added
element would not be in the map yet).

The code to reproduce this in the OpenJDK based implementation is less
than elegant and should be removed for future releases.

Bug: 27929722
(cherry picked from commit 7a0fb3b1203df27e0bb3e5b1ee3346851f9af38d)

Change-Id: If4351b9979ba744d5c6556c73c1e23077b369b1b
7a0fb3b1203df27e0bb3e5b1ee3346851f9af38d 01-Apr-2016 Joachim Sauer <jsauer@google.com> Change LinkedHashMap#removeEldestEntry behaviour.

The move to OpenJDK changed the behaviour of the removeEldestEntry
method in a way that is incompatible with earlier Android versions.
While that behaviour was never documented, we try to be compatible for
now. Future Android releases will probably revert to behaviour that's
closer to the RI.

This is attempt #2. The behaviour of of the previous implementation was
even stranger then expected. removeEldestEntry() was called between
incrementing the size field and actually adding the entry. So any code
that inspected the map during the removeEldestEntry() call would see
a size that's 1 bigger than the actual elements (and the newly added
element would not be in the map yet).

The code to reproduce this in the OpenJDK based implementation is less
than elegant and should be removed for future releases.

Bug: 27929722
Change-Id: If6bf7fe7f7b2caa655e25b11f18b552c3b4844e4
aad2abaafbc03c7750d7e65f187dcefb4bbcc090 01-Apr-2016 Narayan Kamath <narayan@google.com> Revert "Change LinkedHashMap#removeEldestEntry behaviour."

This reverts commit fca5aaa0a2c31d322b708012df2158d8399cefe3.

Breaks org.apache.harmony.tests.java.util.LinkedHashMapTest#test_remove_eldest.

bug: 27929722

(cherry picked from commit 90932be12a5e012347549ad293d15015eb2410a9)

Change-Id: Id5b910e90fb08f4902215ad86e6dae16dc82dbb6
90932be12a5e012347549ad293d15015eb2410a9 01-Apr-2016 Narayan Kamath <narayan@google.com> Revert "Change LinkedHashMap#removeEldestEntry behaviour."

This reverts commit fca5aaa0a2c31d322b708012df2158d8399cefe3.

Breaks org.apache.harmony.tests.java.util.LinkedHashMapTest#test_remove_eldest.

Change-Id: I8b71e40f2d6c7e936a6d604d0326c2312cbb9459
bug: 27929722
452d7ae56a3d07eab0a422f68f0a391633931df8 01-Apr-2016 Joachim Sauer <jsauer@google.com> Change LinkedHashMap#removeEldestEntry behaviour.

The move to OpenJDK changed the behaviour of the removeEldestEntry
method in a way that is incompatible with earlier Android versions.
While that behaviour was never documented, we try to be compatible for
now. Future Android releases will probably revert to behaviour that's
closer to the RI.

Bug: 27929722
(cherry picked from commit fca5aaa0a2c31d322b708012df2158d8399cefe3)

Change-Id: I3151428cb9444212b40749d4f425f25e521a29c6
fca5aaa0a2c31d322b708012df2158d8399cefe3 01-Apr-2016 Joachim Sauer <jsauer@google.com> Change LinkedHashMap#removeEldestEntry behaviour.

The move to OpenJDK changed the behaviour of the removeEldestEntry
method in a way that is incompatible with earlier Android versions.
While that behaviour was never documented, we try to be compatible for
now. Future Android releases will probably revert to behaviour that's
closer to the RI.

Bug: 27929722
Change-Id: I8569ade68fe0abbd712b3e3551fc95a26e09ffd9
0e83756c4295f4df3853047205d94fe845573522 08-Mar-2016 Shubham Ajmera <shubhamajmera@google.com> Port OpenJDK8 changes in java.util.Map

& add tests.

The CL add tests for map default methods added in Java 8 - getOrDefault,
putIfAbsent, remove(K, V), replace(K, V, V), replace(K, V), forEach,
replaceAll, compute, computeIfAbsent, computeIfPresent, putIfAbsent,
merge.

Methods have been made synchronzed in Hashtable. They are using the
default map methods instead of taking the upstream changes.

Replace(K, V, V) in LinkedHashMap has been overridden as it doesn't
record access when the replace method doesn't make any replacement.

Bug: 27426743
(cherry-picked from commit 88f1a4f0b1efb746419672919654c285ce44fbc5)
Change-Id: Ifb2130698dd0ed42acc5c0f429496eebb444e21c
44aed07672d7775f168a49dbb5b8a13682c02600 08-Mar-2016 Shubham Ajmera <shubhamajmera@google.com> Port OpenJDK8 changes in java.util.Map

& add tests.

The CL add tests for map default methods added in Java 8 - getOrDefault,
putIfAbsent, remove(K, V), replace(K, V, V), replace(K, V), forEach,
replaceAll, compute, computeIfAbsent, computeIfPresent, putIfAbsent,
merge.

Methods have been made synchronzed in Hashtable. They are using the
default map methods instead of taking the upstream changes.

Replace(K, V, V) in LinkedHashMap has been overridden as it doesn't
record access when the replace method doesn't make any replacement.

Bug: 27426743

Change-Id: Ifb2130698dd0ed42acc5c0f429496eebb444e21c
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
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
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)
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
2c87ad3a45cecf9e344487cad1abfdebe79f2c7c 21-Dec-2015 Narayan Kamath <narayan@google.com> Update file headers.

Change-Id: I8149f41585768a1a4b72ab7bb4a1452376c05cc2
9048c4faf8f9f15e0124c32834b6a9a2a6cb54de 10-Nov-2015 Narayan Kamath <narayan@google.com> Rename Entry classes in HashMap and LinkedHashMap.

The name "Entry" was hiding interface Map.Entry so code
that did stuff like :

HashMap.Entry<K, V> foo : map.entrySet()

would break. Moreover, that naming scheme confusing (with
interface Map.Entry, class HashMap.Entry and class
LinkedHashMap.Entry) and this change (IMO) improves readability.

Change-Id: Ie9ea96f9a8e4a4988bdc47f77117dc23922315b3
8f12848784d4954d633848ac60d12a91401ddecd 28-Jul-2015 Narayan Kamath <narayan@google.com> Revert android patch to make {Linked}HashMap.Entry public.

It's unnecessary and only serves to break code that writes things
like :

HashMap.Entry<K, V> foo = bar.entrySet();

Change-Id: I35efd90b3f53fd3c843f076f4e9e1fa5a171ff05
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
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