Open phajduk opened 6 years ago
Hey @phajduk I understand what you're saying and I'm looking into it now.
Do you have any code samples that will help by any chance? Maybe an example of the bug?
Hey @KevCron
OK so I have following configuration of my Store
:
private val constructionForUpload = FluentStoreBuilder.parsedWithKey<BarCode, BufferedSource, ConstructionsResponse>(
Fetcher {
api.getConstructions().map { it.source() }
}) {
parsers = listOf(GsonParserFactory.createSourceParser(gson, ConstructionsResponse::class.java))
persister = RecordPersisterFactory.create(FileSystemFactory.create(context.cacheDir), 10L, TimeUnit.SECONDS)
memoryPolicy = MemoryPolicy.builder().setExpireAfterWrite(5).setExpireAfterTimeUnit(TimeUnit.SECONDS).build()
stalePolicy = StalePolicy.REFRESH_ON_STALE
}
If I understood Store lib properly following statements are true:
So after 10 secs data is treat as STALE and fetch call should be performed.
As an addition to bug description I can see that StoreUtil.persisterIsStale
always returns true
because RecordState recordState = provider.getRecordState(key);
is always RecordState.MISSING
.
Hi guys. I think I found bug but please validate my findings described below: SourceFileReader uses private method
pathForBarcode
in order to get path forBarCode
. However, SourceFileWriter delegates it topathResolver
.The bug which above causes is: FileSystemImpl:getRecordState returns
RecordState.MISSING
all the time as path which was saved bySourceFileWriter
is different than path used bySourceFileReader
. We talk about the case whenBarCode
is a key.Does above make sense?