mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
Cache VanillaChronicleMap.identityString lazily (after initOwnTransients()) because file() is not set by the time initOwnTransients() is called
This commit is contained in:
@@ -69,6 +69,11 @@ public class VanillaChronicleMap<K, V, R>
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
private transient String name;
|
||||
/**
|
||||
* identityString is initialized lazily in {@link #toIdentityString()} rather than in
|
||||
* {@link #initOwnTransients()} because it depends on {@link #file()} which is set after
|
||||
* initOwnTransients().
|
||||
*/
|
||||
private transient String identityString;
|
||||
|
||||
public transient boolean couldNotDetermineAlignmentBeforeAllocation;
|
||||
@@ -164,7 +169,6 @@ public class VanillaChronicleMap<K, V, R>
|
||||
}
|
||||
|
||||
private void initOwnTransients() {
|
||||
identityString = makeIdentityString();
|
||||
couldNotDetermineAlignmentBeforeAllocation =
|
||||
greatestCommonDivisor((int) chunkSize, alignment) != alignment;
|
||||
cxt = new ThreadLocal<>();
|
||||
@@ -255,6 +259,8 @@ public class VanillaChronicleMap<K, V, R>
|
||||
|
||||
@Override
|
||||
public String toIdentityString() {
|
||||
if (identityString == null)
|
||||
identityString = makeIdentityString();
|
||||
return identityString;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user