LUCENE-9117: RamUsageEstimator hangs with AOT compilation. Removed any attempt to estimate Long.valueOf cache size.

This commit is contained in:
Dawid Weiss 2020-01-14 16:05:39 +01:00
parent 4a8762cc2c
commit 742301ca15
2 changed files with 3 additions and 17 deletions

View File

@ -73,6 +73,9 @@ Bug fixes
* LUCENE-8663: NRTCachingDirectory.slowFileExists may open a file while * LUCENE-8663: NRTCachingDirectory.slowFileExists may open a file while
it's inaccessible. (Dawid Weiss) it's inaccessible. (Dawid Weiss)
* LUCENE-9117: RamUsageEstimator hangs with AOT compilation. Removed any attempt to
estimate Long.valueOf cache size. (Cleber Muramoto, Dawid Weiss)
Other Other
* LUCENE-8768: Fix Javadocs build in Java 11. (Namgyu Kim) * LUCENE-8768: Fix Javadocs build in Java 11. (Namgyu Kim)

View File

@ -122,7 +122,6 @@ public final class RamUsageEstimator {
/** /**
* JVMs typically cache small longs. This tries to find out what the range is. * JVMs typically cache small longs. This tries to find out what the range is.
*/ */
static final long LONG_CACHE_MIN_VALUE, LONG_CACHE_MAX_VALUE;
static final int LONG_SIZE, STRING_SIZE; static final int LONG_SIZE, STRING_SIZE;
/** For testing only */ /** For testing only */
@ -190,19 +189,6 @@ public final class RamUsageEstimator {
NUM_BYTES_ARRAY_HEADER = NUM_BYTES_OBJECT_HEADER + Integer.BYTES; NUM_BYTES_ARRAY_HEADER = NUM_BYTES_OBJECT_HEADER + Integer.BYTES;
} }
// get min/max value of cached Long class instances:
long longCacheMinValue = 0;
while (longCacheMinValue > Long.MIN_VALUE
&& Long.valueOf(longCacheMinValue - 1) == Long.valueOf(longCacheMinValue - 1)) {
longCacheMinValue -= 1;
}
long longCacheMaxValue = -1;
while (longCacheMaxValue < Long.MAX_VALUE
&& Long.valueOf(longCacheMaxValue + 1) == Long.valueOf(longCacheMaxValue + 1)) {
longCacheMaxValue += 1;
}
LONG_CACHE_MIN_VALUE = longCacheMinValue;
LONG_CACHE_MAX_VALUE = longCacheMaxValue;
LONG_SIZE = (int) shallowSizeOfInstance(Long.class); LONG_SIZE = (int) shallowSizeOfInstance(Long.class);
STRING_SIZE = (int) shallowSizeOfInstance(String.class); STRING_SIZE = (int) shallowSizeOfInstance(String.class);
} }
@ -230,9 +216,6 @@ public final class RamUsageEstimator {
* cached by the JVM and its shallow size otherwise. * cached by the JVM and its shallow size otherwise.
*/ */
public static long sizeOf(Long value) { public static long sizeOf(Long value) {
if (value >= LONG_CACHE_MIN_VALUE && value <= LONG_CACHE_MAX_VALUE) {
return 0;
}
return LONG_SIZE; return LONG_SIZE;
} }