Commit ee00d14
committed
Fixes: Prevents ArgumentOutOfRangeException in DoMaintenance
Addresses a potential ArgumentOutOfRangeException in
`InMemoryCacheClient.DoMaintenanceAsync` when dealing with expired cache
entries that have a `DateTime.MinValue` expiration and the server's
timezone has a positive offset.
The issue arose during comparison of `expiresAt` (DateTime.MinValue)
with a DateTimeOffset. Now the DateTime.MinValue is converted using UtcDateTime which won't throw an exception for values before the Unix Epoch.
A test case is added to reproduce the error.
Fixes InMemoryCacheClient: DoMaintenance: Starting - InMemoryCacheClient 09:01.641 E: Error trying to find expired cache items: The UTC time represented when the offset is applied must be between year 0 and 10,000. (Parameter 'offset')
Fixes potential timezone conversion issues
Ensures correct DateTime comparisons in the InMemoryCacheClient maintenance process by using UtcDateTime.
Adds overflow protection to SafeAddMilliseconds for DateTime to prevent exceptions.
Adds tests for DateTimeExtensions to ensure overflow protection.
Removes unused usings
Cleans up the InMemoryCacheClientTests file by removing unused namespace imports.1 parent 65d442d commit ee00d14
4 files changed
Lines changed: 109 additions & 3 deletions
File tree
- src/Foundatio
- Caching
- Extensions
- tests/Foundatio.Tests
- Caching
- Extensions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1611 | 1611 | | |
1612 | 1612 | | |
1613 | 1613 | | |
1614 | | - | |
1615 | 1614 | | |
1616 | 1615 | | |
1617 | 1616 | | |
| |||
1626 | 1625 | | |
1627 | 1626 | | |
1628 | 1627 | | |
1629 | | - | |
| 1628 | + | |
| 1629 | + | |
| 1630 | + | |
1630 | 1631 | | |
1631 | 1632 | | |
1632 | 1633 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
78 | 90 | | |
Lines changed: 45 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| |||
1551 | 1552 | | |
1552 | 1553 | | |
1553 | 1554 | | |
| 1555 | + | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
| 1563 | + | |
| 1564 | + | |
| 1565 | + | |
| 1566 | + | |
| 1567 | + | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
| 1572 | + | |
| 1573 | + | |
| 1574 | + | |
| 1575 | + | |
| 1576 | + | |
| 1577 | + | |
| 1578 | + | |
| 1579 | + | |
| 1580 | + | |
| 1581 | + | |
| 1582 | + | |
| 1583 | + | |
| 1584 | + | |
| 1585 | + | |
| 1586 | + | |
| 1587 | + | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
| 1598 | + | |
1554 | 1599 | | |
1555 | 1600 | | |
1556 | 1601 | | |
| |||
Lines changed: 48 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
103 | 151 | | |
104 | 152 | | |
105 | 153 | | |
| |||
0 commit comments