Log Message: |
SOLR-7859: Clamp down on use of System.currentTimeMillis
- Use RTimer where currentTimeMillis is used for timing
- Abstract out a new class TimeOut for when currentTimeMillis/nanoTime
is used to timeout operations.
- Used `new Date()` in some cases where that is the logical intent.
- Deprecated a couple of APIs which were publicly exposing epoch time,
in favour of Date objects to make the intent clearer.
- A couple of cases had currentTimeMillis in dead code.
- In some cases where currentTimeMillis was used to just generate a name,
used nanoTime instead (really it should be some sequence/random number
in such a case).
- In some other cases where stamps were used for SQL queries, HTTP headers,
comparing against data in external files, ZK etc., used SuppressForbidden.
- Also currently allow the use of currentTimeMillis in commit data,
this is then used in replication -- this is concerning since absolute
times are being compared, but that can be dealt with separately.
|