<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notenoughupdates.git/src/main/kotlin/io/github/moulberry/notenoughupdates/util/ApiCache.kt, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<link rel='alternate' type='text/html' href='https://git.nea.moe/notenoughupdates.git/'/>
<entry>
<title>Fix Soopy Networth (#706)</title>
<updated>2023-05-31T11:04:51+00:00</updated>
<author>
<name>Roman / Linnea Gräf</name>
<email>roman.graef@gmail.com</email>
</author>
<published>2023-05-31T11:04:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/notenoughupdates.git/commit/?id=e89d2e7de492c523a941cadf4747d428de6e7250'/>
<id>e89d2e7de492c523a941cadf4747d428de6e7250</id>
<content type='text'>
* Fix Soopy Networth

* Add api cache clear command</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix Soopy Networth

* Add api cache clear command</pre>
</div>
</content>
</entry>
<entry>
<title>ApiCache: Fix apparent NullPointerException (#619)</title>
<updated>2023-02-18T14:24:52+00:00</updated>
<author>
<name>Roman / Linnea Gräf</name>
<email>roman.graef@gmail.com</email>
</author>
<published>2023-02-18T14:24:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/notenoughupdates.git/commit/?id=0d281d483909d71272783033b2aba8f33dcbce36'/>
<id>0d281d483909d71272783033b2aba8f33dcbce36</id>
<content type='text'>
`CacheResult` should in theory have either a `file != null` a `future !=
null` or be `disposed`. Apparently this invariant of `CacheResult` is
either being violated somewhere, or the `synchronized` blocks arent as
synchronized as id hoped they were. In fact, `dispose()` does not even
delete the file, so i can really only see this happening because the
first `synchronized` block that writes the file and the second
`synchronized` block that reads from the file hold the same lock.

I have no idea how this would happen, but hopefully this fixes it (since
the dispose didn't have a threading issue reported so far, i feel more
confident leaving the .deleteOnExit in there, but I'm also wrapping any
potential IOExceptions during access, because I am just so confused how
the internal state was broken.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`CacheResult` should in theory have either a `file != null` a `future !=
null` or be `disposed`. Apparently this invariant of `CacheResult` is
either being violated somewhere, or the `synchronized` blocks arent as
synchronized as id hoped they were. In fact, `dispose()` does not even
delete the file, so i can really only see this happening because the
first `synchronized` block that writes the file and the second
`synchronized` block that reads from the file hold the same lock.

I have no idea how this would happen, but hopefully this fixes it (since
the dispose didn't have a threading issue reported so far, i feel more
confident leaving the .deleteOnExit in there, but I'm also wrapping any
potential IOExceptions during access, because I am just so confused how
the internal state was broken.</pre>
</div>
</content>
</entry>
<entry>
<title> ApiUtil: Add cache with per request timeout and per class histogram  (#592)</title>
<updated>2023-02-15T17:50:56+00:00</updated>
<author>
<name>Roman / Linnea Gräf</name>
<email>roman.graef@gmail.com</email>
</author>
<published>2023-02-15T17:50:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/notenoughupdates.git/commit/?id=d3ca199f904cd72e419c6320eda261f023c71937'/>
<id>d3ca199f904cd72e419c6320eda261f023c71937</id>
<content type='text'>
* ApiUtil: Add cache with per request timeout and per class histogram

* MinionHelper: Only load minion helper data when needed

* Api: Make api response processing more async.

* Lower cache for /pv to 30 seconds and rename cacheDuration to max age

* Disk cache for the API</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* ApiUtil: Add cache with per request timeout and per class histogram

* MinionHelper: Only load minion helper data when needed

* Api: Make api response processing more async.

* Lower cache for /pv to 30 seconds and rename cacheDuration to max age

* Disk cache for the API</pre>
</div>
</content>
</entry>
</feed>
