Hi Claes,
I don't see any particular reason for that. In fact, I was wondering the
same thing, but just left it as it was. Since I've already pushed the
changeset, I will fix it on the next occasion.
Naoto
On 12/11/18 2:31 PM, Claes Redestad wrote:
Hi Naoto,
while the here fix looks good, I can't help wondering why the map isn't
final?
/Claes
On 2018-12-11 19:59, Naoto Sato wrote:
Hi Ivan,
Thank you for the review.
On 12/11/18 10:49 AM, Ivan Gerasimov wrote:
OptimalCapacity.ofHashMap uses the initialCapacity to verify that a
HashMap created with that initialCapacity will not reallocate its
internal array after inserting the factual number of elements.
So, if one day the number of entities is increased, but the constant
NUM_ENTITIES is not updated, then the test will catch it.
Actually the reason I am fixing it is that, the test did not detect
the discrepancy with Unicode 11 upgrade, where it just increased the
entry numbers by the true block increases (11 blocks), without adding
their aliases.
---
--- a/src/java.base/share/classes/java/lang/Character.java Wed Nov
14 13:15:54 2018 +0100
+++ b/src/java.base/share/classes/java/lang/Character.java Wed Nov
21 14:24:31 2018 +0530
@@ -43,7 +43,7 @@
* a character's category (lowercase letter, digit, etc.) and for
converting
* characters from uppercase to lowercase and vice versa.
* <p>
- * Character information is based on the Unicode Standard, version
10.0.0.
+ * Character information is based on the Unicode Standard, version
11.0.0.
* <p>
* The methods and data of class {@code Character} are defined by
* the information in the <i>UnicodeData</i> file that is part of the
@@ -681,11 +681,11 @@
*/
public static final class UnicodeBlock extends Subset {
/**
- * 638 - the expected number of entities
+ * 649 - the expected number of entities
* 0.75 - the default load factor of HashMap
*/
private static Map<String, UnicodeBlock> map =
- new HashMap<>((int)(638 / 0.75f + 1.0f));
+ new HashMap<>((int)(649 / 0.75f + 1.0f));
/**
* Creates a UnicodeBlock with the given identifier name.
---
However, the HashMap allocates the entry size to the nearest power of
two number, i.e., 1024 for both numbers 649 and 667. Thus the test
passes even if there is discrepancy.
Naoto