Add comment explaining lazy declared versions
A recent change moved computing declared versions from using reflection which occurred repeatedly to a lazily-initialized holder so that declared versions are computed exactly once. This commit adds a comment explaining the motivation for this change.
This commit is contained in:
parent
452bfc0d83
commit
cd54c96d56
|
@ -163,10 +163,6 @@ public class Version implements Comparable<Version> {
|
||||||
+ org.apache.lucene.util.Version.LATEST + "] is still set to [" + CURRENT.luceneVersion + "]";
|
+ org.apache.lucene.util.Version.LATEST + "] is still set to [" + CURRENT.luceneVersion + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class DeclaredVersionsHolder {
|
|
||||||
static final List<Version> DECLARED_VERSIONS = Collections.unmodifiableList(getDeclaredVersions(Version.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Version readVersion(StreamInput in) throws IOException {
|
public static Version readVersion(StreamInput in) throws IOException {
|
||||||
return fromId(in.readVInt());
|
return fromId(in.readVInt());
|
||||||
}
|
}
|
||||||
|
@ -406,6 +402,15 @@ public class Version implements Comparable<Version> {
|
||||||
return Integer.compare(this.id, other.id);
|
return Integer.compare(this.id, other.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We need the declared versions when computing the minimum compatibility version. As computing the declared versions uses reflection it
|
||||||
|
* is not cheap. Since computing the minimum compatibility version can occur often, we use this holder to compute the declared versions
|
||||||
|
* lazily once.
|
||||||
|
*/
|
||||||
|
private static class DeclaredVersionsHolder {
|
||||||
|
static final List<Version> DECLARED_VERSIONS = Collections.unmodifiableList(getDeclaredVersions(Version.class));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the minimum compatible version based on the current
|
* Returns the minimum compatible version based on the current
|
||||||
* version. Ie a node needs to have at least the return version in order
|
* version. Ie a node needs to have at least the return version in order
|
||||||
|
|
Loading…
Reference in New Issue